Microsoft Windows RPC DCOM接口堆缓冲区溢出漏洞
初始发布日期:2003年9月10日
本页内容:
※ 摘要
※ 详细技术资料
※ 修补程序
※ 常见问题解答
摘要
漏洞描述:在Windows RPC接口中又发现一个极其危险的远程任意代码执行漏洞。此漏洞存在于DCOM RPC接口中,此接口用来响应从客户端发来的请求。攻击者可以向服务器发送一个经过构造的特殊RPC请求包,这样会覆盖堆上的一些敏感数据导致系统执行攻击者提交的任意命令。
本公告的目标读者:运行 Microsoft Windows 的用户
漏洞的影响:运行攻击者选择的代码
最高严重等级:严重
建议:系统管理员应立即应用此安全修补程序。
受影响的软件:
· Microsoft Windows NT Workstation
4.0
· Microsoft Windows NT Server?
4.0
· Microsoft
Windows NT Server 4.0, Terminal Server Edition
· Microsoft
Windows 2000
· Microsoft
Windows XP
· Microsoft
Windows Server 2003
不受影响的软件:
· Microsoft Windows Millennium
Edition
详细技术资料
技术说明:
此修补程序提供的修复取代了 Microsoft 安全公告 MS03-026
中包含的修复。
远程过程调用 (RPC) 是 Windows 操作系统使用的一个协议。RPC 提供进程间的通信机制,通过这一机制,在一台计算机上运行的程序可以顺畅地访问另一台计算机上的服务。该协议本身是从
OSF(开放式软件基础)RPC 协议衍生出来的,只是增加了一些 Microsoft 特定的扩展。
在为 DCOM 激活处理 RPC 消息的那一部分 RPCSS 服务中,存在三个已确知的漏洞——两个可能允许执行任意代码,一个可能导致拒绝服务。这些缺陷是由对有问题的消息的错误处理造成的。这些特定的漏洞影响
RPCSS 服务内的分布式组件对象模型 (DCOM) 接口。此接口处理从一台机器发送到另一台机器的 DCOM 对象激活请求。
成功利用这些漏洞的攻击者可以利用本地系统权限在受影响的系统上运行代码,或者可以使 RPCSS 服务失败。攻击者于是能够对系统执行任何操作,其中包括:安装程序;查看、更改或删除数据;或者创建拥有完全权限的新帐户。
要利用这些漏洞,攻击者可以创建程序来将有问题的 RPC 消息发送到面向 RPCSS 服务的易受攻击的系统。
减轻影响的因素:
· 防火墙最佳做法和标准默认防火墙配置可以帮助保护网络免受源自企业之外的远程攻击。最佳做法建议封堵所有实际上未使用的端口。由于这个原因,对大多数连接到
Internet 的系统来说,所暴露的受影响端口的数目应越少越好。
· 有关 RPC 所使用的端口的详细信息,请访问此 Microsoft Web 站点:
http://www.microsoft.com/technet/prodtechnol/windows2000serv/reskit/tcpip/part4/tcpappc.asp。
严重等级:
Windows NT 4.0 Server
|
Windows NT 4.0 Terminal Server Edition
|
Windows 2000
|
Windows XP
|
Windows Server 2003
|
|
缓冲区溢出漏洞
|
严重
|
严重
|
严重
|
严重
|
严重
|
拒绝服务漏洞
|
无
|
无
|
重要
|
无
|
无
|
所有漏洞的综合严重程度
|
严重
|
严重
|
严重
|
严重
|
严重
|
上面的评估是基于受漏洞影响的系统类型、典型的部署模式以及利用漏洞对它们产生的影响作出的。
漏洞标识符:
缓冲区溢出:CAN-2003-0528
拒绝服务:CAN-2003-0605
修补程序:
微软已就此发布了一个安全公告(MS03-039)以及相应补丁,您可以在下列地址看到微软安全公告的详细内容:
http://www.microsoft.com/technet/security/bulletin/ms03-039.asp
此修补程序的下载位置:
Windows NT Workstation 4.0:
http://www.microsoft.com/downloads/details.aspx?FamilyId=7EABAD74-9CA9-48F4-8DB5-CF8C188879DA&displaylang=zh-cn
Windows NT Server 4.0:
http://www.microsoft.com/downloads/details.aspx?FamilyId=71B6135C-F957-4702-B376-2DACCE773DC0&displaylang=zh-cn
Windows NT Server 4.0, Terminal Server Edition:
http://www.microsoft.com/downloads/details.aspx?FamilyId=677229F8-FBBF-4FF4-A2E9-506D17BB883F
Windows 2000:
http://www.microsoft.com/downloads/details.aspx?FamilyId=F4F66D56-E7CE-44C3-8B94-817EA8485DD1&displaylang=zh-cn
Windows XP:
http://www.microsoft.com/downloads/details.aspx?FamilyId=5FA055AE-A1BA-4D4A-B424-95D32CFC8CBA&displaylang=zh-cn
Windows XP 64 bit Edition:
http://www.microsoft.com/downloads/details.aspx?FamilyId=50E4FB51-4E15-4A34-9DC3-7053EC206D65
Windows XP 64 bit Edition Version 2003:
http://www.microsoft.com/downloads/details.aspx?FamilyId=80AB25B3-E387-441F-9B6D-84106F66059B
Windows Server 2003:
http://www.microsoft.com/downloads/details.aspx?FamilyId=51184D09-4F7E-4F7B-87A4-C208E9BA4787&displaylang=zh-cn
Windows Server 2003 64 bit Edition:
http://www.microsoft.com/downloads/details.aspx?FamilyId=80AB25B3-E387-441F-9B6D-84106F66059B
安装平台:
· Windows NT 4.0 修补程序可在运行 Service Pack 6a 的系统上安装。
· Windows NT 4.0 Terminal Server Edition 修补程序可在运行 Windows NT 4.0 Terminal Server Edition Service Pack 6 的系统上安装。
· Windows 2000 修补程序可在运行 Windows 2000 Service Pack 2、Service Pack 3 或 Service Pack 4 的系统上安装。
· Windows XP 修补程序可在运行 Windows XP Gold 或 Service Pack 1 的系统上安装。
· Windows Server 2003 修补程序可在运行 Windows Server 2003 Gold 的系统上安装。
是否需要重新启动:是
此修补程序是否能卸载:是
是否替代其他修补程序:此修补程序提供的修复取代了 Microsoft 安全公告 MS03-026 和 MS01-048 中包含的修复。
常见问题解答
问:该漏洞的范围有多大?
答:本公告中讨论了三个不同的漏洞。前两个是缓冲区溢出漏洞,第三个是拒绝服务漏洞。成功利用任一缓冲区溢出漏洞的攻击者有可能获得对远程计算机的完全控制。这可能使攻击者能够对系统执行任何操作,包括更改Web 页、重新格式化硬盘或向本地管理员组添加新用户。
成功利用拒绝服务漏洞的攻击者可以使 RPC 服务挂起或没有反应。
要发动此类攻击,攻击者需要能够向 RPCSS 服务发送有问题的消息,并由此使任意代码得以执行,从而导致目标计算机出现问题。
问:这些漏洞是由什么引起的?
答:这些漏洞是由于 Windows RPCSS 服务在某些情况下不能正确检查消息输入而造成的。建立连接后,攻击者可以发送特制的有问题的 RPC 消息,使任意代码得以执行,从而导致远程系统上 RPCSS 服务中的基础分布式组件对象模型 (DCOM) 激活结构出现问题。
问:什么是 DCOM?
答:分布式组件对象模型 (DCOM) 是一种能够使软件组件通过网络直接进行通信的协议。DCOM 以前叫做“网络 OLE”,它能够跨越包括 Internet 协议(例如 HTTP)在内的多种网络传输。有关 DCOM 的详细信息,请访问 Web 站点:http://www.microsoft.com/com/tech/dcom.asp
问:什么是 RPC(远程过程调用)?
答:远程过程调用 (RPC) 是一种协议,程序可使用该协议向网络中另一台计算机上的程序请求服务。由于使用 RPC 的程序不必了解支持通信的网络协议的情况,因此 RPC 提高了程序的互操作性。在 RPC 中,发出请求的程序是客户程序,而提供服务的程序是服务器。
问:什么是 COM Internet 服务 (CIS) 和“HTTP 上的 RPC”?
答:HTTP 上的 RPC - v1(Windows NT 4.0、Windows 2000)和 v2(Windows XP、Windows Server 2003)中引入了对新的 RPC 传输协议的支持,该协议允许 RPC 通过 TCP 端口 80 和 443(仅限 v2)进行操作。这使得客户机和服务器可以在大多数代理服务器和防火墙存在的情况下进行通信。COM Internet 服务 (CIS) 允许 DCOM 使用“HTTP 上的 RPC”在 DCOM 客户机和 DCOM 服务器之间通信。
有关 Windows Server 2003 的“HTTP 上的 RPC”的更多信息可以在此 URL 中找到:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/rpc/rpc/remote_procedure_calls_using_rpc_over_http.asp
有关 COM Internet 服务(有时称为 CIS)的更多信息可以在此 URL 中找到:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndcom/html/cis.asp
问:我如何知道我是否已经安装了COM Internet 服务 (CIS) 或“HTTP 上的 RPC”?
答:要确定服务器上是否安装了 COM Internet 服务或"HTTP 上的 RPC",请按照下列步骤操作:
· 在安装了 Windows NT Option Pack 的 Windows NT 4.0 系统上:在所有分区中搜索“rpcproxy.dll”。如果在服务器上找到了“rpcproxy.dll”,则表明安装了 COM Internet 服务。
· 在 Windows 2000 和 Windows Server 2003 服务器上:
在“控制面板”中,双击“添加/删除程序”,然后双击“添加/删除 Windows 组件”。
Windows 组件向导启动。
单击“网络服务”,然后单击“详细信息”。
如果此时已选中“COM Internet 服务代理”(对于Windows 2000 Server)或“RPC over HTTP 代理”(对于 Windows Server 2003)复选框,则表明服务器上启用了 CIS 或“HTTP 上的 RPC”支持。
问:RPCSS 服务存在什么问题?
答:在负责处理 DCOM 激活的 RPCSS 服务中存在一个缺陷。对有问题的消息的错误处理导致了错误。这个特定的错误影响了用于 DCOM 激活的基础 RPCSS 服务,该服务监听 UDP 端口 135、137、138、445 和 TCP 端口 135、139、445、593。此外,如果启用了 CIS 或"HTTP 上的 RPC",它还可以监听端口 80 和 443。
通过发送有问题的 RPC 消息,攻击者可以使任意代码得以执行,从而导致系统上的 RPCSS 服务失败。
问:这是 RPC 终结点映射器中的缺陷吗?
答:不是 - 虽然 RPC 终结点映射器与 DCOM 基本结构共享 RPCSS 服务,但此缺陷实际上发生在 DCOM 激活基本结构中。RPC 终结点映射器允许 RPC 客户端确定当前分配给特定 RPC 服务的端口号。终结点是主机上服务的协议特定标识符。对于像 TCP 或 UDP 这样的协议,终结点是端口。对于命名管道,终结点是命名管道名称。其他协议使用其他协议特定终结点。
问:攻击者能利用这些漏洞做什么?
答:成功利用这些缓冲区溢出漏洞的攻击者将能够利用本地系统特权在受影响的系统上运行代码。攻击者将能够对系统执行任何操作,其中包括:安装程序;查看、更改或删除数据;或者创建拥有完全权限的新帐户。成功利用拒绝服务漏洞的攻击者可以使 RPCSS 服务挂起或没有反应。
问:攻击者能如何利用这些漏洞?
答:攻击者可以通过创建一个程序来利用此漏洞,该程序可以通过受影响的 TCP/UDP 端口与容易受到攻击的服务器通信,以发送某种特定类型的、有问题的 RPC 消息。接收此类消息会使任意代码得以执行,从而导致容易受到攻击的系统上的 RPCSS 服务失败。
通过其他方法也可以访问受影响的组件,例如,通过交互方式登录到受影响的系统,或使用一个在本地或远程向受影响的组件传递参数的应用程序。
问:哪些人可能利用这些漏洞?
答:任何可以向受影响系统上的 RPCSS 服务发送有问题的 RPC 消息的用户均可以尝试利用这些漏洞。由于默认情况下 RPCSS 服务在 Windows 的各个版本中都是打开的,这实际上意味着任何能够与受影响的系统建立连接的用户都可以尝试利用这些漏洞。
问:有没有工具能够在我的网络上检测出未安装 MS03-039 修补程序的系统?
答:有 - Microsoft 已经发布了一个工具,该工具可以用于扫描网络,查找是否存在未安装 MS03-039 修补程序的系统。关于该工具的更多信息可以在 Microsoft 知识库文章 827363 中找到。