MY123创造了很多流氓软件的第一,有望争夺流氓软件的“最流氓软件宝座”:
1、驱动保护(System Bus Extend驱动,安全模式下也加载)。
2、随机文件名,DLL和SYS。
3、多线程保护,网络自动升级。
4、极强的自动恢复。
5、驱动文件独占方式,其它任何程序也无法读写及删除。
一、MY123的前世今生
风雨送飘(飘雪piaoxue)归,飞雪(fiexue)迎春到。才别傲讯(allxun)网,又见一二三(MY123)。
短短一个多月时间,这些锁主页的流氓软件已经让上千万的网民明白了什么叫做强盗,什么叫做无耻,什么叫做疯狂。9号的时候就已经听人放言10号以后会有一个流氓会大规模爆发。果然,在2006/11/11号这个光棍节的时候,MY123如期而至。现在看来,原因在于这个流氓软件已经早就潜伏于用户的电脑中,通过和多个其它流氓软件的捆绑以及其它的渠道,已经潜入成百上千万的网民电脑中,平常也是启动的,但判断日期小于11/11号,就潜伏不动,一旦系统时间大于11号,就开始修改用户主页。而选择这个特殊时间,选择在周未的时候,显然也是别有用心,可以利用反病毒厂商假期的时候反应不及时而大规模爆发。
从规模及爆发面积来看,全国各地可能有数百万甚至上千万用户被该流氓恶意修改了主页,这和之前爆发的大面积piaoxue.com、feixue.net、73ss.com、9505.com、
81915.com、4199.com等恶意修改用户主页,十分相似。同以往的一些“老流氓”相比,这些新流氓的特征是爆发面积特别大,效果明显,目的明确单一(修改主页),手段新奇狠毒,叹为观止。
显然这是一场预谋已久的活动,并且短短几天内,这个驱动病毒至少已经有三个不同的版本,造成一些专杀工具失效。这个MY123已经具备所有病毒的特征,希望总有一天法律能将这种无良的作者绳之以法。
二、剖析流氓手段
这个驱动经过层层改进,家庭发扬得很光大,看看:
1、飘雪(piaoxue)
2、飞雪(feixue)
3、QQHelper
4、allxun.com傲讯
5、My123(7255)
最早的MY123只有一个驱动,已经有多个专杀工具可以杀。后来又出现版本2,即多一个同名的.dll位于system32目录下,现在的版本3,是一个非同名的.dll位于system32目录下。今天主要分析一下我手头拿到的这个版本3。
1、程序安装
首先是释放一个.dll到system32目录下,文件名的特征是随机的8位字母(也有版本是6位字母加2位数字),然后调用rundll32.exe wceiukte,DllUnregisterServer来注册COM组件,接下来调用Rundll32.exe wceiukte.dll,DllCanUnloadNow来运行程序,并且注册WH_CALLWNDPROC这个系统挂钩。
DLL分别注入SYSTEM和EXPLORER进程空间,进行保护,如果检测没有驱动,则会自动释放出驱动,然后加载。同时这个DLL具有网络下载升级功能。
这个dll运行后,会生成一个.sys文件,放到drivers系统目录下。DLL通过一个算法得到SYS文件名,算法是:DLL的文件名ascii码+32143289052890852-32143289052890848-34320958+34320955就是SYS文件名也就是ascii + 1即.dll的文件名为:wceiukte.dll那么.sys文件名就为:xdfjvluf.sys
2、注册和加载驱动
会在注册表的HKLM\SYSTEM\CurrentControlSet\Services\下写下同驱动名的一个值,把自己注册为System Bus Extend的驱动,使得它的优先级很高,即使在安全模式下加载,也使得很多想清除它的软件无效。然后通过services来加载驱动,驱动加载后,生成三个线程附加到system这个系统核心进程上,(以前的驱动是两个线程)获取最高权限。通过Process Explorer可以查看到这三个线程:
三个线程的作用分别为:
0x1dd4,自身文件独占及句柄检测保护模块等,会将自身文件以独占方式打开,这样若不解除独占,任何Windows下使用常规访问文件方法的程序包括杀毒软件都无法读写或者删除它的驱动程序文件。
文件句柄检测保护模块则是为了防止手工或者专杀的解除句柄的操作。以前的手工清除或者专杀都是需要先解除这个独占,才能删除文件。
但该驱动增加了这个保护,会不停检测自身文件的独占是否被强制解除,如果检测到,立即再次独占。
0x1816,服务保护模块:该模块会检测驱动自身的注册表服务项,不停地暴力重写自身服务项,使得无法删除其服务项。
0x103e,篡改首页模块:该模块会不停暴力重写注册表中首页设置为www.my123.com,导致无法对该项进行修复。
三、手工清除办法(适合目前有一定操作技能的用户)
清除了这个流氓的手段,就可以针对来找一些清除办法了。当然,比起上一次的飘雪来,困难了许多。
1、找出驱动
要杀流氓软件的第一步,就是要找出流氓软件,可以有多种办法找出这个流氓软件。
用到我以前写的一篇文章《釜底抽薪:用autoruns揪出流氓软件的驱动保护》,我们今天就来实战一下。运行autoruns之后,在它的“Options(选项)”菜单中有两项“Verifiy Code Signatures(验证代码签名)“Hide Signed Microsoft Entries(隐藏已签名的微软项)“,把这两项都选中了。扫描之后,我们只看驱动(driver)这一项:
可以看出来,它是假冒微软的驱动。这个驱动虽然写明是微软的,但是没有经过微软的数字签名,所以肯定是假的。(可能你的机器上显示特别多,但所有非微软的,都是有问题的),因为是随机生成的文件名,所以你那里找出来的,可能跟我的不一样。请自己记下文件名。特征是8位随机的字母,并且公司是微软公司,但是显示(Not verified),如果你这里不能确认,可以用下面的办法。
2、用Procexp找出驱动名来
运行Procexp,(下载地址见最后),找到system这个进程,然后点右键——属性(Properties)——线程(Threads),然后把下面的框子拉到最后,看有连续三个,比较无规则的八个字母的驱动,再跟autoruns对一下就可以确定是哪个驱动了。
3、删除驱动.sys
打开c:\windows\sytem32\drivers目录,由于这个.sys驱动文件把自己设为系统、隐藏,所以需要打开文件夹的显示系统文件的选项才能看到。(你也可以用这个办法来找到驱动,一般的正常驱动都不会想着隐藏自己的)。
在那个驱动文件上点右键,然后——Unlocker——会出来一个对话框,显示当前已经使用这个.sys的进程,点“Unlock“,然后再Unlocker一下显示文件已经被删除了以为大功告成了。
但是紧接着怪事就出事了,刷新一下,发觉这个文件又出现了!百思不得其解,已经确认所有的后台服务都是正常的,那个.dll也已经被删除了,这个问题困扰了许久,又拿出驱动好好研究了一下,终于发觉这个极其变态的办法——一个正常的人是不可能把写出这样的驱动的!
它注册了一个NotifyRoutine的一个回调函数,这个是一个自我修复的功能,只要系统任何进程或线程打开,它马上会调用,检查文件如果被删了就立即从内存中自动恢复!显然是针对上一次飘雪的那个手工专杀或者清除办法做的一次改进,正常办法根本不可能删掉。
用Unlocker的确是把文件删除了,但是没有办法不启动其它进程或者线程啊,即使马上选择关机,它也会新建线程,这个时候它也马上可能恢复了。
也不知怎么了,突然灵光一线,想到一个绝招,断电法!就是:删除之后,马上不做任何操作,直接按机器电源键重启!经实验是成功的。
清除之前,我们先要停止那三个system中的线程,那个会不停地自动检测,打开procexp,然后在system上点右键---属性---线程, 点一下Start Address,这样可以按字母排序,找到刚才我们看到的驱动,三个连续在一起。点一下线程,然后点那个“Suspend“按钮,将这个线程暂停。(它做了自我保护,杀不掉的,只能暂停)。
确保停止线程之后,这个按钮都变成“Resume(暂停)”,三个线程全部暂停之后,打开c:\windows\system32\drivers目录,右键点那个.sys驱动---unlocker。
第一次先unlock那个System的句柄占用。第二次再unlocker,这个时候就会出来一个对话框,这时注意了:
一手将鼠标移动OK对话框中,一手找到机器的RESET键(请确保这个键有效,直接断电对机器有损伤),在按下鼠标之后,一看到那个删除OK的提示之后,马上按下RESET键,直接重启机器(如果是笔记本,就先把电池拿了,直接断电)。这个办法讲究眼急手快,如果无效再试一次。
按我的经验,两秒之后按下RESET键都是有效的(杀这个东西真不容易,再次诅咒一个写出这么变态驱动的人来)。
4、删除.dll
当失去驱动保护之后,这个DLL也就肉鸡了,要杀要剐全凭你喜欢了。你放在那里不管也无所谓。它隐藏得也很深,没有在注册表的启动组里面表现出来。360出的专杀,只能杀MY123的前两代,对于这个第三代,目前为止还不能清除,只能清除.dll。所以有时开机之后会显示加载DLL失败:
这个是由那个该死的驱动去加载的,所以找注册表是没有用的。
重启之后,再重新设一下IE的主页,应该就可以了。至于那个Seriver的值,删不删都无所谓了。
四、DOS大法
DOS大法一直是我们杀这类驱动流氓的最后一招,无论多么强的驱动保护,只要用了它,手到擒来,但是由于要安装另外一个系统或者操作DOS,对于新手来说,有一定难度,所以一般来说,都不是我推荐的。这里建议去下载一个叫vfloopy的虚拟软驱软件,安装之后,系统重启的时候就多了一项,启动到虚拟软驱,这样可以直去直接删除这个驱动文件。
上面这个累了一身汗的办法,不知多久就地失效,但思路是一样的,只要找到驱动文件,下面就是如何删除的问题。写飘雪的时候就想着写这个办法了,但是觉得麻烦,不愿意再启一个操作系统。
你也可以用深山红叶这类系统急救光盘或者另外一个Windows去删除那个驱动文件,具体的操作流程我就不多费口舌了。
五、专杀工具
当然,上面这些操作还是比较繁琐,对于普通用户来说难度太高了。目前市面已经可以清除MY123的工具有:
360专杀工具:目前可以清除1、2、3代。
Windows清理助手:目前可以清除1、2、3代,效果不错。