APT-32(海莲花)分析报告 2019-08-22 张翔宇
1、 样本概况
1.1 样本信息
病毒名称:wwlib.dll
所属家族:海莲花
MD5:9EFC7EE0D13642E8AEC46D3C2E72E1D5
SHA1:D563807917B5E4BD32A2BAB11CA9B6827CDCD885
CRC32:6B82BBCF
病毒名称:wwlib.dll
所属家族:海莲花
MD5:0e84ac6b10b60303fd3c79cb9e181079
SHA1:EF181A596F86CAA5F544361261AEEC4D1C878F08
CRC32:BB28AF4F
1.2 测试环境及工具
环境:Windows 7 SP1 x86
工具:IDA,OD,X32Dbg,WinDbg
2、 具体行为分析
2.1 主要行为
恶意文件整体流程如下
2.2 恶意代码分析
2.2.1 简历.exe分析
病毒文件构成如下,使用了Word白签名文件,加载的恶意的dll,典型的白加黑利用手法
主程序首先打开注册表项,判断当前系统内是否存在相对应的WORD版本(Office12,即Office2007),如果不存在,函数直接退出
然后从wwlib.dll中获取了恶意代码函数的地址,并调用了这个函数;
2.2.2 wwlib.dll分析
以下函数为在wwlib.dll中被调用的恶意代码,这个函数整体结构如下
首先在当前用户的环境变量中添加一个变量,这个变量为Word默认路径,变量的值为恶意文件目录,以便作为一个字符串类型的消息传递给之后的白程序rundll32.exe
然后将恶意文件拷贝到Temp目录下
然后删除原始目录下的恶意DLL
使用命令行创建白进程rundll32.exe加载Temp目录下的wwlib.dll,执行其中的xCode函数
2.2.3 xCode函数分析
首先获取刚刚在环境变量中存放的恶意文件的路径,然后删除这个环境变量
从名为word的资源中获取数据,获取的数据如下,这是一个word文件的头部,从这里的一段代码就是生成一个迷惑人的word文档
然后打开这个文档作为掩饰,同时最原始目录下只存在最新生成的doc文档,病毒文件被删除,经使用沙箱检测这个新生成的word文档,未使用已知的office漏洞进行其他代码的执行
然后从获取资源文件的数据,对获取到的数据进行解密,这是一段shellcode,然后执行这段shellcode
2.2.4 Shellcode代码分析
这段shellcode通过获取_PEB_LDR_DATA结构体的地址,获取dll基址,函数地址等关键信息,加载wininet.dll,从而可以进行网络连接的操作
然后分别调用了InternetOpenA,InternetConnectA等网络连接的API,用来创建一个网络连接,连接的IP为182.61.175.57 ,连接的端口是443,使用Http协议进行连接
经查询,这个IP是香港的地址
又调用了HttpOpenRequestA创建http请求句柄,访问的文件是/rpc,请求的类型是84C03200,经解析,以下为一些关键属性
1.强制从源服务器下载所请求的文件
2.持续进行连接。
3.禁止检查证书有效性
4.禁用cookie对话框
之后使用InternetSetOptionA设置了internet的属性,主要为忽略一些关键的错误信息
然后将指定的请求发送到HTTP服务器,发送的是Http协议的请求头,其中还包括系统版本信息,和浏览器信息,如果发送成功,则继续执行shellcode,否则退出
如果上一步发送请求头成功,然后使用VirtualAlloc申请空间,调用InternetReadFile函数,循环从连接的HTTP句柄读取0x2000字节的数据存储到申请的空间中,知道读取0字节后停止
最后跳到使用VirtualAlloc申请的空间首地址进行执行,由于无法从C2服务器接收到数据,没有后续的分析代码,到这里整体分析完成
这个APT的目的就是在用户机植入后门,从C2服务器上下载shellcode并执行
三、 病毒特征
IOC:
IP: 182.61.175.57