一、停止RPC服务
最简单最省事的方法就是停止RPC服务,先让我们来对RPC做一个感情的认识吧,RPC服务是在系统启动时自动加载的,打开你的任务管理器,如果把SVCHOST一个接一个地关掉(SVCHOST负责了很多服务),当你关闭负现Remote Procedure call(RPC)服务的SVCHOST进程时,就会跳出一个窗口,告诉你因为非法关闭了RPC服务,电脑在多少秒以后会自动重启,如果您感兴趣可以一试,后果不是很严重,重启的时候可能要自检:)下面说说具体关闭办法!
运行dcomcnfg.exe,选择services(local)(服务),在里面找到Remote procedure Call (RPC)服务,关掉即可。
RPC的服务名是RpcSs,你也可以通过net、RpcSs这个命令来禁用它。但这是非常危险的lk Viper给出警告说,这是整个XP系统里惟一一个不能禁用的服务。它不依赖于任何其他的服务,恰恰相反,几乎所有系统程序都以RPC为载体才得以运行。在Win2000中,如果你不小心禁用了这个服务,那你的系统就再也启动不了了,XP下,如果你是够大胆,也可在试试看这个办法灵不灵^_^。
这里提供另外一种方法。但是由于Windows的很多服务都基于RPC,关掉RPC服务后,这些基于RPC的服务将也不能正常启动。我以前使用Windows2000pro的时候曾经关掉RPC服务,结果导致无法上网,我当时用的USEADSL的Modem。这个稠BlkViper说的有点出入。我的XP在关掉RPC服务以后也变得奇怪了,虑动启动都是巨慢,所以对于个人用户来讲,这里不推荐这种做法。如果你禁用了RPC出现了这些可怕的问题,这里有一个解决办法 重新启动RPC服务,只需要修改一下注册表.
[HKEY_LOCAL_MACHINE\SYSTEMCurrentControlSet\Services\RpcSs]
"Start"=dword"00000002
你把这个存成一个reg文件导入就可以了.
二、禁用DCOM(分布式组件对象模块)
在漏洞原理中提到,此漏洞由于使用RPC的DCOM接口,当由客户端机器发送给服务器的DCOM对象激活,请求(如UNC路径)不正确的处理畸形信息时造成溢出.那么禁用DCOM也不失为一条通往罗马的cmd.exe, 运行dcomcnfg.exe.进入Console Root-Component Services-Computers,右键点击My computer选择Properties,选择Defaults Properties标签页,将Enable Distributes COM on this computer前面复选框的勾勾去掉即可.
在我的XP上重启后,没有关闭此服务时,系统提示rpc服务崩溃,30秒后重启,关闭此服务后Exploit自然就无效了。
三、防置防火墙
可以配置防火墙拒绝来自不信任IP地址的135端口访问,譬如通地配置天网的策略就很容易达到这个目的。具体这里就不详细说了。
四、打补丁
最简单、最行之有效而且不影响功能的办法就是针对漏洞打补丁。为了大家方便,我给大家提供了以下几个版本的补丁地址。
Windows NT 4.0
Windows NT TSE
Windows 2000
Windows XP (32)
Windows XP (64)
Windows Server 2003 (32)
Windows Server 2003 (64)