瑞星卡卡安全论坛

首页 » 技术交流区 » 可疑文件交流 » 【原创】又一个机器狗类的病毒(驱动有新特性)
轩辕小聪 - 2008-6-17 20:59:00
样本来源:http://bbs.ikaka.com/showtopic-8515399.aspx
Upack加壳,VC所写的win32程序。

无论是主体文件,还是其携带的两个二进制文件资源(一个exe,一个sys),都加了不少花。

主文件主要行为:
1.在Temp文件夹生成一个.tmp文件,设为tmp75.tmp。将自身资源DLL组中编号0x66(102.)的资源释放到tmp75.tmp,将自身文件后面的附加数据写入tmp75.tmp后部,并将此时tmp75.tmp的大小写入其文件偏移0x3F0(1008.)处。之后将tmp75.tmp拷贝一份,设为tmp76.tmp,然后调用WinExec运行tmp75.tmp。
2.查找服务"obj2"是否存在。如果不存在,则又生成一个.tmp文件,将自身资源DLL组中编号0x67(103.)的资源释放到其中,并将之移动到%systemroot%\system32\Drivers\obj2.sys,然后将其注册为驱动服务并启动。
3.将tmp76.tmp整个读入内存。之后与驱动注册的设备"\\.\DogBaby"通信,IOCTL为0x0800C004,将内存中的tmp76.tmp整个内容作为InputBuffer传递,由驱动穿还原,将这个文件内容写入系统文件,似乎写入的是%systemroot%\system32\conime.exe
4.调用cmd.exe删除自身并退出。

这是典型的机器狗的作为。

驱动obj2.sys

这个驱动与以前看到的机器狗驱动相比,又有新特性,主要表示在它如何与文件系统进行通信上。

驱动主要行为:
1.创建名为"\Device\DogBaby"的设备,创建名为"\DosDevices\DogBaby"的符号连接。设备响应Create/Close/DeviceIoControl的IRP。
2.创建一个系统线程,进行Anti还原保护,并预删除%systemroot%/system32/conime.exe。
此线程主要动作:
(1)得到"\FileSystem\Ntfs"的DriverObject,遍历其所有DeviceObject,将所有Device的AttachDevice归0,解除文件系统过滤驱动。
(2)得到"\Driver\Disk"的DriverObject,遍历其所有DeviceObject,将所有Device的AttachDevice归0。
通过其DriverSection,遍历驱动对象的InLoadOrderLinks双向链表,直至找到classpnp.sys的DriverObject,得到classpnp.sys的基址和入口点。如其基址到入口点的偏移为0xAE8F,则把其基址偏移0x4FC3的地址,填入"\Driver\Disk"响应IRP_MJ_INTERNAL_DEVICE_CONTROL的IRP处理例程中,即通过IRPDispatch的hook,绕过这个驱动的保护。
(3)得到"\Driver\Ftdisk"的DriverObject,遍历其所有DeviceObject,将所有Device的AttachDevice归0。
(4)得到"\Driver\atapi"的DriverObject,遍历其所有DeviceObject,将所有Device的AttachDevice归0。
(5)通过读取atapi.sys文件,找到其中填充IRP处理例程的代码(如果找不到,驱动里有设了默认的偏移量),从而还原"\Driver\atapi"中响应IRP_MJ_DEVICE_CONTROL及IRP_MJ_INTERNAL_DEVICE_CONTROL的IRP处理例程。
(6)直接构造IRP与文件系统通信,操作%systemroot%/system32/conime.exe(如找不到,则改为操作%systemroot%/system32/userinit.bat)
IoCreateFile得到文件句柄后,ObReferenceObjectByHandle得到其FILEOBJECT,从FILEOBJECT->vpb->DeviceObject,得到文件系统设备对象指针。
用IoAllocateIrp申请IRP的空间,之后自己构造IRP_MJ_FILE_SYSTEM_CONTROL的IRP,最后直接调用上面找到的文件系统设备的IRP处理例程,从而达到操作文件的目的。这里应该是删除文件。

3.响应Ring3部分的DeviceIoControl命令,IOCTL为0x0800C004时,再次通过自己构造并向文件系统发送IRP,将Ring3部分传递的内容写入%systemroot%/system32/conime.exe。

tmp75.tmp动作

