一种新型Autorun+文件过滤+ Hook+远程线程注入集成病毒的清除

本文介绍了针对一种利用Autorun、文件过滤、Hook及远程线程注入技术的病毒清除过程。病毒核心为opengl.sys,它作为IFS驱动隐藏关键文件,并通过修改SSDT实现文件隐藏和注入Explorer.exe。病毒还创建隐藏服务并自我保护,即使在安全模式下也能加载。清除难度较大,需要深入系统内核进行分析和处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
        在下一直以嵌入式开发糊口,比如Linux,VxWorks 的开发,有时搞搞Linux 防火墙之类,在Windows 下并没有中过太多招.直到有一天我同学把手提电脑搬来找来,说了中了很厉害的病毒.因为没光驱不能重装.看我能不能杀一下病毒.我用一下常规杀病毒的方法杀一下,搞不掂,未果拿回家.但最后发现我的手提电脑居然中了同样病毒.由于电脑有很多软件和数据,重装代价太大,于是开始研究起这一个病毒的机制起来.
仔细研究下来,发现这个病毒非常不简单,有很多机制互相保护自己不能被杀掉.在互联网上找找了,资料不多.可能是最新出的病毒,有个别人中了相同现象的病毒也是无解.只能靠自己解决了.花了二天时间,我认为还是在我的机器基本上清除这个木马了.但是只有我一台机的样本,我把清查的经验公布出来,希望对大家有所帮助.是否完全清除,希望大家通过QQ: 451123230跟我交流,大家共同追杀病毒.
最基本的现象如下.
  •     用360卫士查杀,说在系统盘Autorun型木马.用360卫士清除不掉.下载Autorun专杀工具也无效.但在系统盘的根目录看不到Autorun.inf ,用SREngPS可以扫描到autorun.inf 的内容是

[AutoRun]

    Open=autorun.exe

Shell/Open/Command=autorun.exe

  • l         系统盘的根目录下有一个奇怪的nerochek.exe
  • l         .在注册表的启动项.被加上一个启动项. BootClean, 指向C:/windows/system/smartdrv.exe .
  • l         双击盘符打不开所有盘的目录,但是可以用资源管理器打开
  • l         很多可执行文件被删除,重装后又不久被自动删除.
  • l         IE打不开.但用Firefox 正常工作
  • l         我用卡巴斯基,它提示有一个可执行程序在c:/windows/system32创建nerocheck.exe ,这个文件和smartdrv.exe 都被卡巴斯基检测出有Backdoor.win32.Bifose.ago.
 
进入纯DOS环境下,可以发现每一个盘符根目录下,都有一个Autorun.inf,Autorun.exe.在Windows 的目录窗口下看不到,明显Windows系统中被安装一个文件过滤驱动(IFS),在DOS下删除这提到几个文件,进入Windows ,autorun.inf,autorun.exe,smartdrv.exe ,都被创建.清除注册表的启动项BootClean 又被自动创建.用FileMon 监控发现,explorer.exe 不断在重写autorun.inf,autorun.exe .清除后马上被创建.而且 iexlpore.exe 在不断被重写!即你手工删除iexplore.exe 这个文件,在几秒钟后一个新的同名执行文件又自动被explorer.exe创建.这个新建的IE主程序比正常大几十K.用UltraEdit 打开发现这个exe头部被修改少少,在绝大部分不同部分在文件尾部新增几十K,在新增部分可以清楚看到ASCII 形式的脚本,其中就有autorun.inf 的内容
毫无疑问IE已经被改造成一个木马.这样iexplore.exe ,explorer.exe 在交替写的autorun.inf,autorun.exe.
 
在这里我建议大家可以采用.ProcessMonitor 进行跟踪分析木马.这是 http://www.sysinternals.com/出品的,也就是FileMon,RegMon的作者推出增强版,最大特点是可以是跟踪到是哪一个进程的哪一线程执行了文件操作和注册表操作.并且可以清楚看这个线程stack 调用哪些库的函数.
 
 

 

 

用这个工具可以追查出explorer.exe 在做autorun.exe 时调用哪些操作.加上大家常用IceSword 和从GMER.exe ,基本上可以发现查出这个病毒大体结构.追查的过程不必累述.我这里直接讲得出的结论和清查方法.
  • l         这个病毒的核心是一个叫opengl.sys的文件,位于windows/system32目录下,这个文件并没隐藏.直接可看到.所有对autorun.exe,autorun.inf,iexplorer.exe的线程的调用栈都调用这个库文件里的函数.这用ProcessMonitor 可以清晰看到.
  • l         opengl.sys 本身作为一个IFS驱动在操作系统被加载.负责隐藏autorun.inf,autorun.exe,这在IceSword 内核模块一栏可以看到opengl.sys被加载.同时opengl.sys,改写了三个SSDT HOOK,他们是zwEnumerateKey,zwQueryDirectoryFile,zwCreateSection .
  • l         opengl.sys 本身也作为一个Boot win32 服务被加载.但是它把自己的注册表的相当项隐藏起来的.所以有Windows自带的服务控制界面,IceSword 都看不到这一项服务.但是在IceSword 的注册表工具里可以查出被隐藏的注册项,但这个隐藏服务能被Gmer扫描出来.
  • l         Opengl.sys 改写的注册表项,在
    HKEY_LOCAL_MACHINE/system/controlset002/Eum/Root/
   HKEY_LOCAL_MACHINE/system/controlset003/Eum/Root/
   HKEY_LOCAL_MACHINE/system/CurrentControlSet/Eum/Root/
 各增一个LEGACY_OPENGL 的段.注册一个Kernel OpenGL Service的服务,但是opengl.sys,也在
