Utility Manager 处理 Windows 消息方法中的缺陷可能导致特权提升 (822679) 最初发布日期:2003-07-09 摘要: 本公告的读者对象:使用 Microsoft® Windows® 2000 的客户 安全漏洞的影响:特权提升 最高严重等级:重要 建议:客户应尽早安装该修补程序。 受影响的软件: Microsoft Windows 2000 不受影响的软件: Microsoft Windows Me Microsoft Windows NT Server 4.0 Microsoft Windows NT Server Terminal Services Edition Microsoft Windows 2000 Microsoft Windows XP Microsoft Windows Server 2003 最终用户公告: 此公告的最终用户版本可从以下位置获得:http://www.microsoft.com/security/security_bulletins/ms03-025.asp。 技术说明: Microsoft Windows 2000 包含对操作系统内部的辅助功能选项的支持。辅助功能支持是 Windows 内部的一系列辅助技术,通过这些技术可以让残疾人士也能够访问操作系统的各种功能。通过内置到操作系统中的快捷方式,或者通过 Accessibility Utility Manager(辅助功能实用程序管理器)可以启用或禁用辅助功能支持。Utility Manager 是一个辅助功能实用程序,它可以使用户检查辅助功能程序如 Microsoft Magnifier(Microsoft 放大镜)、Narrator(讲解者)、On-Screen Keyboard(屏幕键盘)的状态,并启动或停止这些功能。 在 Utility Manager 处理 Windows 消息的方法中存在缺陷。Windows 消息为交互进程响应用户事件(例如击键或鼠标移动)以及与其他交互进程进行通讯提供了一种方法。安全漏洞产生的原因是,向用户提供辅助功能选项列表的控件不能对发送到该控件的 Windows 消息进行正确验证。交互桌面中的某个进程可能使用一个特定的 Windows 消息,使 Utility Manager 进程在其选择的地址处执行一个回叫函数。由于 Utility Manager 进程以较第一个进程高的特权运行,这将为第一个进程提供行使较高特权的途径。 默认情况下,Utility Manager 包含使用 LocalSystem 特权在交互桌面中运行的控件。其结果是,能够以交互方式登录到系统上的攻击者就可以隐蔽地运行一个程序,该程序可以在 Utility Manager 进程中发送一条经过精心制作的 Windows 消息,导致系统执行攻击者指定的任何操作。这样就可使攻击者完全控制该系统。 无法从远程进行攻击,攻击者必须能够以交互方式登录该系统才能进行攻击。 减轻影响的因素: 攻击者需要拥有有效的登录凭据才能利用此漏洞。不能进行远程攻击。 该漏洞对受正确保护的服务器的威胁较小。建议标准最佳做法是,只允许受信任的管理员以交互方式登录这些系统;没有了这样的特权,攻击者就无法利用该漏洞。 严重等级: Windows 2000 重要 上面的评估是基于薄弱环节影响的系统类型、典型的部署模式和暴露薄弱环节后的影响而作出的。 隐患标识符: CAN-2003-xxxx 测试过的版本: Microsoft 已对 Windows Me、Windows NT Server 4.0、Windows NT Server Terminal Server Edition、Windows 2000、Windows XP 和 Windows Server 2003 进行了测试,以便评估它们是否受这些漏洞的影响。此前的版本不再受支持,它们可能会也可能不会受这些漏洞的影响。 常见问题: 该漏洞的范围有多大? 这是一个特权提升漏洞。成功利用该漏洞的攻击者会得到对系统不该有的特权。在这种情况下,攻击者可以获得完全管理特权,从而获得在该计算机上随意执行任何操作的能力,例如在系统中添加、删除或修改数据;创建或删除用户帐户以及向本地管理员组添加帐户。 只有具有凭据、可以以交互方式登录该计算机的攻击者才能利用此漏洞。建议最佳做法是,不允许无特权的用户以交互方式登录关键业务服务器;如果按照此指导方针执行,这些服务器就不会受到此漏洞的威胁。而工作站和终端服务器将是受到主要威胁的系统。 此漏洞是由什么问题引起的? 造成此漏洞的原因是,一个不具有特权的用户利用 Utility Manager,配合一条经过精心制作的 Windows 消息,使具有较高特权的进程在交互桌面上执行了代码。 什么是辅助功能实用程序? Microsoft 认为他们有责任开发能被包括残疾人士在内的所有人访问和使用的技术。因此,Microsoft 所有产品的设计中都包括可以帮助残疾人士使用这些产品功能的功能和实用程序。这些实用程序即称为辅助功能实用程序。 Windows 2000 中包含数个实用程序和技术,可对本产品提供辅助功能。可以在以下位置找到这些实用程序的详细列表: http://www.microsoft.com/enable/products/windows2000/features.aspx 哪里有关于 Microsoft 各自产品中可用辅助功能选项的文档? 可以在 Microsoft Accessibility Web 站点找到有关 Microsoft 产品辅助功能选项的更多信息,网址为: http://www.microsoft.com/enable/ 什么是 Utility Manager? Utility Manager 是一个辅助功能实用程序,它可以使用户检查辅助功能程序如 Microsoft Magnifier(Microsoft 放大镜)、Narrator(讲解者)、On-Screen Keyboard(屏幕键盘)的状态,并启动或停止这些功能。 "桌面"指什么? 通常我们在提到"桌面"时是指在进行 Windows 会话期间,您在屏幕上看到的由资源管理器创建的 Windows 桌面。但是,在 Windows 安全结构中,"桌面"一词实际上有其他含义。桌面用来将窗口和相关对象封装在 Windows 中,以确保将某个进程正确限制到仅经过授权的活动。如果我们从桌面上面的详细层 windowsstation 开始讲起,解释起来可能会容易一些。 什么是 windowstation? windowstation 是一个包含有一个剪贴板、一些全局信息以及一个或多个桌面的容器。分配给交互用户登录会话的交互 windowstation 还包含键盘、鼠标和显示设备。用户可以看到该交互 windowstation,并且该交互 windowstation 可以接收用户输入。所有其他 windowstations 是非交互的,表示它们不能被用户看到,也无法接收用户输入。一个进程每次只能与一个桌面相关联。 什么是交互桌面? 桌面是一个包含在 windowsstation 内的容器对象。一个 windowsstation 内可能包含多个桌面。 桌面有一个逻辑显示表面,并且包含窗口、菜单和挂接程序。只有交互 windowstation 的桌面才能被看到,并且能接收用户输入。在交互 windowstation 上,每次只有一个桌面处于活动状态。此活动桌面(也被称为交互桌面或输入桌面)即是用户当前可以看到的、可以接收用户输入的那个桌面。 什么是 Windows 消息? 在 Windows 上运行的进程通过消息与系统以及其他进程进行交互。例如,用户每次点击键盘上的一个键、移动鼠标或单击控件(如滚动条),Windows 都生成一条消息,其目的是告知程序已发生用户事件,并将该事件中的数据传递到程序中。同样,程序也可以生成消息,以允许该程序控制的各个窗口相互之间进行通讯并分配任务。 Windows 2000 Utility Manager 处理 Windows 消息的方法存在什么问题? 此缺陷实际存在于当向用户显示可用辅助功能列表时,Utility Manager 处理消息的方法上。Utility Manager 不能正确验证向其发送的 Windows 消息。如果系统上正在运行 Utility Manager,该系统上运行的另一个进程就可以在交互桌面中向 Utility Manager 进程发送一条经过精心制作的消息。第一个进程会设置回叫函数的地址,其结果是,第二个进程可以执行第一个进程指定的回叫函数。 为什么这会造成安全漏洞? 实质上,Utility Manager 中的这一缺陷将为交互桌面上的一个进程提供一种导致 Utility Manager 执行该进程发出的命令的方法。如果第二个进程具有较高特权,将会为第一个进程行使这些特权的途径。 攻击者可能利用该漏洞执行什么操作? 有效利用此漏洞的攻击者可能会首先启动 Utility Manager,然后创建一个进程,该进程将借用 Utility Manager 运行时收到的请求。Windows 2000 的默认配置为:已安装但未运行 Utility Manager。如果是在这种情况下利用了该漏洞,将会使攻击者获得对该系统的全面控制权。 哪些人可能利用该漏洞? 要想利用该漏洞,攻击者要能够登录到该系统、启动 Utility Manager、加载其选择的程序(向 Utility Manager 发送了消息并指定了将执行所需任务的回叫函数的程序)并运行该程序。 Utility Manager 的哪些版本容易受到此攻击的威胁? 只有 Utility Manager 的 Windows 2000 版本有此漏洞。Windows NT Server 4.0、Windows XP 和 Windows Server 2003 不会受到影响。 受此漏洞威胁最大的系统是哪些? 通常,工作站和终端服务器将会受到最大威胁。只有在授予无特权的用户登录服务器和运行程序的权限的情况下,服务器才会有危险,但最佳做法是一定不要授予他们权限。 是否可以通过 Internet 利用此漏洞? 不能。攻击者必须要登录到要攻击的特定系统上。不能在交互桌面中远程加载和运行程序。 修补程序有什么用途? 该修补程序通过更改 Utility Manager 处理 Windows 消息的方法,使消息得到正确验证,且不能调用未注册的回叫函数,从而解决了该漏洞带来的问题。 获取修补程序的途径 该修补程序的下载位置 Microsoft Windows 2000: 除 Japanese NEC 以外的所有版本 Japanese NEC 有关该修补程序的附加信息 安装平台: Windows 2000 修补程序可以安装在运行 Windows 2000 Service Pack 3 的系统上。此外,Windows 2000 Service Pack 4 中包含对此问题的修复。 是否包括在将来的 Service Pack 中:Windows 2000 Service Pack 4 中包含对此问题的修复。 是否需要重新启动:是。 修补程序是否能卸载:是。 取代的修补程序:无。 验证修补程序安装: Windows 2000: 要验证计算机中是否已安装此修补程序,请确认计算机中已创建以下注册表项:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\Q822679 要验证单独文件,请使用以下注册表项中提供的日期/时间和版本信息:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Updates\Windows 2000\SP4\Q822679\Filelist 注意事项: 无 本地化: 此修补程序的本地化版本可从“获取修补程序”中所述的位置获得。 获取其他安全修补程序: 有关其他安全问题的修补程序可从以下位置获得: 安全修补程序可以从 Microsoft Download Center(Microsoft 下载中心)获得,并可轻松地通过搜索关键字“security_patch”找到。 有关客户平台的修补程序可从 WindowsUpdate Web 站点获得。 其他信息: 鸣谢 Microsoft thanks Brett Moore 向我们报告了此问题并与我们一起致力于保护客户的利益。 支持: Microsoft 知识库文章 822679 讨论了此问题,此公告发布大约 24 小时后会提供该文章。知识库文章可以在 Microsoft 在线支持 Web 站点上找到。 技术支持可以从 Microsoft 产品支持服务获得。与安全修补程序相关的支持电话是免费的。 安全性资源:Microsoft TechNet Security Web 站点提供有关 Microsoft 产品安全性的附加信息。 免责声明: Microsoft 知识库中的信息是按"原样"提供的,不带任何形式的担保。Microsoft否认所有明示或暗示的担保,包括适销性和针对特定目的的适用性的担保。即使 Microsoft Corporation 或其供应商事先已被告知损害发生的可能性,Microsoft Corporation 或其供应商也不就任何直接、间接、意外或必然的企业利润损失或特殊损害承担任何责任。一些州不允许排除或限制对必然或意外损害所负的责任,因此上述限制可能不适用。 修订版本: 1.0 版(2003 年 7 月 9 日):创建公告。