360威胁情报中心近期发现了“海莲花”组织使用的新的CVE-2017-11882漏洞文档,通过对该漏洞文档及相关攻击活动的分析,我们关联到该组织近期针对南亚国家的攻击活动。并且发现了疑似“海莲花”组织在2017年5月初针对国内实施的一次集中式的攻击活动,结合内部的威胁情报数据,我们认为这是该组织利用“永恒之蓝”漏洞实施的一轮重点针对国内高校的攻击活动。
本报告将详细分析“海莲花”组织新的攻击活动中利用的攻击技术细节,并披露其在2017年5月实施的攻击行动详情,以及其中的关联性。
360威胁情报中心近期发现了一个“海莲花”组织使用的CVE-2017-11882漏洞文档(MD5:b123f9151c5e7057f061f3e03c1e8416)。
查看漏洞文档内容可以发现,其中使用\objemb指定对象为嵌入式ole对象,并使用\objupdate,强制对象更新,接下来\objdata后面跟着一个Equation3.0对象,并做了大量的混淆,用于对抗杀软引擎识别。将Equation3.0
对象dump出来后,发现栈溢出后返回地址为0x00402114 。
其会跳转到shellcode,shellcode会暴力搜索文件句柄然后通过CreateFileMapping\
MapViewOfFile创建文件映射,然后判断文件头偏移0x3F2C处的一个dword值是否为0x79797979来判断是不是之前的rtf文件,如果是则先获取rtf文件的路径,然后拷贝为temp目录下的ole.dll,接着从文件尾读取的0xC个字节,即”AA
BB CC DD 47 A1 1F 00 79 79 79
79″。再次判断成功后,设置文件指针偏移并读取0x1FA147个字节的shellcode,启动一个新线程执行这段shellcode。
这段新的shellcode将遍历system32目录下的文件,检查有没有vmGuestLibJava.dll以检测虚拟机,如果有则在%appdata%目录下创建一个名为VMware
Guest API Java Support的目录,释放一系列文件;否则在Program
Files下创建名为NLS_000001的目录并释放文件。
其中释放的文件列表如下:
接着创建计划任务以启动vmGuestLibJava.exe,这是一个Intel的签名白文件,导入表中包含了上面列出的ACE.dll、Common.dll等等,这些释放的dll文件实际功能一样,其在导出函数中会读取vmGuestLibJava.db3的shellcode并执行:
其中加载shellcode的部分如下所示。
这段Shellcode再次解密出一个PE并映射到内存中,dump出来后发现是{A96B020F-0000-466F-A96D-A91BBF8EAC96}.dll,这个dll为“海莲花”组织使用,并在360威胁情报中心多份“海莲花”报告中都有提及,其连接域名如下。
nnggmpggmeggidggjjggmhggmpggjhggmkggmpggnhggmpggjnggmeggmegg.ijmlajip.straliaenollma.xyz nnggmpggmeggidggjjggmhggmpggjhggmkggmpggnhggmpggjnggmeggmegg.ijmlajip.ourkekwiciver.com nnggmpggmeggidggjjggmhggmpggjhggmkggmpggnhggmpggjnggmeggmegg.ijmlajip.dieordaunt.com
结合360威胁情报平台,其中ourkekwiciver.com的子域名于2018年6月5日创建,并映射IP记录154.16.138.89,该IP已经打上“海莲花”组织的标签。
下图为相关域名的近期访问情况,可以看到仍然活跃。
通过漏洞文档中使用的相关控制域名信息,并结合360威胁情报数据,我们发现这是“海莲花”组织近期针对柬埔寨人员的APT攻击活动。
我们对该次攻击活动中使用的一些攻击载荷和代码的分析如下。
“海莲花”组织将部分PowerShell攻击代码伪装成图片文件,并托管在远程服务器地址,例如https://olosirsch.com/cars.png,https://olosirsch.com/search.gif。
其下载后内容为一段PowerShell代码,其会分配一段内存空间,将需要执行的shellcode代码拷贝到内存中,并创建线程执行。
其中shellcode被base64编码,解码后可以发现代码的花指令与之前“海莲花”组织使用的shellcode一模一样。
其中shellcode首先通过PEB获取kernel32的地址和LoadLibrary,
GetProcAddress两个函数的地址,然后使用GetProcAddress获取VirtualAlloc等函数。接着在内存按PE格式依次从PE头、节表、节的顺序复制并解密一个PE文件,然后处理其导入表,
重定位表并调用DllMain。
通过查看该DLL的导出表, 可以看到该DLL名叫{79828CC5-8979-43C0-9299-8E155B397281}.dll,且只有一个导出函数名为DllEntry。此dll文件命名和代码与“海莲花”历史使用的dll文件类似。
导出函数DllEntry实际会在内存解密两个PE文件。其中一个PE结构很多字段填0, 没有导出表,而另一个通过查看导出表发现Dll名为http.dll。
其会从资源中获取一系列控制域名:
dyndns.angusie.comtime.ouisers.comnews.denekasd.comipv6.uyllain.com
接着创建多个线程, 并向控制域名发起POST请求发送数据。
白利用技术
PowerShell载荷使用了McAfee mcods.exe文件的白利用技术加载恶意的mcvsocfg.dll文件,并且最终访问了远程控制IP的特定端口。
横向移动载荷
我们还发现“海莲花”组织在横向移动过程中会在内网的目标机器上使用MsBuild.exe编译生成用于下载、执行PowerShell代码的Loader程序,可以执行本地指定的PowerShell脚本,也可以下载执行指定URL的PowerShell代码。
结合攻击活动中使用的载荷文件等信息,我们推测该APT攻击活动的攻击过程如下。
攻击阶段 | 使用技术 |
攻击入口 | 利用鱼叉邮件投递漏洞文档,如CVE-2017-11882漏洞文档 |
初始控制 | 远程下载伪装成图片的PowerShell脚本载荷 利用McAfee的白利用技术执行核心dll载荷 |
横向移动 | 主要利用系统命令实现横向移动: 使用nbt.exe进行扫描 net.exe实现IPC用户添加 MsBuild.exe在内网机器上编译生成恶意dll模块并执行 |
我们发现“海莲花”的此次攻击活动中,从2018年3月针对柬埔寨的某机构网络实施了攻击渗透,并通过执行PowerShell载荷请求获取远程URL链接。
http://isp.cambodiadaily.org/dot.gif
http://myaccount.philtimes.org/IE9CompatViewList.xml
这两个域名看起来像是仿冒philtimes.com和cambodiadaily.com这两个域名,于2017年4月28日同一天注册的。
根据对海莲花渗透柬埔寨某机构过程的分析,我们发现源头之一在该机构一个出口IP上,这个IP的80端口指向了一个路由器登录界面:
可以看到该路由器型号为MikroTik,系统版本为
RouterOS v6.40.4,而该路由器系统版本存在漏洞,其最早在2017年披露的CIA Vault7中的Chimay
Red工具[1]中使用,该路由器相关漏洞近期也由360网络研究院的一篇挖矿攻击的文章中所提及[3]。梳理相关时间线信息如下:
我们结合事件的时间线和相关线索推测存在“海莲花”组织利用了路由器的漏洞攻击进入目标网络的可能。
我们结合上述攻击事件中“海莲花”使用的攻击利用技术(如使用 McAfee
mcods.exe文件的白利用技术),控制通信特征以及使用的控制基础设施的重叠,发现疑似该组织在2017年5月初对我国境内实施了一次集中的攻击行动,其主要的攻击目标为境内的大学高校。结合相关线索,我们认为是“海莲花”组织利用永恒之蓝漏洞的一次尝试攻击。
lavaudio.exe
该恶意程序通过服务的形式启动,服务名为Netmans,运行之后会执行文件
c:\program+files\intel\opencl\bin\x86\clang_compiler32.exe
clang_compiler32.exe
该恶意文件是一个远控木马,其会解密出4个C2地址,然后连接该C2的IP地址,然后实现远控的功能。
和0x27相加解密出C2信息:
解密出的4个C2地址为:
cloud.sicaogler.comnews.coleope.comfox.ailloux.comcnn.befmann.com
解析后连接IP的61781端口。
远控的消息分发模块如下:
以下为远控的创建文件操作:
截至我们分析时,该样本文件在VT上依然具有比较好的免杀效果。
通过搜索发现也有国外人员感染该木马程序,并且hash都一样(http://processchecker.com/file/clang_compiler32.exe.html)。
对比本次事件中木马连接的网络数据格式和针对柬埔寨攻击事件中的木马连接网络数据格式一致,并且使用了相同的远程端口号。可见两个事件中使用的木马控制通信协议具有同源性。
通过分析数据包格式,协议类似gh0st RAT 的格式:
99 01 00 00 //压缩前的数据包长度 a6 00 00 00 //压缩后长度 78 9c 63 62 20 00 8c 0c //内容 0c 4d 0d 8c 8d 8c 75 0d 0d 8d 8d 19 18 1c 53 72 33 f3 32 8b 4b 8a 12 4b f2 8b a0 4a 58 19 99 19 18 81 f4 24 f7 99 6e 2e 0e 57 18 41 6c 47 06 5f 06 17 06 05 86 00 06 67 06 3f 06 57 86 10 20 db 8d 21 91 21 97 21 93 21 87 a1 12 2a e3 09 a4 5d 19 4a 18 32 18 52 19 8a 18 f2 80 64 09 50 c4 91 21 05 a8 b2 00 c8 06 89 2a 30 e8 02 71 41 6a 5e 32 6b f0 c2 6e a1 20 ee aa fe b8 75 f1 dd e1 ef ab 1e 07 e3 71 37 8f e6 89 3a 3e 06 86 03 2b f4 1b d0 a5 18 09 f9 79 30 00 00 23 75 24 cb
解密方法是用zlib解密,如图:
对该事件中攻击使用的控制域名进行分析,我们发现域名注册于2017年4月27和28日两天,而针对柬埔寨攻击事件中的仿冒域名同样注册于2017年4月28日:
对相关事件的时间线进行梳理如下:
并且我们对该事件相关受害者在事件发生时间范围的感染数量趋势图如下,其中大部分感染用户属于国内多个高校的网络,并且其中一个感染用户为国内某大型能源企业驻乌干达的机构所属。
在感染量上从 WannaCry 事件全面爆发之后的首个工作日开始呈下降和停止趋势。
360威胁情报中心通过关联的线索发现,2017年5月上旬的攻击活动应该是海莲花所为,他们使用已知的NDAY漏洞永恒之蓝漏洞尝试攻击了国内的目标,并重点针对国内的高校网络,并随后进行横向渗透。
我们也同时发现在该次攻击行动中,“海莲花”组织并未使用其惯用的攻击恶意代码和工具,结合整个事件相关的时间线,我们作出如下合理的推测:
1. MS17-010
的攻击利用代码公开之后,“海莲花”组织利用公开的利用代码对目标实施攻击尝试,并且为了避免攻击活动被追溯,其选择修改开源RAT代码作为投递的攻击载荷,其首选了具有较强稳定性且开源的gh0st
RAT 作为其控制通信方式,并且做了精简和改造以后达到更好的免杀效果;
2. 由于“海莲花”组织在开始实施相关攻击活动的数日之后,在国内爆发了WannaCry事件,导致大量受害主机进行清除和还原,一定程度影响了该组织的攻击实施和效果,导致在此事件后相关的感染目标数量急剧减少。
在分析过程中我们也发现了两次攻击活动之间存在某些联系,包括:
结合内部更多线索的重合,我们认为该次事件的攻击来源疑似“海莲花”组织。
打赏我,让我更有动力~
© 2016 - 2024 掌控者 All Rights Reserved.