最近一种名叫“机器狗”的病毒大肆传播,该病毒能穿透还原软件,下载盗号木马,盗取各种帐号密码,给广大网民,特别是各大网吧造成了很大的损失!我试着下载了病毒样本作了一番分析。由于水平不高,在写专杀工具时遇到一些问题,如有志同道合,愿与病毒作斗争的兄弟可以加我的QQ:78655425,在此感激不尽!
测试环境:xp sp2+冰点6.3+VD
中毒描述(目击及基本测试):中毒后冰点还是能启动,自己创建的文件重重也被还原了,看userinit.exe版本号正常,一切就像没有中毒一样!但精明的人会发现电脑启动时有一个conime0.exe的进程会一闪而过之后,表面看又是一切正常,可以呼出冰点对话框,但无法输入密码,鼠标一直是等待符号....不一会,c:\windows下会多出N多EXE文件,如cmdbcs.exe,bbghlp32.exe,gepprotect.exE,lotushlp.exe,684745m.exe,684745l.exe...注册表启动项会多出:LYLeador.exe,LYLeader.exe,LYLeadhr.exe,LYLeadmr.exe,LYLeadgr.exe,LYLeadar.exe等启动项.
OK,准备解剥工具(不断添加中):OllyDbg v1.10汉化第二版,winmd5 v2.2,ImportREC_fix_HH v1.6F,OmniPeek 4.1,PEid V0.94
先用winmd5测试中毒后的userinit.exe的MD5值为:93de85a8d61642c5de0fdfc1b3142bce,再取一原版值为:7bd70ec53cb7398246c84d25bff33aa8,相比确实userinit.exe已被病毒修改.
用PEid检测userinit.exe,得知未加壳,其开发工具为:Microsoft Visual C++ 6.0 SPx Method 1 [Overlay],原来是C++开发的,不是以前传闻中的汇编.
中毒后,在C:\windows\system32\下会生成一个usrinit.exe文件,用PEid检测得知其已加壳,信息为:WinUpack 0.39 final -> By Dwing,用工具脱壳失败后,用OllyDbg手动脱壳,得其真面目,开发工具为:Microsoft Visual C++ 7.0 Method2,也非传闻中的汇编...
我将中毒的计算机再次重启,发现c:\windowsg下的一大堆EXE木马也被还原了...在此我作一个大胆的猜想:机器狗能穿还原,但只是将主要病毒文件穿还原保存,以保证开机会自动运行,而盗号木马则是在每次开机会先从网站下载,再获取玩家信息,再传到相关的邮箱或网站.但再重启,这些盗号木马又会被还原,病毒会再次从这些网站下载相关木马,这些木马并非穿还原保存.
以上想法我将逐步验证,可能会有出入,毕竞现在只进行了几个小时的测试...
OK,继续我们上章的来~现在该我们的omnipeek出场了!
启动omnipeek,启动抓包.运行带病毒的userinit.exe,我的文档有时会弹出,这是因为病毒修改并启动了其系统中的一些DLL,在omnipeek中显示出一条信息:
Informational 2007-11-22 12:34:38 http://down.18dd.net/down.exe from 60.207.97.46
很明显:病毒首先从http://down.18dd.net/down.exe 自动下载down.exe文件,我下载了一份down.exe,用peid检测,和usrinit.exe一样有壳,壳相同,均为WinUpack 0.39 final -> By Dwing,看来作者习惯加这种壳,运行ollydbg手动脱壳(对有脱壳经验的人来说过程很简单,但脱壳后PE头受损,不能直接运行,要用ImportREC_fix修复,OEP值为:1AE8),成功脱壳后用PEid检测得其开发工具为:Microsoft Visual C++ 6.0 SPx Method 1,看来机器狗作者是个C++高手)
我们再来说说我们熟悉的explorer.exe,大家都知道它是windows资源管理器,那它管理什么呢?其实他可以看作一个windows图形工具的外壳程序,它会调用些我们平时接触不到的一些硬件驱动信息,如pcihdd.sys.我们今天的主角之一,现在我们就来分析下explorer.
用peid检测explorer.exe,会发现其显示:什么都没找到 *,这是微软自己加的"壳",peid力不从心了,不管,先脱了再说...用ollydbg载入explorer.exe(过程略),于004016ED处脱之,再用ImportREC修复导入表.
提取主角pckhdd.sys:ollydbg加载explorer.exe,设置加载新模块中断,当ADVAPI32.DLL加载时,对CreateServiceA下断点,中断时即可提取出pcihdd.sys(我将放于附件中)
pcihdd.sys是穿透还原所突破的第一个关口,它负责对系统作一系统的检测,并只对指定的IRP响应,具体有三个(IRP_MJ_CREATE IRP_MJ_CLOSE IRP_MJ_DEVICE_CONTROL),其中CREATE就会断开对硬盘操作,会使磁盘过滤驱动(关键),文件系统驱动及过滤驱动(关键)失效!
CLOSE则是对CREATE的恢复,也就是使设备有效!
explorer工作流程:释放资源中的pcihdd.sys并创建pcihdd服务,启动再定位userinit.exe的位置,把其正个代码传参,写入userinit.exe.
好不容易,我们来谈谈今天的主角之二了.userinit.exe,被修改的userinit干了些什么鸟事呢?
>于SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon下的Shell键值(很多朋友的补丁中加入这个REG就是此理)
>建Shell进程
>待网络链接,当网络链接畅通后,则从http://yu.8s7.net/cert.cer(此网站变异中会有所不同)
>根据列表中的文件每个文件,创建一个新线程下载并执行,线程计数加一
>待所有线程结束后也就是说计数为0,进程结束.
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课