HKEY_LOCAL_MACHINE/system/controlset002/Eum/Root/services
HKEY_LOCAL_MACHINE/system/controlset003/Eum/Root/services
HKEY_LOCAL_MACHINE/system/ CurrentControlSet /Eum/Root/services
各增一个Win32服务定义OpenGL.其中的ImagePath 正是指向c:/windows/system32/opengl.sys ! 这三项注册表段是隐藏的,这样大部分安全工具判断不出存在这样一个服务.
 
  • l         在系统启动,我的机上被启动两个explorer.exe 其中一个是隐藏的,并且偷偷在调用一个隐藏iexplore.exe,这个行为类似灰鸽子的行为,在ProcessExplorer 可以看得很清楚,但我只有一个样本,不能确认是否是这个病毒的行为
  • l         Explorer.exe 一开始被注入远程线程.负责重写autorun.exe,autorun.inf,ieplorer.exe ,smartdrv.exe和自已本身,被修改的iexplore.exe 也具有同样的功能,这样一但打开IE,或者双击盘符.所有病毒文件被重写.这样又被注入系统,也是一般Autorun专杀工具失败的原因.
  • l         smartdrv.exe 会写注册表,把自身作为启动项在下一次启动把自己启动.这个程序可能还负责对explorer.exe 线程的注入,这项工作也可能是nerochekc.exe来完成
  • l       Opengl.sys被设为IFS,即便是在安全模式下,也被加载本身,它被其它远程线程保护.但我未查出来是哪一个线程在保护. (也可能是他自已的保护,比如调用SSDT HOOK里三个操作,内核中的opengl.sys,即检查自已是否被删除,.如果即重写自已.并改写服务注册表)即便是用IceSword 强行删除Opengl.sys,在随后又被自动创建,并在下一次启动加载到内核中.
  • l         Explorer.exe 有时还会对其它自动启动的程序进行随机远程线程注入,比如我用的tor.exe,qq.exe,甚至的卡巴斯基本身avp.exe ,甚至是IceSword.exe,被注入线程来保护autorun.exe.
  • l         这个病毒可能会对一些可执行文件进行感染.我的MssqlServer,FlashGet在被调用时,.,都报严重错误无法执行. tor运行后,退出会蓝屏而我同学的那台机器安装的 McAfee VirusScan杀毒软件,自动将感染的EXE删除.这些被感染的EXE可能就是远程线程注入的源头,(因为样本太少,这一项是猜想,或者报错也可能是远程线程注入的影响)

 

 综上所述,这个新型病毒几乎集中所有流氓软件底层实现方法.比如Autorun,SSDT HOOK,远程线程注入,系统内核驱动,隐藏服务.并在隐藏和互相保护上,花了很大的功夫,以便自已不能被删除.
 
 
以下是我总结出来清除方法.
1.       在所有驱动器关闭自动播放功能.
     最简单用组策略方法进行关闭,这个网上有很多资料了,大家可以找找.这个是防止用户不小心双击驱动器把病毒重新注入.
2.       把explorer.exe 改名
比如改成ex.exe,并在注册表的Shell改成调用ex.exe 一项,这样能简单破掉启动两个explorer.exe 的操作.你可以到系统完全正常后,再把ex.exe 改为成explorer.exe,(这一步是否必须?大家看具体情况而定)
 
3.       重启进入安全模式
     运行IceSword,Gmer和打开一个c:/windows/system32窗口,
 
4.       在Gmer.exe 进入扫描(Scan)
这时被修改的SSDT HOOK和隐藏的服务都会用红字显示,对于被opengl.sys占用的SSDT HOOK项,你可以单击右键弹出菜单,选择(Restore SSDT)变成系统缺省的HOOK,(注意下图只是示意,原来操作并未抓图下来)
5.       删除隐藏服务
 对于隐藏服务Kernel OpenGL service 可以用Delete 来直接清除注册表和opengl.sys文件本身.如果删除opengl.sys文件失败,可以用IceSWord 文件功能,强行删除c:/windows/system32/opengl.sys,(这个一定是能删除的)为了防止opengl.sys被保护线程重写,可在system32建一个非空的目录,取名为opengl.sys,这样整个病毒核心文件的被完全破坏.下一步重启后即可一一删除其它文件.
 
 
6.       重启进入命令行安全模式
在命令行窗口,手工运行Gmer.exe 和IceSword
用IceSword 删除如下文件
各盘符根目录的 autorun.exe,autorun.inf,nerocheck.exe 文件
Windows/system32/下的 smartdrv.exe ,nerochek.exe
Programe files/internet explore/iexplore.exe
 
为了保险了,你可以在每个盘符的根目录,都创建一个名为autorun.inf 的非空目录,防止autorun.inf 被重建
7.       卸载一些异常的程度并重装
象我的tor,FlashGet,MSSQLServer都提示不同错误,为了保险,也在安全模式一并删除重装.IE也从网上下一个IE7重新安装正常
8.       打开GMER,点击Gmer Saft Mode 按钮,然后重启
 
这样在下一次启动将进行Gmer安全模式,它类似命令行安全模式,把驱动加载到最少,也不加载explorer.exe ,这会将环境减少到最小程度,也可以防止explorer.exe 被远程注入线程对其它文件进行保护.选择对话是 进行重启.
9.       启动时,按F8选择进行安全模式.进入时,会自动调用Gmer.exe
整个系统只有少数程序在运行.用Gmer的Files 功能检查删除的病毒文件是否被重新建立起来,如果有则再删除一次.检查服务是否被重新装入.
10.进入正常模式来看用ProcessMonitor 来检查
    是否有线程在偷偷写Autorun.exe ,opengl.sys 被重新加载等等.如果都没有这个现象,基本可以判断这个病毒已经被清除
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值