海莲花(OceanLotus)APT团伙是一个高度组织化的、专业化的境外国家级黑客组织,其最早由360天眼实验室发现并披露。该组织至少自2012年4月起便针对中国政府、科研院所、海事机构、海域建设、航运企业等相关重要领域展开了有组织、有计划、有针对性的长时间不间断攻击。
近日,360威胁情报中心捕获到了一个该团伙最新的攻击样本,分析显示其使用了微软Office相关漏洞进行恶意代码投递,在对样本进行了详细分析,并对相关的通信基础设施进行关联拓展后,我们发现了一批新的样本和域名/IP,基于这些信息,我们最终将提供一些360威胁情报中心视野内的信息来构成更大的拼图。
样本分析MD5:72bebba3542bd86dc68a36fda5dbae76
文件名:MonthlyReport 03.2018.doc
该样本是一个RTF文档,其使用OfficeCVE-2017-8570漏洞触发执行VBS脚本,脚本进一步解密执行DLL文件以及ShellCode,ShellCode最终会解密出木马主控模块并实现内存加载执行。
CVE-2017-8570RTF文档中内嵌了三个Package对象,分别对应VXO53WRTNO.000、fonts.vbs和3N79JI0QRZHGYFP.sct:
以及一个包含了CVE-2017-8570漏洞的OLE2Link对象,去混淆后如下:
其中Package对象中包含了文件原始路径信息:C:\Users\HNHRMC\AppData\Local\Temp\VXO53WRTNO.000
漏洞触发后启动3N79JI0QRZHGYFP.sct,该脚本的作用是通过CMD.EXE执行fonts.vbs脚本:
fonts.vbs
fonts.vbs文件实际上充当了Loader的功能,当fonts.vbs被执行时,首先会将Temp目录下的VXO53WRTNO.000的内容读取到内存中,然后通过Base64解码后再通过AES解密得到ShellCode。最后将自身的硬编码的Load_dll以同样的方式解密出来,并动态加载Load_dll,并实例化其中的sHElla对象,最终通过调用sHElla.forebodinG(shellcode)方法将ShellCode执行起来:
Load_dll
Load_dll中的forebodinG方法的功能就是把接收到的ShellCode,拷贝到一个新分配的内存中,并将内存地址转换成对应的委托进行调用执行:
ShellCode
ShellCode部分的功能是从自身中提取出一个PE文件,再将该PE文件加载到内存执行。该PE文件的导出名为:{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll,下图为修正后的PE头数据:
Dump的DLL文件的导出名信息:
#p#分页标题#e#{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll
解密出的DLL的资源中有一个加密的资源文件:
该DLL运行时,首先获取该资源文件,进行RC4解密:
解密后的资源文件中包含了木马配置信息和3个网络通信相关的DLL文件,网络通信相关文件用于支持HTTP、HTTPS和UDP协议通信。下图为解密后的资源文件信息:
经过分析,配置文件的相关数据结构如下:
紧接着该DLL会在内存中加载资源文件中解密后的三个网络相关的DLL,然后获取本机信息并经过编码后与icmannaws.com、orinneamoure.com、ochefort.com这三个域名进行组合形成一个二级域名用于网络通信,最终接受控制端指令实现如下远控功能:
l 文件管理
l 创建进程
l 运行shellcode
l 注册表管理
l 设置环境变量
组合出的二级域名样例:
nnggmpggmeggidggnjggnjggjnggmfggmfggnhggjpggmfggmmggmhggmfgg.ijmlajok.icmannaws.com样本发送的DNS通信请求:
上线域名生成算法
样本的上线域名字符串由两部分组成,一部分由电脑主机名生成,一部分为4字节的样本版本ID:0x2365a384。域名生成算法首先将计算机名(Unicode编码)转换为小写字母,然后再把该段内存的小写字母转换为HEX字符串,接着判断该HEX字符串的每一个字节,如果在0x2f和0x3a之间,就将该字节减去0×30后做为编码表(ghijklmnop)的索引值,再通过索引值在编码表中取得最终该字节对应的编码,如不在0x2f和0x3a之间,则不进行处理。
使用Python还原其生成算法如下:
生成测试机器的上线域名:
拓展
基于上述样本分析得到的3个C2地址,我们确认这是一起来源于海莲花APT团伙的攻击,利用360威胁情报中心的数据平台我们对相关信息做进一步的拓展,挖掘出了更多的情报信息。(所有拓展的相关信息见IOC一节)
使用360威胁情报平台拓展攻击线索在360威胁情报分析平台中搜索其中一个C&C地址:icmannaws.com,我们得到如下输出页面:
#p#分页标题#e#
左上角的信息显示该域名已经被360威胁情报中心打上了海莲花的标签,而左下角则显示了与该域名相关的安全报告,点进去可以看到这是杀毒软件公司ESET在今年3月份针对海莲花新样本的分析报告,其中就包含了本次样本中3个C2域名中的2个。
我们随便使用ESET分享的某个IP地址:164.132.45.67再一次进行搜索,可以搜索到大量和海莲花相关的域名,有部分域名在各种威胁情报平台上还查不到相关标签信息,而它们都曾解析到IP 164.132.45.67:
如此,我们就从一个样本中的域名出发,通过威胁情报平台关联的威胁信息,最终挖掘到一些以前我们所未知的样本或C&C基础设施。
IOC C&C从2015年以来,360威胁情报中心截获并分析了多个海莲花团伙的新样本及对应的通信基础设施,相关的信息在威胁情报中心的数据平台上可以看到(https://ti.360.net/),注册用户如果查询到相关的IOC元素则可以立即看到平台输出的标签信息,有助于安全分析人员及时发现和关联APT攻击中有价值的情报信息。
参考[1] https://ti.360.net/
[2] https://ti.360.net/advisory/articles/advisory-of-oceanlotus/
[3] https://www.welivesecurity.com/wp-content/uploads/2018/03/ESET_OceanLotus.pdf