此为样本文件下载链接:http://download.csdn.net/detail/cs08211317dn/3982364,压缩包解压缩密码为:virus。
今天花了1个多小时分析了一款名为123.exe的病毒,觉得挺有意思的,于是顺手写个手杀报告,以备以后查看。
1.病毒行为:
(1)利用注册表项 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options劫持多个软件,在powertool中看到的劫持情况如下图:
(2)释放一个名字随机的驱动:C:\WINDOWS\system32\ 77037933.sys。此驱动释放文件系统dispatch钩子,以隐藏自身和另外一个病毒文件
C:\WINDOWS\system32\appmgmts.dll。驱动钩子如下图:
(3)删除了以下两个注册表项:
HKEY_LOCAL_MACHINESYSTEM\ControlSet001\Control\SafeBoot\Minimal\{4D36E967-E325-11CE-BFC1-08002BE10318}
HKEY_LOCAL_MACHINE SYSTEM\ControlSet001\Control\SafeBoot\Network\{4D36E967-E325-11CE-BFC1-08002BE10318}
使得用户无法进入安全模式。
2.手杀步骤:
(1)仅仅摘除钩子是不够的,因为驱动会回写钩子。所以用powertool卸载掉挂钩的驱动:C:\WINDOWS\system32\ 77037933.sys。随着驱动被卸载,钩子也就不复存在了。
(2)此时在资源管理器中能够看到C:\WINDOWS\system32\ 77037933.sys和C:\WINDOWS\system32\appmgmts.dll。sys文件能够顺利删除。但是在删除appmgmts.dll系统弹出以下错误框:
无法删除的原因很有可能是还有进程在调用此文件。在xuetr中查找进程模块,发现pid为1128的进程svchost.exe在调用appmgmts.dll,截图如下:
于是先结束掉svchost.exe进程,再删除appmgmts.dll成功。注意,要尽快删掉appmgmts.dll,否则此文件又会重新释放一个驱动文件,来替换刚才我们删除的驱动文件的功能。这样前面做的步骤就都白费了。
(3)修复镜像劫持:删除 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Image File Execution Options这个注册表项。
(4)修复安全模式:添加注册表项:
HKEY_LOCAL_MACHINESYSTEM\ControlSet001\Control\SafeBoot\Minimal\{4D36E967-E325-11CE-BFC1-08002BE10318}
HKEY_LOCAL_MACHINE SYSTEM\ControlSet001\Control\SafeBoot\Network\{4D36E967-E325-11CE-BFC1-08002BE10318}
(5)到此为止,手杀完毕。提醒一点。不能删除appmgmts.dll时,用一些软件是可以删除的,但是不完全。比如我用一款叫“顽固木马克星”的杀毒软件扫描到此文件并删除,删除确实是删除了,但是pid为1128的进程svchost.exe会再生成此文件,以下是我用processmonitor监测到的回写行为:
所以,要写完全删除appmgmts.dl文件,必须先结束pid为1128的进程svchost.exe的进程。否则svchost.exe会生成appmgmts.dl,而appmgmts.dl会再释放一个驱动。这样就相当于又回到了手杀的最初。