0x00 前言


“白利用”是木马对抗主动防御类软件的一种常用手法。国内较早一批“白利用”木马是通过系统文件rundll32.exe启动一个木马dll文件,之后又发展出劫持合法软件的dll组件来加载木马dll的攻击方式。

随着安全软件对“白利用”的防御机制日益完善,木马也在花样翻新。近期,360QVM引擎团队发现“华晨同步专家”远控木马家族采用了比较另类的“白利用”技术:该木马利用白文件加载dll文件后,再次启动白文件并卸载白进程内存空间,然后重新填充病毒代码执行。

这种“移花接木”的手法,使得病毒代码均通过白进程主模块执行,能够绕过多数安全软件的主动防御规则,具有较强的存活能力。以下是对此木马详细的技术分析:

0x01 木马分析


该木马伪装成“美女图片”通过社交软件、电子邮件等方式传播,一旦中招,电脑将被黑客发送指令执行摄像头监控、屏幕监控等远程控制行为。目前已知该木马主要变种达到22个。

enter image description here

图:“华晨同步专家”远控木马及变种

enter image description here

图:木马执行过程

“华晨同步专家”木马文件:

enter image description here

enter image description here

美女图片.exe:运行后会释放update.exe、ETComm.dll、wc.dat这三个文件,并运行update.exe。这种“三合一”的打包方式相比压缩包更利于木马传播。

  1. update.exe:盛大网络的ET语音启动程序
  2. ETComm.dll:用于劫持盛大程序的木马dll文件
  3. wc.dat:zlib压缩加密的远程控制木马

我们首先从ETComm.dll入手分析:

ETComm.dll分析过程

DllMain中首先获取模块完整路径

enter image description here

比较自身完整路径是否为C:\$WinBackUP.H1502\BinBackup\Images\update.exe 如果不在C:\$WinBackUP.H1502\BinBackup\Images目录下则将ETComm.dllwc.datupdate.exe拷贝过去,接下来直接进入100016A0

enter image description here

100016A0进来以后首先访问C:\$WinBackUP.H1502\BinBackup\Images\wc.dat

enter image description here

申请一段内存后将wc.dat的内容读进去

enter image description here

将读出来的文件内容的前四位与0x36异或,得出0x14E00

enter image description here

将解密出来的0x14e00给到一个变量

紧接着就申请出来一块0x14E00大小的内存

之后将这些数据作为参数传递到Zlib的解压函数中

enter image description here

解出来的数据如下

enter image description here

由此我们可以得出wc.dat的结构,第一个DWORD存放的是UnpackFileSize,之后的数据存放的是压缩后的文件数据,此时是最好的dump时机。

Dump出来的文件:

enter image description here

接下来是为内存运行exe做准备了

alignPEToMem函数主要作用为加载PE到内存,该函数主要内容为对其exe节数据进行初始化操作。AttachPE主要作用为创建外壳进程(盛大网络ET语音启动程序),并替换进程数据然后执行真正的病毒代码

enter image description here

我们重点来看下AttachPE函数的行为:

首先挂起模式再次运行C:\$WinBackUP.H1502\BinBackup\Images\update.exe

enter image description here

调用GetThreadContext获取信息目标进程的线程句柄

enter image description here

得到的信息存放在结构体lpContext中,接着读取了目标进程的lpContext结构体中Ebx+8的数据。

[lpContext.Ebx+8]处存的是外壳进程的加载基址,该目标进程的基址为0x00400000

enter image description here

动态获取ntdllZwUnmapViewOfSection并调用,卸载目标进程原外壳内存数据

enter image description here

重新在目标傀儡进程中申请傀儡代码用到的内存,0x00400000大小为2C000

enter image description here

enter image description here

内存申请成功后在傀儡进程的Context.ebx+8中写入新的基址(因为两个文件基址都为0x400000,所以这一步并没有什么用,但是如果对于两个基址不一样的文件这一步就非常必要了)

enter image description here

然后在新申请的内存中写入已经展开了所有节数据的病毒代码,大小为0x2C000

enter image description here

重置运行环境中的入口地址,新的OEP为基址+0x0002A820

enter image description here

更新傀儡进程运行环境后恢复傀儡进程运行

enter image description here

至此ETComm.dll的任务已经完成,直接退出了进程

enter image description here

接下来我们来分析被偷梁换柱的update.exe进程

从入口点我们可以看出是UPX加壳

enter image description here

直接ESP定律到程序OEP,入口点代码可以看出是VC6.0所编译

enter image description here

来到Main函数我们可以看到先是调用了一些sleep(0)

enter image description here

后面有一些字符串单字节赋值,我们可以看出他拼出来的字符串是Kernel32.dll和GetMoudleFileNameA,分别给到了变量LibFileName和ProcName

enter image description here

动态获取GetMoudleFileNameA

enter image description here

通过GetMoudleFileNameA获取到文件所在路径后,将该路径写入注册表作为启动项,启动项名称为“Realtek高清晰音频管理器”

enter image description here

enter image description here

获取资源中的名为“dll”的资源

enter image description here

enter image description here

解密算法为

xor 0xF1
add 0xF1

中间有很多sleep(0)做干扰

enter image description here

解出来的文件

enter image description here

Dump出来是dll简单观察发现是华晨远控(Gh0st修改)

enter image description here

继续往下就是内存加载dll。抛弃系统的LoadLibrary和GetProcAddress来自己实现则会使dll不用落地,其目的是躲避安全软件的云查杀。

LoadLibrary的实现过程如下:

申请内存,写入PE头数据

enter image description here

循环拷贝各个节数据

enter image description here

处理重定位

enter image description here

读取dll的引入表部分,加载引入表部分需要的,并填充需要的函数入口的真实地址

enter image description here

dll

enter image description here

修改各个节内存属性,单独设置其对应内存页的属性

enter image description here

enter image description here

执行DllMain函数

enter image description here

enter image description here

GetProcAddress实现过程:

enter image description here

调用自写GetProcAddress获取“Fi”导出函数并调用

enter image description here

Fi函数负责将整个远控执行起来了。

以下是远控基本信息:

远控上线地址:dddd.ndiii.com
端口:2012
分组名称:Default
远控官网:http://www.jinjingltsh.com/

“华晨同步专家”官网号称“拥有国家政府机关认证,与众多安全厂商均有合作”,实际上完全是其捏造的。

enter image description here

enter image description here

0x02 总结


通过以上分析我们看出,“华晨同步专家”远控木马的新颖之处,在于利用白进程内存运行exe,内存运行dll,真正的病毒文件并不落地,仅存活在内存当中,具有较强的免杀能力。

根据VirusTotal对此木马较新变种样本的扫描结果,57款杀毒软件中有17款可以将其检出,检出率约为30%:

enter image description here