海莲花(OceanLotus、APT32)是一个具有越南背景的黑客组织。该组织最早被发现于 2012 年 4月攻击中国海事机构、海域建设部门、科研院所和航运企业。主要使用鱼叉和水坑攻击方式,配合社工手段,利用特种木马进行符合越南国家利益的针对性窃密活动。
近日,启明星辰金睛安全研究团队发现了一起该组织的最新攻击事件,我们还原了从投放到最后远控释放的整个攻击过程。
载荷分析
本次投放的恶意文档名为Đơn khiếu nại,文件名为越南语,翻译后中文意思为“投诉”。
该文档实际为一个恶意宏文档,打开后会显示诱惑用户启动宏开关的图片。
通过进入宏代码窗口,发现设置了密码保护。
经过处理,我们获取到了一段混淆较为严重的VBS代码。
经过混淆解密后,可以得到以下VBS代码。
解密后,该脚本会去加载一段新的vbscript脚本,值得一提的是,在获取该段脚本过程中,我们发现存在区域限制问题,即在某些国家和地区无法对其进行下载,最后我们通过某些途径将其获取到。
VBS Loader分析
得到该脚本后,我们发现该段代码也具有强混淆手法。
经过分析发现,原始文件存在3段代码,分别使用了0x35, 0x39, 0x35作为异或解密的密钥。
第一段代码如下所示。这段代码新建了一个Excel对象,并修改了注册表中AccessVBOM的值,使脚本可以对宏进行调用执行。
第二段代码为该Excel对象的宏代码,该段宏代码经过了一定的混淆,并使用了0x78来异或加密其中的字符串。并使用CreateProcess来调用rundll32,然后将一段shellcode注入到该进程中,并最终通过CreateRemoteThread加载该段shellcode。
shellcode的前半部分是base64解码程序,后半部分是base64数据。
宏代码中的shellcode内容如下所示。
shellcode的前0x76个字节是一个loader,作用是对后面的数据进行解码并加载。该数据的编码为base64,经过解码后可以得到另一段shellcode,如下所示。
这段shellcode会连接C&C服务器,下载另一段shellcode内容并直接加载。
第三段代码如下所示。这段代码调用了该Excel的Auto_Open函数,并关闭Excel对象,恢复注册表中的AccessVBOM字段。
远控分析
最终的shellcode在下载完成并运行后,首先shellcode头部通过将偏移0x34和0x38处的数据进行异或求得数据的总长度,然后对随后的数据进行异或解密,在全部解密完成后开始执行代码。
解密后得到一个DLL文件,该文件的导出模块名为17f2d8.dll,导出函数名为_ReflectiveLoader@4。
在DllMain函数的开头,会对0x10030028处大小为0x1000的数据进行异或0x69解密。
在解密后的数据中,可以发现该后门回连的C&C服务器为:
https://***.***.net,/s/ref=nb_sb_noss_1/167-3294888-0262949/field-keywords=books
另外,该样本也在请求中将自己伪造为amazon.com,将传输的数据编码后隐藏在Cookies字段中。
当得到C&C服务器发过来的指令后,该远控便会执行相应的操作,通过统计发现有长达72种指令。
以下为其中几种指令的功能。
溯源与关联分析
Shellcode关联
结合该VBS脚本下载的shellcode的编写技巧,我们通过以往追踪海莲花组织的经验,发现该段shellcode与以往海莲花组织所使用的shellcode手法几乎一致。
(上图为本次攻击中使用的shellcode,下图为以往海莲花所使用的shellcode)
同源性关联分析
除了shellcode外,从本次攻击中最后释放的远控,与在我们以往披露的海莲花组织报告中(详见《2017网络安全态势观察报告》),无论是回传特征,还是代码结构,都几乎一致。
甚至连伪装成amazon的host主机也一致。
因此可以确认,本次攻击的确为海莲花组织发起,并且该组织仍然在沿用以往的武器。
除此之外,由于本次攻击中,文件名为越南语书写,且标题与商业相关,因此很有可能目标针对越南相关的私营企业。
目前,VenusEye威胁情报平台已经支持对此次海莲花组织攻击活动的相关IOC报警。如下:
点击APT32可以获取到该组织的相关文章与情报,欢迎业界同仁前来试用(https://www.venuseye.vip/)
*本文作者:金睛,转载请注明来自FreeBuf.COM