关于Haiheiwang木马的详细分析

2015-05-12 来源:未知 作者:腾讯电脑管家
【文章摘要】样本在驱动层的保护和支持下对抗杀软注入到浏览器进程和桌面管理器中,实现劫持浏览器主页、修改当前浏览器访问的页面,同时会统计样本的安装信息上传到服务器。

一、样本概述

        样本在驱动层的保护和支持下对抗杀软注入到浏览器进程和桌面管理器中,实现劫持浏览器主页、修改当前浏览器访问的页面,同时会统计样本的安装信息上传到服务器。

        样本由英语学习一点通、老年人电视剧助手等母体下载,这类母体没有太多功能,就只是一个简单的窗口,窗口上则是与其主打功能相关的几个链接。分析可知,该窗口实际是一个傀儡窗口。

       英语学习一点通安装 包在安装时会默认在注册表中添加开机启动项。英语学习一点通在启动后会检查本次启动是否是伴随开机启动,若是则隐藏程序的窗口并设置一个定时器,在3分钟 后才去相应的网站上下载加密exe,然后通过母体资源节中的字符串密钥解密下载的加密exe并执行该exe,解密后的exe就是haiheiwang的安 装包;否则就简单的显示程序的窗口而不执行其他功能。而英语学习一点通、老年人电视剧助手这类母体则是由xxx播放器推广传播的。

 

二、样本的传播流程图:

  

 

三、Haiheiwang应用层文件分析

        Haiheiwang安装包除了释放三个驱动之外,还释放了haiheiwang.dll,haiheiwang.exe,haiheiassist.dll以及一些配置文件。

 

1、 Haiheiwang.dll

DllMain流程如下:

 

 

① 发送当前进程路径到“傀儡”窗口

将当前进程路径以WM_COPYDATA类型调用SendMessageW发给指定的窗口,该窗口由haiheiwang.exe创建。


 

② 创建新线程

当前模块是 explorer.exe时,创建一个heiheiwang.exe的新进程。否则,根据当前模块所在的浏览器进程,查找对应的地址栏控件对象,从名 为"AAABD28F-4F64-43de-BCF2-86D228C1985E"的FileMapping对象中获取URL地址,然后调用 SendMessageW实现模拟人工输入网址。


 

③ Hook相关函数对抗杀软网页防护模块

当前模块是360Safe.exe或kxetray.exe时hook NtDeviceIoControlFile,新的NtDeviceIoControlFile不进行任何操作直接返回失败。

当前模块是explorer.exe、iexplorer.exe、haiheiwang.exe时,hook LdrLoadDll对杀软模块进行阻拦。


 

若当前模块是 haiheiwang.exe还会hook CreateProcessW以实现当新进程是常用浏览器时,会修改其command line 为"AAABD28F-4F64-43de-BCF2-86D228C1985E"的FileMapping对象对应的URL。
 

(1) GetClassObject

创建名为"AAABD28F-4F64-43de-BCF2-86D228C1985E"的FileMapping对象,并初始化内容为零。

2、 Haiheiwang.exe

(1) 创建Mutex 保证只有一个实例在运行,"{E19F4C46-1169-41be-AA7E-31F624F624BC}*&haimianbaobao89u9fe8haiheiwang"。

(2) 创建一个类型为"A81EF017-3154-4edb-9EFB-54F49C615E27",标题为“热血海贼王-伟大航道寻宝路”的傀儡窗口,该窗口接受haiheiwang.dll传递过来的进程路径信息。

(3) 在窗口初始化过程中,从资源节的StringTables中获取key来解密配置文件heiheiwang.haiheiwang中的几个URL。

"https://k*.i*7.com/maindata.php?macid=%s&qudaoid=%s&rand=%d"

"https://u*e.i*7.com/config/updateset_%s_%s.haiheiwang"

"https://u*e.i*7.com/cnzz/2hmbb.html?v=%s&id=%s&action=%s&softname=%s"

从参数来看是在统计安装推广的信息。

(4) 并且从在该窗口对应的消息处理例程中,当收到WM_COPY_DATA类型的消息时,得到对应的浏览器路径,调用ShellExecuteW打开“https://www.h*3.com/?tn=9*063_h*_pg”。

(5) 从其他的信息处理流程中,发现该样本会从u*e.i*7.com上下载加密的配置文件。

 

3、 haiheiassist.dll

    该dll由haiheiwang安装包调用来加载释放的三个驱动。

 

四、驱动分析

1、 l9c3ninevhavy68sx.sys

(1) 注册CreateProcessNotifyRoutine

对新进程是各种浏览 器进程,或者父进程是explorer.exe和haihewang.exe的进程通过两种方式注入shellcode实现在目标进程中加载驱动路径下的 heiheiwang.dll或者dsroft.dll。 Shellcode的布局都是在目标进程空间内从0x71b00000开始向下寻找空闲空间, 然后在空闲空间中写入构造好的shellcode。Shellcode加载dll的方式分一下两种:

①  hook ntdll.NtTestAlert

使其跳转到构造的shellcode入口。shellcode中首先恢复NtTestAlert,然后调用LdrLoadDll加载heiheiwang.dll,最后返回到正常的NtTestAlert中。

 

② 修改 EntryPoint

修改ntdll的入口点为shellcode入口,shellcode中先恢复ntdll入口,再调用LdrLoadDll加载dll,最后执行流程回到ntdll的入口点。

(2) LoadImageNotifyRoutine ,空回调。

(3) Hook NTFS 的 IRP_MJ_CREATE, IRP_MJ_SET_INFORMATION, IRP_READ, IRP_MJ_FILE_SYSTEM_CONTROL,IRP_MJ_DEVICE_CONTROL, 当进程不是系统进程和几个浏览器进程时,隐藏被保护的文件和目录。

(4) 母体通过DeviceIoControl传入要隐藏的文件和目录,传入要增加或删除的注册表启动项。

2、lp8g3boc.sys

    通过摘除ActiveProcessLinks链,HANDLE_TABLE的HandleTableList链隐藏母体进程。

3、s6h9kl7d.sys

注册 IoRegisterFsRegistrationChange的回调例程,在回调例程中 Hook NtfsCommonDirectoryControl或FatCommonDirectoryControl实现文件和目录保护。保护的文件 是以上三个驱动文件和母体及其释放的其他文件。

 

五、电脑管家能有效查杀该病毒,确保用户的电脑安全。

   


电脑管家 V16

全新上线 更轻更快