2008年2月27日 破解!能完全隐藏文件的伪驱动木马下载程序!

  今天是 2008 年 2 月 27 日,本来没什么特别的,但是因为一个木马,却变得如此惊心动魄(如果您是纯技术人员,可以直接跳过大段过程描述,直接看蓝色部分文字)。

  记得我刚工作的时候,公司曾经就成为“熊猫烧香”的第一批受害者,害我花了一下午的时间手动做掉病毒(但是因为没能力还原被感染的 exe,只能将部分 exe 删除,后来才有了专杀)。从那次事件以来,一直没遇到能上一个层次的病毒,今天早上接了个排毒请求,很无聊地跑去看看,嘿嘿,还真有点挑战。

  此机原本就装了卖咖啡的 8.5i,含间谍广告防御模块,而且本人给其的设置是——禁止在 Windows 和 Program Files 内创建新的程序文件(已编译的程序,包括非可执行文件),禁止在 Temp 内执行脚本。当然,对方是有权限安装程序的人,所以未加密,准许其自己暂时关闭保护策略来执行安装过程,装完后再启动。就算是因为关闭了保护而安装了带木马的程序,只要之后保护还能正常启动,那么木马就很难大肆扩张,排除者应该很容易排除中毒症状。

  事实不是这样,我接手事件后,卖咖啡就一直开着我定义的策略,但是木马却杀了又来、没完没了。最可气的是居然无视那两条关键的保护策略,在 Windows 目录下生成了 exe……一定是在系统启动时,木马先于卖咖啡被加载。我用最新版的超级兔子、Wopti 恶意软件清除大师、360 安全刷了一遍,晕,木马和间谍广告软件还真不少,源木马一定是个木马下载器,可就是抓不住这个老大。余下的手动排除。按照以前的经验,基本都是在 System32 和 Temp 底下直接乱丢 exe、dll,然后用服务带启动项。可这次注册表翻下来,发现制毒行业有长进了,会去 inf 和 Drivers 伪装驱动了,好几个呢~最傻的当然是取了个出众的文件名,同时修改和创建时间都没作假的;好一点的有低调文件名,而且修改时间做了假;最高级的也就是低调文件名配合双假,总之都干掉了,包括其在注册表里申请的 LEGACY_XXXX 与搞的 DataAccess 的小动作。当然,系统主 Temp 和各帐户的临时文件早被 Del 无数次了。正当我满心喜悦重启时,却发现还有东西在作怪!但是你能看到的可疑文件,在注册表里基本都没有!服务和启动项也没可疑的了,怎么办?

  就这样,我在那台机器前郁闷了 3、4 个小时……再次分析下形势。关闭系统文件隐藏后显示所有文件,搜索时也开启了对隐藏信息的搜索,顺利删除了所有从中毒时间起(卖咖啡有日志)到现在的所有可疑文件;系统和注册表主要藏毒点都已查过,无可疑项目;临时文件夹都清空;卖咖啡正常工作。然后重启,无论哪个帐号,断网条件下在进入桌面前就有木马下载程序在工作(机器会等很久),但是只生成以下文件:
C:\WINDOWS\Temp\~tmppls.dat
C:\WINDOWS\Temp\~windows.log
C:\WINDOWS\Temp\PlugsList.dat
C:\WINDOWS\Temp\ThirdSoftInfo2
若是连着网的,则木马下载器就 happy 了,不但有上述文件,还有:
C:\WINDOWS\ThunderBHONew.dll
C:\WINDOWS\d39.exe
看到迅雷 5 的动态链接库了(至少系统也识别为 Thunder 5),那东西会被注册成浏览器加载项(而且各杀毒软件还不会把其当作病毒),然后你的大门就敞开了。

  一定有谁在引导着做那么复杂的事情,没网络的时候,单靠注册表不可能生成前四个文件。只有文件才能那么做,但是文件隐藏得很好,你从名字、时间甚至注册表内的描述无法鉴别它。而留在注册表内的,是一个服务甚至是驱动……该是时候拿出法宝 Autoruns 了!话说,只要平时功课做得好,那么想要信息的时候就方便。我平时对相同类型的计算机都有 Autoruns 记录的,描述了装完系统、驱动常规软件后的系统详细进程。此时比对一下,可疑线程果然无法遁形——dvdromdrvs.inf!不就是一个时间为 2008 年 2 月 25 日的伪驱动吗?奇怪,为什么刚刚搜 inf 文件夹多次,也没见到啊?回去看看。

  一看不得了,在 Windows 底下根本看不到也搜不到,之前说过,我对各类隐藏的设置可是正确的!怎么可能?我拿记事本去直接打开 C:\WINDOWS\inf\dvdromdrvs.inf,居然有!然后去注册表里去掉有关 dvdromdrvs.inf 的信息(居然是一条伪装得极其完美的服务),重启,哈哈,罪恶之源显形了。我终于能将我一天的热情倾注在此时的 Shift + Del 上了。

  现在公布整个木马下载程序的组成:
