2020 年第四季度以来,MuddyWater 一直针对中东国家发起持久的攻击行动。根据最新发现的样本,研究人员认为攻击活动仍处于活跃状态。MuddyWater 被认为是由伊朗革命卫队运营的组织,主要维护伊朗的国家利益。
攻击通常从一个压缩文件开始,文件中包含一个嵌入 VBA 宏代码的恶意 Word 文档。
根据文件内容,可以看出似乎为讲阿语的用户专门设计的。也有一些样本包含英语的通用消息,诱导用户启用宏代码。
恶意文档样本
恶意文档样本
尽管不能明确确定攻击的具体目标,但根据分析攻击针对巴基斯坦、哈萨克斯坦、亚美尼亚、叙利亚、以色列、巴林、土耳其、南非、苏丹等国家。这些国家都被认为是伊朗的利益相关,或者是伊朗在其他地区的发展与战略相关。
宏代码实际上非常简洁,将一个模糊程度不高的 VBS 脚本写入 C:\ProgramData 或 Windows 启动文件夹,文件名为 Temp_[3-5 随机字符].txt。
恶意 VBA 宏代码
释放的样本是一个小型的 RAT。首先通过 whoami 进行侦察,再结合所属国家信息构建 C&C 通信的 URI。样本中发现的国家代码有:
- PK -> 巴基斯坦
- AR -> 阿根廷
- AM -> 亚美尼亚
- SY -> 叙利亚
- IL -> 以色列
- BH -> 巴林
- TR -> 土耳其
- SA -> 沙特
- SD -> 苏丹
- KK -> 哈萨克斯坦
去混淆代码
去混淆代码
函数在执行 explorer.exe 后再调用一个函数从一个数组中选择一个 IP 地址,如果所选 IP 没有回复将会重新选择。C&C 使用的 HTTP GET 请求结构为:http://{ IP_address }/getCommand?guid={ recon_string }。
HTTP GET 请求
没有响应的情况下将轮换下一个 IP 地址。如果有响应则需要去混淆并创建 WScript.Shell 对象来调用函数执行。
部分代码
执行结果输出到 TXT 文件中,读取并将其发送回 C&C 服务器。后续使用 HTTP POST 请求,结构如下所示:
HTTP POST 请求
flag_value实际为状态,在脚本中也是一个初始值为 0 的变量。执行并接收命令回传结果后会将其设置为 1,除此之外没有任何修改。在脚本初始执行 whoami_wrap 时会检查该值,与 126 进行比较,如果解析为 True,则会显示以下提示消息。
提示消息
样本中唯一实现的就是通过 WMI 获取失陷主机相关信息:
部分代码
这样一个功能并不完整的样本,在长达两年的时间被多次用于各种攻击。攻击者可能会根据失陷主机的具体情况,再决定是否需要深入下一阶段。
参考来源
Lab52