较老的U盘病毒SysInfo2.Dll

样本来源:http://bbs.ikaka.com/showtopic-8516118.aspx
AsPack加壳,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)
本帖被评分 2 次
最后编辑轩辕小聪 最后编辑于 2008-06-19 19:39:56
病毒样本请发到可疑文件交流区