【文件部分】
C:\WINDOWS\inf\dvdromdrvs.inf  属性为隐藏(无法更改)
C:\WINDOWS\ThunderBHONew.dll
C:\WINDOWS\d39.exe
C:\WINDOWS\Temp\~tmppls.dat
C:\WINDOWS\Temp\~windows.log
C:\WINDOWS\Temp\PlugsList.dat
C:\WINDOWS\Temp\ThirdSoftInfo2
【注册表部分】
Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\COMROMLoader64]
"Type"=dword:00000110
"Start"=dword:00000002
"ErrorControl"=dword:00000000
"ImagePath"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,00,53,00,\
  5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,76,00,63,\
  00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,6b,00,20,00,\
  6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
"DisplayName"="DCOM Service Process Manager"
"ObjectName"="LocalSystem"
"Description"="管理 DCOM 服务加载功能,该服务不能被删除。"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\COMROMLoader64\Parameters]
"ServiceDll"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,\
  00,5c,00,69,00,6e,00,66,00,5c,00,64,00,76,00,64,00,72,00,6f,00,6d,00,64,00,\
  72,00,76,00,73,00,2e,00,69,00,6e,00,66,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\COMROMLoader64\Security]
"Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
  00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
  00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
  05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
  20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\
  00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\
  00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\COMROMLoader64\Enum]
"0"="Root\\LEGACY_COMROMLOADER64\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001


[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\COMROMLoader64]
"Type"=dword:00000110
"Start"=dword:00000002
"ErrorControl"=dword:00000000
"ImagePath"=hex(2):43,00,3a,00,5c,00,57,00,49,00,4e,00,44,00,4f,00,57,00,53,00,\
  5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,76,00,63,\
  00,68,00,6f,00,73,00,74,00,2e,00,65,00,78,00,65,00,20,00,2d,00,6b,00,20,00,\
  6e,00,65,00,74,00,73,00,76,00,63,00,73,00,00,00
"DisplayName"="DCOM Service Process Manager"
"ObjectName"="LocalSystem"
"Description"="管理 DCOM 服务加载功能,该服务不能被删除。"

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\COMROMLoader64\Parameters]
"ServiceDll"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,\
  00,5c,00,69,00,6e,00,66,00,5c,00,64,00,76,00,64,00,72,00,6f,00,6d,00,64,00,\
  72,00,76,00,73,00,2e,00,69,00,6e,00,66,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\Services\COMROMLoader64\Security]
"Security"=hex:01,00,14,80,90,00,00,00,9c,00,00,00,14,00,00,00,30,00,00,00,02,\
  00,1c,00,01,00,00,00,02,80,14,00,ff,01,0f,00,01,01,00,00,00,00,00,01,00,00,\
  00,00,02,00,60,00,04,00,00,00,00,00,14,00,fd,01,02,00,01,01,00,00,00,00,00,\
  05,12,00,00,00,00,00,18,00,ff,01,0f,00,01,02,00,00,00,00,00,05,20,00,00,00,\
  20,02,00,00,00,00,14,00,8d,01,02,00,01,01,00,00,00,00,00,05,0b,00,00,00,00,\
  00,18,00,fd,01,02,00,01,02,00,00,00,00,00,05,20,00,00,00,23,02,00,00,01,01,\
  00,00,00,00,00,05,12,00,00,00,01,01,00,00,00,00,00,05,12,00,00,00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\COMROMLoader64]
"Start"=dword:00000002
"Description"="管理 DCOM 服务加载功能,该服务不能被删除。"

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\COMROMLoader64\Parameters]
"ServiceDll"=hex(2):63,00,3a,00,5c,00,77,00,69,00,6e,00,64,00,6f,00,77,00,73,\
  00,5c,00,69,00,6e,00,66,00,5c,00,64,00,76,00,64,00,72,00,6f,00,6d,00,64,00,\
  72,00,76,00,73,00,2e,00,69,00,6e,00,66,00,00,00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\COMROMLoader64\Enum]
"0"="Root\\LEGACY_COMROMLOADER64\\0000"
"Count"=dword:00000001
"NextInstance"=dword:00000001

至于 dvdromdrvs.inf 的内容,不方便透露。自己珍藏了~