最近网络安全界最热门话题肯定是非RPCDCOM接口漏洞莫属了,从7月16日LSD公布第一个漏洞,到7月25日Xfocus的nashsky公布漏洞细节,再后来到"冲击波"病毒的流行,一直到最近eEye公布第二个RPC DCOM接口漏洞,期间数以百万计的计算机遭受到了攻击。
RPC DCOM接口漏洞对Windows操作系统乃至整个网络安全的影响可以说超过了以往任何一个系统漏洞,其主要就是因为DCOM是目前几乎所有Windows系统的基础组件,因此RPC DCOM接口漏洞广泛存在于WindowsNT、Windows2000、Windows XP以及Windows2003等几乎所有的主流Windows操作系统当中,而不像以前的IIS漏洞那样仅存在于Server版本。
本文首先从技术角度对目前所发现的两个RPCDCOM接口漏洞进行了详细的分析,最后再通过RPCDCOM接口漏洞攻击实例帮助大家加深理解,相信阅读之后,你会对RPC DCOM的2个漏洞了如指掌。
DCOM基础知识
做过windows开发的人肯定都对COM有所耳闻,而每个使用Windows操作系统的用户也都在不知不觉当中与COM进行过了无数次的亲密接触。COM也就是组件对象模型,自从Windows95之后,就作为Windows操作系统的基础部件之一嵌入了系统当中,像大家经常实用的IE、Word等软件都是以组件的形式实现的,便于在其他软件当中调用。
而DCOM也就是分布式COM,扩展了组件对象模型技术(COM),使其能够支持在局域网、广域网甚至Internet上不同计算机的对象之间的通讯。使用DCOM的应用程序就可以在位置上达到分布性,从而满足客户和应用的需求。因为DCOM是世界上领先的组件技术COM的无缝扩展,所以你可以将你现在对基于COM的应用、组件、工具以及知识转移到标准化的分布式计算领域中来。当你在做分布式计算时,DCOM处理网络协议的低层次的细节问题。从而使你能够集中精力解决用户所要求的问题。例如我们可以在IE里面远程调用另一台机器上的Excel组件来打开Excel文档。
在Windows内部,DCOM的实现是基于一种叫做RPC的应用层协议,RPC即远程过程调用,是一种用于分布式计算环境的协议规范。目前有两种比较成熟的规范Sun RPC和DCE RPC。而Windows所使用的就是DCE RPC的一种变形。对于网络层次结构来说,DCOM和RPC位于同一层次即应用层上,如下图所示。
COM相DCOM本身是靠对象和接口来实现组件之间的通讯与交互的,也就是说一个COM对象要向外导出一些接口,每个接口又导出一些函数,由其他程序访问这些接口。从而调用接口的函数。
在Windows NT中,系统的RPC服务是一个名为rpcss.exe的进程,在Win2000及其后的系统当中,RPC服务是以rpcss.dll来实现的,这个dll文件由svchost.exe进程来加载启动。RPC服务可以通过管道(TCP 139端口)、HTTP(TCP 80端口)、TCP 135端口以及UDP等许多端口来进行通信,默认情况下WMI和endpoint mapper等RPC绑定在TCP、35端口上。
以上就是关于DCOM以及RPC的基础知识。更详细的内容请参考黑客防线2003年9月刊的详细介绍,这里就不再赘述了。