比较自身文件名是否是internat.exe,或ctfmon.exe,或explorer.exe,是则运行在C:\WINDOWS\system32\dllcache文件夹中的相应备份文件,不是则跳到下一步。也即当这些文件被代替为病毒本身的时候,可以使得系统仍然正常工作。
创建一个线程,查找标题为“Windows 文件保护”的窗口,如找到则隐藏之。
创建一个线程,不断循环,尝试找360Safe.exe,360Tray.exe,QQDoctor.exe,QQDoctorMain.exxe,OllyDbg.exe,OllyIce.exe这些进程并结束之。用的是OpenProcess后TerminateProcess的方法。这里如果OllyIce.exe被找到,则会被结束,就无法调试。可以修改此处相关代码,使之不执行结束进程的操作。
主线程用GetTickCount得到系统启动至今的毫秒数,如果发现系统启动至今不足2分钟,则每次sleep 1秒钟,直到足够2分钟。
从自身文件偏移0x3F0处得到自身大小(这是释放它的主文件在释放时写入的),将自身文件后部的附加数据(这是释放它的主文件在释放时写入的)读入并解密,得到两个URL地址:
http://haha.yaoyao09.com/bole.txt
http://haha.yuyu02.com/bole.txt

接下来就很容易想得到了,使用wininet.dll导出的API下载这两个txt,读取其中的病毒URL地址并将之下载下来并运行。
在下载病毒前,查找进程中是否有avp.exe,有则修改系统时间企图使卡巴挂掉,等病毒全部下载运行之后,再恢复系统时间。
下载每一个病毒前,先将bole.txt中相应的"t0=","t1="后面带的时间,与Temp文件夹下的~yrww文件中的相应内容比对,如~yrww文件存在,且其中的相应时间晚于bole.txt中的时间,则不下载这个病毒。如~yrww文件不存在,或bole.txt中的时间较晚,则下载此病毒。下载完后,将bole.txt覆盖~yrww文件。显然这是为了避免新老“版本”之间的冲突。
另外,从代码中看来,下载下来的文件,可能有一部分不是直接的.exe,而是还经过加密处理的,这种情况下先将其解密还原,再运行。

两个bole.txt内容基本一致:

[oo]
t0=20080318
e0=http://111.gmwo07.com/cao/aa1.exe
t1=20080319
e1=http://111.gmwo07.com/cao/aa2.exe
t2=20080320
e2=http://111.gmwo07.com/cao/aa3.exe
t3=20080321
e3=http://111.gmwo07.com/cao/aa4.exe
t4=20080322
e4=http://111.gmwo07.com/cao/aa5.exe
t5=20080323
e5=http://111.gmwo07.com/cao/aa6.exe
t6=20080324
e6=http://111.gmwo07.com/cao/aa7.exe
t7=20080325
e7=http://222.gmwo07.com/cao/aa8.exe
t8=20080326
e8=http://222.gmwo07.com/cao/aa9.exe
t9=20080327
e9=http://222.gmwo07.com/cao/aa10.exe
t10=20080328
e10=http://222.gmwo07.com/cao/aa11.exe
t11=20080329
e11=http://222.gmwo07.com/cao/aa12.exe
t12=20080330
e12=http://222.gmwo07.com/cao/aa13.exe
t13=20080331
e13=http://222.gmwo07.com/cao/aa14.exe
t14=20080332
e14=http://333.gmwo07.com/cao/aa15.exe
t15=20080333
e15=http://333.gmwo07.com/cao/aa16.exe
t16=20080334
e16=http://333.gmwo07.com/cao/aa17.exe
t17=20080335
e17=http://333.gmwo07.com/cao/aa18.exe
t18=20080336
e18=http://333.gmwo07.com/cao/aa19.exe
t19=20080337
e19=http://333.gmwo07.com/cao/aa20.exe
t20=20080338
e20=http://333.gmwo07.com/cao/aa21.exe
t21=20080339
e21=http://444.gmwo07.com/cao/aa22.exe
t22=20080340
e22=http://444.gmwo07.com/cao/aa23.exe
t23=20080341
e23=http://444.gmwo07.com/cao/aa24.exe
t24=20080342
e24=http://444.gmwo07.com/cao/aa25.exe
t25=20080343
e25=http://444.gmwo07.com/cao/aa26.exe
t26=20080344
e26=http://444.gmwo07.com/cao/aa27.exe
t27=20080345
e27=http://444.gmwo07.com/cao/aa28.exe


附件aaa.rar,包括:
病毒原始样本aaa.exe
脱壳后的样本aaa_u_.exe(附加数据也已加入,完全可以正常运行)
释放的tmp75.tmp(改后缀为.exe)
释放的obj2.sys

用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; MAXTHON 2.0)

附件: aaa.rar
newcenturymoon - 2008-6-18 0:03:00
下回把idb传上来好不:default5:
lovert - 2008-7-23 23:22:00
:kaka1:
学新知识了
网乐数码 - 2008-7-26 12:15:00
厉害
天云一剑 - 2008-7-28 22:43:00
IDB,IDB...反正我也下不下来。。。聪版。。
007_power@163.com

附件: 狙剑SYSIDB.rar
天马▲行空 - 2008-8-5 20:15:00
我想看看附件,为什么不让下载呢,学点东西啊
Lunacy_JW - 2012-7-8 23:45:00
没办法下载附件???
1
查看完整版本: 【原创】又一个机器狗类的病毒(驱动有新特性)