攻击实例
假设现在有一台没有打过MS03-026和MS03-039补丁的Winsows2000服务器,我们可以用目前网上公布的一个比较好用的攻击程序rpcex.exe来进行攻击。
首先我们应该要知识目标主机是否是中文版本的系统,如果无法知道的话,超码要知道它是Windows2000还是XP,假设我们可以确定它是中文版的Windows系统,这样即使不知道究竟是2000还是XP,我们也可以用0作为TargetID。如果我们仅仅知道它是2000,而不清楚是什么语言版本的系统,那就用1作为TargetID.比如:
这样一来我们就获得了一个SYSTEM权限的CMD shell,我们可以在其中添加管理员账号、安装后门等。
对MS03-026这个漏洞的攻击成功率还是相当高的,一般没打过补丁的系统都可以成功。对于MS03-039的堆溢出漏洞就没有那么容易成功了,但是我们仍然可以用shaa写的攻击程序来试一下。
这时如果成功的话,会在远程主机上面增加一个名字为IUSA的管理员账号,密码是k911。我们可以用net use\\219.242.xxx.xxx\ipc$ k911/user:IUSA来尝试与远程主机建立连接,如果成功那就是攻击生效了,如果没成功,可能远程主机的RPC服务也当掉了,你只有等对方重启以后再进行攻击。
“冲击波”蠕虫病毒
"冲击波"蠕虫是一个利用RPC DCOM接口堆栈缓冲区溢出漏洞(M503-026)的蠕虫病毒,它的大小为6176字节,是用LCC编译、upx压缩的可执行程序。
这个蠕虫感染系统后会在注册表HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVerSon\Run中添加msblast.exe,以便在系统每次重启时自动运行蠕虫程序。它还会在本地的UDP/69端口上建立一个tftp服务器,用来向其他受侵害的系统上传送蠕虫的二进制程序msblast.exe。
蠕虫会向目标机器的TCP/135端口发送攻击数据,攻击代码基本使用了nashsky发布的MS03-026漏洞的攻击代码,只是返回地址改为了一个比较通用的jmp esp地址,可以成功的攻击中英文版的Windows2000,但是对Windows XP只能造成系统重后,而无法成功人侵。一旦攻击成功,shellcode会监听目标系统的TCP/4444端口作为后门,并绑定cmd.exe。然后蠕虫会连接到这个端口,发送tftp命令,回连到发起进攻的主机,将msblast.exe传到目标系统上,然后运行它。
"冲击波"蠕虫检测到当前系统月份是8月之后或者日期是15日之后,就会向微软的更新站点"windows update.com"的80端口发动synflood拒绝服务攻击。这大概是为了报复微软从SP3开始自动进行系统更新而造成有漏洞的主机减少吧。
清除蠕虫的方法首先是安装微软公布的补丁,然后删除系统目录下的msblast.exe文件,删除注册表HKEY-LOCAL-MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run键下的"windows auto update"="msblast.exe"键值。当然,这个蠕虫可能已经有了新的变种,如果想要彻底清除的话,还是请使用杀毒软件进行清除。
最后的话
其实RPC
DCOM接口的漏洞不仅仅是本文所提到的这两个,微软的M503-39这个安全公告里就提及除了文件名长字符串的堆溢出以外,还有一个RPC包长度域造成的堆溢出漏洞和另外几个拒绝服务漏洞。不过这次微软下了点功夫,把这几个漏洞一起补了。但是由于RPC协议的复杂性,相信还有其他漏洞存在,所以大家除了必须及时安装微软的补丁以外,还应该防患于未然,尽量使用防火墙把135等不经常便用的端口都过滤掉。
这次的RPC DCOM漏洞造成的危害是非常严重的,在网络安全行业工作的朋友肯定都会感觉到最近的业务量明显增多了。这对于普通用户来说当然是坏事,但是从某方面讲也检验了大家的安全意识,从微软发布公告的现在,网上存在这个漏洞的机器数量已经大大减少了。这说明中国的普通电脑用户已经有了自我保护意识,还是非常可喜可贺的。