样本来源:
http://bbs.ikaka.com/showtopic-8516118.aspxAsPack加壳,Delphi 7所写的DLL
瑞星早就能杀了,病毒名Trojan.Win32.Agent.bkx
这壳手脱了之后,没在OD下仔细跑,基本都是用IDA静态分析出来。
下面模拟中毒过程,谈一谈中毒后整个的行为。
当U盘被双击,Rundll32.dll加载病毒DLL,此时的动作为:
(1)尝试打开名为My_Explorer_Event_0.1的Event,如打开成功,说明在自身之前已有一实例在EXPLORER.EXE中运行,则退出
(2)将自身文件拷贝到%systemroot%\system32\SysInfo.dll,并将其属性设置为系统、只读、隐藏
(3)将%systemroot%\system32\SysInfo.dll注册为Browser Helper Objects项,名为"MyBHO_0.1",CLSID为{989D2FEB-5411-4565-8988-1DD2C5263377}
(4)破坏隐藏文件注册表
(5)将%systemroot%\system32\SysInfo.dll注入EXPLORER.EXE进程
被注入到EXPLORER.EXE的dll则执行如下操作:
(1)创建一个名为My_Explorer_Event_0.1的Event
(2)将自身文件拷贝到%systemroot%\system32\SysInfo.dll,并将其属性设置为系统、只读、隐藏(如按照以上顺序,这一步很可能不需要)
(3)将%systemroot%\system32\SysInfo.dll注册为Browser Helper Objects项,名为"MyBHO_0.1",CLSID为{989D2FEB-5411-4565-8988-1DD2C5263377}
(4)破坏隐藏文件注册表
(5)将%systemroot%\system32\SysInfo.dll注入WINLOGON.EXE进程
(6)创建一个新线程,线程函数记为ThreadFunc1
ThreadFunc1行为:
{
创建一个类名为"TMyWndCls",标题为"无心恋落花"的窗口。
该窗口的消息响应函数记为MsgDispatch
MsgDispatch主要异常行为:
{
WM_CREATE消息:
{
创建SOCKET套接字
设置计时器,计时器函数记为TimeFunc1,间隔时间为1000ms
TimeFunc1行为:
{
访问注册表中系统通用打开-保存对话框的使用记录,以及WORD程序的访问记录
得到记录中文件名包含以下字符的word文档的文件名:
"试卷"
"试题"
"考试"
"答题"
"选择题"
将这些文件复制到%systemroot%\system32\MyDocs文件夹下
在文件后部加上"cctv"以及计算机名、用户名
与IP地址为202.98.141.166的远程服务器的3388端口通信,将这些文件传送过去。
}
}
WM_DEVICECHANGE消息:
{
当一个移动存储介质如U盘被插入USB接口,系统找到这个新硬件时,窗口将得到WM_DEVICECHANGE消息
WPARAM参数为DBT_DEVICEARRIVAL,LPARAM参数为DEV_BROADCAST_HDR结构指针
且此结构中的dbch_devicetype应为DBT_DEVTYP_VOLUME,即此结构为一个DEV_BROADCAST_VOLUME结构
这时病毒的窗口过程通过结构中的dbcv_unitmask成员,得到这个新卷的驱动器字符(如C、D……)
从而,病毒向此新卷的根目录下写入autorun.inf和SysInfo2.Dll
以上就是病毒实现在系统加入移动存储介质时写入病毒的方法。
}
}
}
被注入WINLOGON.EXE的DLL则执行如下操作:
创建一个新线程,线程函数记为ThreadFunc2
ThreadFunc2行为:
{
(1)sleep 5000ms
(2)将自身文件拷贝到%systemroot%\system32\SysInfo.dll,并将其属性设置为系统、只读、隐藏
(3)将%systemroot%\system32\SysInfo.dll注册为Browser Helper Objects项
名为"MyBHO_0.1",CLSID为{989D2FEB-5411-4565-8988-1DD2C5263377}
(4)破坏隐藏文件注册表
(5)尝试打开名为My_Explorer_Event_0.1的Event,如打开成功,说明在自身之前已有一实例在EXPLORER.EXE中运行,则跳到(7)
(6)将%systemroot%\system32\SysInfo.dll注入EXPLORER.EXE进程
(7)向当前所有可用驱动器根目录下写入autorun.inf和SysInfo2.Dll
}
解决方案:
由于三个进程对文件和注册表的写入都是一次性的,即没有循环写入,因此处理起来还是相当方便的:
用SREng在“系统修复”-“浏览器加载项”中删除"MyBHO_0.1"项(CLSID为{989D2FEB-5411-4565-8988-1DD2C5263377},指向%systemroot%\system32\SysInfo.dll)
并在“系统修复”-"Windows Shell/IE"中点选“显示隐藏文件”,再点“修复”
删除各盘符根目录下的autorun.inf和SysInfo2.Dll
重启电脑后:
删除%systemroot%\system32\SysInfo.dll
删除%systemroot%\system32\MyDocs文件夹
用户系统信息:Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; MAXTHON 2.0)