现在的位置: 首页 > 综合 > 正文

探讨两个比较难杀灭的灰鸽子变种

2013年09月02日 ⁄ 综合 ⁄ 共 3877字 ⁄ 字号 评论关闭
主题: 探讨两个比较难杀灭的灰鸽子变种

     非常感谢你开了这样一个博客来帮助大家解决问题。正是你提供的procexp帮我解决掉了一个灰鸽子变种。
   我为了这个木马忙了两天多,在网上没有找到什么有价值的解决方法,是你的博客帮我最终解决了问题。我想把具体的情况跟你介绍一下。通过你的博客把相关经验介绍出去,方便更多的网友。因为我发现和我有相同遭遇的网友基本都无法解决问题。毕竟你的网页的流量会有很大帮助。

   案例一:
             单位的公用上网机器,PIII 800M,XPSP2,未打MS最近的67个补丁。原来用的瑞星,木马和病毒泛滥。后来我在上面用nod32和ewido使劲杀了一阵子,恢复到正常状态,用冰刃未发现不良的进程和内核模块。两天后,nod32频繁报警,称IEXPLORE.EXE频繁通过80端口访问ads.cn3721.com,下载文件b1.exe、b2.exe、……、log[1].exe等木马并尝试运行(其中有魔兽世界、QQ的盗号木马),并将其存放在/Documents and Settings/%username%/LocalSettings/Temp下和/%username%/Local Settings/Temporary Internet
Files/Content.IE5中的子目录下。IE进程可以在资源管理器中发现,但并没有窗口程序。nod32只能阻止连接,并不能关闭相关进程,甚至连下载的病毒都无法隔离。用冰刃发现,是系统的explorer.exe进程中的某个线程创建的IE。如果硬性关闭IE,则木马会定时自检,再继续调用IE。在冰刃的内核模块中,发现??%windir%/TEMP/MC21.TMP,在HKLM/SYSTEM/CurrentControlSet/Services/mchInjDrv/ImagePath 有键值:%windir%/TEMP/MC21.TMP,但在TEMP文件夹下用冰刃根本找不到MC21.TMP。木马还加入启动项好像叫什么SOUNDM,搞得跟声卡驱动似的,但执行文件是恶意的%windir%/winsmd.exe。删掉winsmd.exe和注册表项mchInjDrv后,我通过虚拟软驱进入系统,把/Local Settings下的文件夹和%windir%下的/system32、/Downloaded Program Files都找了个遍,有相关关键字的文件基本都删了。进入系统,还是有内核模块运行,还是继续下载病毒。我又关闭了不少系统服务,甚至连非PNP的设备驱动都关的关删的删,还是无法解决问题。尤其是系统服务,并未发现有除了杀毒软件和防火墙之外的非系统服务,连改名蒙混的都没有。其间,我上网找了很多相关资料,基本确定是灰鸽子变种,但网上的所有手工杀法都不顶事,只有“灰鸽子vip0105破解版测试报告”倒是有些靠谱的地方,但还是没有解决方案。冰刃都没有用,hijackthis更是毫无作为。最后,重装了XP系统。
         这个案例真是太失败了。
     案例二:
        回家后用冰刃看了看自己的机器,本机10月初因不慎运行了两个下载文件后出现异常。杀毒后以为没事了。在冰刃的内核模块中,发现
