发布日期:2005-12-22
受影响的软件及系统:
====================
Windows 2000
Windows XP
Windows 2003
SQL Server 2000
综述:
======
近日出现了一种利用MS05-051、MS04-045、MS05-039、MS02-056等多个漏洞进行传播的新蠕虫。该蠕虫的后门模块是一个RootKit,能对自身进行隐藏和保护,并可能借此构建BotNet进行其他非法活动。由于该蠕虫利用的漏洞较新,可能有不少系统会受其影响。
该蠕虫被命名为“Dasher”。
分析:
======
Dasher蠕虫运行后,会在系统中增加下列文件:
%WinDir%\System32\wins\Sqltob.exe Dasher蠕虫文件主体
%WinDir%\System32\wins\SqlExp.exe MS04-045漏洞攻击程序
%WinDir%\System32\wins\SqlExp1.exe MS05-039漏洞攻击程序
%WinDir%\System32\wins\SqlExp2.exe MS05-051漏洞攻击程序
%WinDir%\System32\wins\SqlExp3.exe MS02-056漏洞攻击程序
%WinDir%\System32\wins\SqlScan.exe 端口扫描程序
%WinDir%\System32\wins\Result.txt 攻击日志
%ProgramFiles%\nzspfrwy.log Dasher蠕虫的击键记录文件
%ProgramFiles%\nzspfrwy.dll Dasher蠕虫RootKit部分的动态链接库
%ProgramFiles%\nzspfrwy.dl1 Dasher蠕虫RootKit部分的动态链接库
%ProgramFiles%\nzspfrwy.sys Dasher蠕虫RootKit部分的驱动文件
为使系统不易再被他人入侵,达到“独占”该系统的目的,Dasher蠕虫会修改注册表:
将“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters”下“SMBDeviceEnabled”的值修改为“0”;
将“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC”下“Start”的值修改为“4”。
这两处修改的目的是禁用SMB设备和MSDTC服务。
和以往蠕虫不同的是,Dasher蠕虫包含了RootKit部分。RootKit部分注册了名为“nzspfrwy”的服务,nzspfrwy.sys驱动通过HOOK系统调用实现了对自身文件的隐藏,和对通信进程的隐藏。
为了实现自启动,RootKit部分将“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters”的“ServiceDll”值修改为“%ProgramFiles%\nzspfrwy.dll”,所以该RootKit会作为RPCSS服务启动,启动后再加载RPCSS服务真正的模块rpcss.dll。
nzspfrwy.dll加载运行后,会启动一个隐藏的IE进程,将nzspfrwy.dl1注入该进程。nzspfrwy.dl1中的代码会主动连接某个站点,从而实现远程反向连接的后门功能。
解决方法:
==========
如果在您的%WinDir%\System32\wins目录下发现了上述蠕虫文件,则表明您的系统已经感染了该蠕虫。可以参考以下方法手工删除:
1、同时按下Ctrl+Shift+Esc三个键,启动任务管理器,找到Sqltob.exe和SqlScan.exe进程,将其终止。
2、删除上面提到的%WinDir%\System32\wins下那些文件。
上述措施可以清除蠕虫的传播部分,但是无法清除RootKit部分。要清除RootKit部分可参考以下步骤:
1、用另一操作系统引导机器。譬如安装在同一硬盘上的另一个Windows,或者在机器上安装另一块包含操作系统的硬盘,或者用WinPE、Linux Live CD等可引导光盘来启动系统。
2、删除%ProgramFiles%\下对应的几个nzspfrwy.*文件。将%WinDir%\System32\rpcss.dll拷贝到%ProgramFiles%\nzspfrwy.dll。
3、重启系统后,运行regedit.exe,找到“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\RpcSs\Parameters”,将“ServiceDll”的值改为“rpcss.dll”,然后重启动系统。如果有NTRK软件包,可以使用其中的SC命令来清除RootKit在注册表残余的键值:“sc delete nzspfrwy”,即使不清除,通常也不会有什么问题。
4、重启系统,删除%ProgramFiles%\nzspfrwy.dll。
为了防止再次被蠕虫感染,请尽快使用Windows Update安装最新的安全补丁,并使用防火墙保护系统。