Lsass.exe、smss.exe、alg.exe病毒的分析和处理办法
到目前为止,这个病毒已经演化出很多个版本了。特征是在有几个常驻进程互相保护:
c:\windows\system32\com\lsass.exe
c:\windows\system32\com\smss.exe
c:\windows\system32\drivers\alg.exe
如果手工杀毒,一定要注意把病毒进程和系统进程区别开来,对应的三个同名系统进程的文件分别是c:\windows\system32\lsass.exe、c:\windows\system32\smss.exe和c:\windows\system32\alg.exe。
虽然病毒进程不容易分辨,并且相互保护,但该病毒在重启之后的加载途径则只有两种:
通过在开始菜单->程序->启动文件夹放置~.exe文件;通常是c:\documents and settings\all users\开始菜单/程序/启动/~.exe。把这个文件删掉即可防止病毒在启动的时候加载。
通过在c:\windows\system32\目录下放置dnsq.dll文件,并设置注册表HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Appinit_Dll为dnsq.dll,使得dnsq.dll可以在Windows启动的时候注入所有进程,然后由dnsq.dll加载病毒程序。
同时,该病毒还通过如下方式诱骗用户启动,在每个磁盘的根目录下生成两个文件,autorun.inf和pagefile.pif。这倒是很老套的U盘病毒传播办法,但对普通用户来说仍然难以防范。很可能其他地方都清除干净了,一双击磁盘,又全部回来了。
除了隐藏自身,禁止explorer显示隐藏文件等常见手段之外,该病毒有一些新的手段和技术值得注意:
dnsq.dll成功注入之后,使得三个病毒进程c:\windows\system32\com\lsass.exe、c:\windows\system32\com\smss.exe和c:\windows\system32\drivers\alg.exe都获得了防止调试的能力,因而无法通过任务管理器和其他工具关闭进程,也无法暂停其线程。
病毒会周期性地删除自身文件(当然是三个进程相互删除文件),然后重建。并通过调用cacls命令把病毒所在位置的完全控制权限赋予管理员和当前用户。防止用户和管理员通过ntfs权限限制病毒文件的加载。
由于在默认情况下,新建文件从所在文件夹继承权限,而要保证系统正常运行,c:\windows\system32文件夹必须要能够访问。因此,给管理员限制对该目录下病毒文件的访问造成了很大的困难。
病毒会删除一些策略管理模板,防止管理员通过组策略限制病毒的加载。已知病毒会删除C:\WINDOWS\system32\GroupPolicy\Adm\system.adm文件,导致无法通过”用户配置->管理模板->系统“中的”不要运行指定的Windows程序“策略来限制病毒加载。计算机配置中的软件限制策略也无法使用。
病毒不仅会关闭常见的安全工具和软件,似乎还会把遇到的新问题发送到网上去。这一点尚不确定,但并不是不可能。
这个病毒应该是最近以来,最难缠的一种病毒了。现在你已经知道它的运行机制,应该有很多种办法来对付它。快刀斩乱麻的方法是这样的:
使用Windows PE光盘启动被感染的计算机;
删除HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\Appinit_Dll。
删除如下文件:
c:\windows\system32\com\netcfg.dll c:\windows\system32\com\netcfg.000
c:\windows\system32\com\lsass.exe
c:\wnidows\system32\com\smss.exe
c:\windows\system32\dnsq.dll
c:\windows\system32\antitool.exe
c:\windows\system32\drivers\alg.exe
c:\windows\system32\drivers\npf.sys
c:\037589.log 注意这个文件名是可以变化的,可以到c盘根目录下一般不应该有log文件,可以考虑凡是这个位置的log文件全部删除掉。
当然,这些文件都是具有隐藏和系统属性,需要首先去掉。 此外还有每个磁盘下面的autorun.inf和pagefile.pif。此外,考虑到版本不同,你还应该仔细检查其他启动项,比如开始菜单->启动,看看还有没有~.exe文件,有的话一并删掉。
在注册表中删除所有的以c:\windows\system32\com\netcfg.dll为服务器的com组件。已知几个这样的组件,其clsid开头如下:
{450ec9c4...
{d9901239...
{814293ba...
前两个位于HKRT\CLSID,后面一个位于HKRT\TypeLib。
确保这些都清楚完毕之后,重新启动即可。
这个病毒如此处心积虑,其目的则在于提高网站排名,病毒不断地访问这个地址:http://www.51.la/?1501203。
这个病毒采用的破坏组策略和解除NTFS限制的办法也再次提醒我们:只有贯彻最小权限原则,才能尽可能保证系统的安全,一旦病毒也获得了管理员权限,清除起来就会困难很多。
对于Windows 2000或者Windows XP专业版的用户,如果你的磁盘分区格式是NTFS,有如下处理方法,可以干脆利索地干掉这个病毒。请按照如下步骤进行:
运行compmgmt.msc,把当前用户加入users组。
运行cmd,然后运行attrib c:\windows\system32\dnsq.dll -s -h。
在文件夹选项中取消简单共享。
依次找到这几个文件和文件夹,在他们的安全属性中加入users组,权限为拒绝所有:
c:\windows\system32\cmd.exe
c:\windows\system32\cacls.exe
c:\windows\system32\dnsq.dll
c:\windows\system32\com\
注意一定要首先拒绝cmd.exe,否则的话病毒会发狂地运行cmd.exe,可能造成系统瘫痪 。
重启。
此时你的系统看上去应该已经很正常了,但是由于dnsq.dll仍然可以被system账户访问,而在注册表的appinit条目中仍然存在,因此还是注入了几乎所有的系统进程——但 是所有的用户进程,比如explorer和其后启动的程序,都没有被注入。
由于此时已经没有lsass、smss、alg肆虐了,你可以从容地重新设置dnsq.dll的权限为 everyone不可访问。再次重启。
恢复c:\windows\system32\com\文件夹、c:\windows\system32\cmd.exe和cacls.ex e的正常访问权限;清理文件和注册表。需要清理的文件和注册表位置仍然参见Lsass.exe、smss.exe、alg.exe病毒的分析和处理办法。
最后,别忘了恢复刚才对用户所属组的更改。