??c:/windows/system32/drivers/mchinjdrv.sys。
在注册表HKLM/SYSTEM/CurrentControlSet/Enum/Root/
HKLM/SYSTEM/CurrentControlSet001/Enum/Root/
HKLM/SYSTEM/CurrentControlSet002/Enum/Root/
中都发现有LEGACY_MCHINJDRV项。我差点没昏过去,因为机器重装损失太大无法承受。把系统中该删的文件、注册表都删了,把服务减少到最低限度,还是照样加载木马的内核模块,删掉的注册表项又自动恢复。用你所说的autoruns.exe也没检查出到底木马是怎样自我保护和加载的。就在这时,我发现系统服务中有些在我关闭它后又处于启动状态,有些我明明记得自己已经关闭并禁用了,尤其是Cryptographi c Severices,感觉好像离解决问题不远了。看到你介绍的procexp,我试用了一下,发现功能远强于我先前用的procview。我发现procexp有个“Find”菜单,就抱着试试看的心理找了下mchinjdrv。结果在系统的smss.exe进程中找到了!但是,这个是货真价实的系统进程,根本不要想删除。用冰刃发现smss并未加载其它模块,里面总共就三个线程,我哪敢关。难道真的得重装?我要看看mchinjdrv在smss.exe的什么地方,单击procexp中的smss.exe,procexp下面的子窗口中显示有两项:section   /BaseNamedObjects/mc2*****(我没记住,像是随机字母)    
和section   /BaseNamedObjects/mchinjdrvmap
然后我大着胆子选择了“close handle”,把两个section关闭,系统并无不良反应。此后系统服务就没有出现无端更改的情况。重启后,木马的内核模块就没有加载,系统终于恢复正常。
     
      下面的总结有些东西不知道对不对,希望向你请教一下:我觉得两个案例中的木马都已经注入到系统关键进程如smss.exe的可执行代码段中,木马的保护进程已经注入为系统服务或者是系统设备。系统进程中的木马大概通过Timer周期性检查服务和设备确保不被删除和关闭。我的疑问是,是由系统服务保证每次开机时能把木马注入到smss中呢还是smss.exe本身就已经被木马修改过了?从autorun的结果看,似乎是前者。
       我的感受是,这是我见过的最凶悍的木马。从我的两个案例看,大概是不同的变种。但都实现了潜入系统级进程的目标,我的机器上的除了注册表项略有差异、木马没有反弹端口下载木马、添加自启动项目winsmd.exe以外,基本行为都十分相似。普通的杀毒和杀木马软件对它们基本无能为力,我的经历表明在安全环境下查杀也不行,我的机器在safe mode就没有加载木马,根本查不出来。系统级的保护进程又确保了木马很难手工清除。我觉得现在可以信赖的手工软件也就是冰刃、procview,只有冰刃才能仔细检查内核模块的加载情况,只有procview才能摸清系统进程里到底有什么东西。在案例一中,我也用冰刃检查过系统进程,根本无法从exploer.exe的模块和线程中看出什么来,木马的关键字一个也没有,在这样大的模块中找木马是极其困难的。而且感染的都是维系XP运行的基本进程,怎么敢随便关其中的模块和线程。
  
    我觉得现阶段菜鸟在normal模式XP下对付这两种木马的方法是:冰刃查可疑内核模块,procview通过关键字定位木马并删除,关闭相关异常的服务和设备驱动,registry workshop删除相关键值。
  
    我担心的是,以后的木马作者如果像飘雪那样针对冰刃和procview做了规避实现隐身,我想获得ring0权限后干这些事不会没有办法,如果保护进程附着在RPC、WMI、PNP这些无法关闭的关键服务上,那时该怎么查杀呢?
   就说这么多了,谢谢。
   PS:如果可能的话,你应该考虑把你的相关文章发到《电脑报》这样的媒体上,让更多的菜鸟能得到及时有效的帮助。
   PS:鄙视一下网上所谓的手工杀灰鸽子的文章,真是堆bullshit,完全跟不上木马变种的形势了。
////////////////////////////////////////////////////////////////////////////////////////
 
   以上是王刚朋友的来信照登,虽然还有一些小的错误,但还是有不少值得借鉴的地方。

 
   最后一个案例,那个mchinjdrv的handler应该是属于system这个进程空间中的(它接下来的第一个就是smss.exe),这些属于驱动,在Windows加载内核的时候进行加载,它位于system这个系统空间内。smss.exe是属于会话管理的,当然,也有可能其它进程注入smss.exe当中。
 
    关于normal模式下对付流氓软件,几种办法都不错,但是对付一些比较高级的,就不行,很多流氓软件的驱动即使在安全模式下也会加载。如果在安全模式下不加载,就很容易对付。
 
   目前比较好的办法还是 IceSword + 360safe + Procexp + 文件粉碎器。
 
   其中文件粉碎器可以删除几乎所有的文件,包括正在运行的,象你第一个案例中提到的.tmp文件。用我介绍的两个找到可疑驱动的办法,也应该能找到你的那两个文件。一般来说,我推荐的,是先清除文件,然后再清除注册表。注册表只是一个引子而已,只要把文件清除了,注册表的值已经没有用了。
   清除流氓软件和木马,我的概括是分为三步: 查——杀——防,其中第一步是最困难的。

   查:就是找出和确定哪些进程是恶意的,假冒的,有危险的。这个需要对整个windows系统有一定的了解,包括进程,线程,驱动,内核等,所以它的要求也是最广的。

   杀:这个相对来说就是比较容易,版内介绍的几个工具可以对付95%的了。

   防:现在流氓软件木马层出不尽,简直是防不胜防,不过还是有一些办法和工具可以帮助我们的。

   以后的文章大体就是按照上面的三个大类来写,欢迎指点 

抱歉!评论已关闭.