GoTitan 僵尸网络针对 Apache ActiveMQ 的持续利用分析
2023-12-4 17:32:0 Author: paper.seebug.org(查看原文) 阅读量:41 收藏

原文链接:GoTitan Botnet - Ongoing Exploitation on Apache ActiveMQ
译者:知道创宇404实验室翻译组

受影响的平台:Apache Active MQ 版本低于 5.15.16、5.16.7、5.17.6 和 5.18.3 的所有操作系统
受影响方:所有组织
影响:远程攻击者易获得受攻击系统的控制权
严重性级别:严重

去年10月,Apache发布了一个关于CVE-2023-46604漏洞的报告,该漏洞涉及Apache中不可信数据的反序列化。11月2日,网络安全和基础设施安全局(CISA)将CVE-2023-46604添加到其已知的受攻击列表KEV目录中,表明此漏洞的高风险和影响。有安全研究团队也发布了一个关于CVE-2023-46604的威胁情报报告,以此来提供了更多详细信息和应对建议。

CVE-2023-46604的技术细节和概念验证(PoC)代码已公开可用,而这会使攻击者更容易利用此漏洞。近期,有安全团队检测到许多黑客利用CVE-2023-46604漏洞传播各种恶意软件。我们的分析了一个新发现的基于Golang的僵尸网络GoTitan和一个名为“PrCtrl Rat”的.net程序,该程序配备了远程控制功能。此外,还发现了其他众所周知的恶意软件和工具。最初是作为高级渗透测试工具和红队框架而开发的Sliver支持各种回调协议,包括DNS、TCP和HTTPS,简化了出口流程。Kinsing巩固了其在加密挖矿操作中的地位,展示了其快速利用新发现的漏洞的能力。

本文将详细介绍这种攻击,并深入分析与最近这些攻击相关的恶意软件。

利用过程

攻击者通过OpenWire协议发起与ActiveMQ的连接。通过传输一个数据包,攻击者触发系统在其控制下会解组一个类。此行为使易受攻击的服务器从指定的远程URL获取和加载类配置XML文件,需要预先存在外部托管的特定XML文件。

已知的攻击利用了ClassPathXmlApplicationContext通过HTTP从网络位置加载恶意XML应用程序配置文件。图1显示了捕获的攻击流量。恶意XML文件定义了受compromise机器上执行的任意代码,攻击者可以设置类似于“cmd”或“bash”等参数,在远程易受攻击的服务器上执行代码。

在接下来的章节中,将解释恶意软件的工作原理以及它对被感染系统的影响。

Figure 1: Attacking traffic for CVE-2023-46604

攻击CVE的流量-2023-46604

Figure 2: Malicious XML files

恶意的XML文件

GoTitan

Figure 3: GoTitan's XML file

GoTitan的XML文件

GoTitan是用Go编程语言编写的,可以从恶意URL “hxxp://91.92.242.14/main-linux-amd64s” 下载。攻击者只需提供x64架构的二进制文件,恶意软件在运行前会执行一些检查。它还创建一个名为“c.log”的文件,记录执行时间和程序状态。从下图来看,文件似乎是开发人员的调试日志,这表明GoTitan仍处于早期开发阶段。

Figure 4: Save the log file

保存日志文件

它以“/”的形式复制自己,mod”通过在cron中注册来建立循环执行。然后获取C2 IP地址,并收集关于受损端点的重要信息(包括体系结构、内存和CPU的详细信息)。将收集到的所有数据使用“<==>”作为分隔符编译,并将收集到的信息传输到C2服务器,C2消息以硬编码字符串“Titan<==>”开头。

Figure 5: Construct C2 message

构建 C2(命令与控制)消息

Figure 6: C2 traffic session for GoTitan

GoTitan针对C2的流量会话

GoTitan通过发送\xFE\xFE等待进一步的指令来与其C2服务器通信。当它收到一个命令时,它会将它传递给一个名为handle_socket_func2的函数,该函数确定一种攻击方法。GoTitan支持十种不同的发起分布式拒绝服务(DDoS)攻击的方法:UDP、UDP HEX、TCP、TLS、RAW、HTTP GET、HTTP POST、HTTP HEAD和HTTP PUT。

GoTitan DDoS

Sliver

Figure 7: Sliver's XML file

silver的XML文件

Sliver是一个用Go语言开发的开源渗透测试工具,可在GitHub上获得,由于其适应渗透测试每个阶段的不同特性,黑客在使用时可能会滥用该工具。黑客可以利用Sliver来危害和控制跨各种平台和架构的多个目标。该工具能够生成旨在躲避检测的定制植入,允许在受感染的系统上执行命令、文件上传和下载、屏幕截图等。

当通过HTTP请求与C2服务器“91[.]92[.]240[.]41”通信时,Sliver根据URI中的参数动态选择C2消息的解码器。此外,Sliver支持各种编码器,包括Base32、Base58、Base64、英制编码器、Gzip、Hex和PNG。HTTP协议中编码的C2通信如图8所示。

Figure 8: C2 session for Sliver

Sliver的C2会话

PrCtrl Rat

Figure 9: PrCtrl Rat’s XML file

PrCtrl Rat的XML文件

攻击者从“hxxp://199[.]231[.]186[.]249:8000/unifo.dat "获得并将其存储为" svc_veeam.exe "。文件'unifo.dat'是一个最初被标记为“prcli.exe”的.NET框架程序,创建于8月,并且仍然通过CVE-2023-46604进行传播。下图显示了PDB路径和详细信息。

Figure 10: Information for uninfo.dat

uninfo.dat的信息

为了持久性,它将当前进程作为“Security Service”添加到注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run中。

GoTitan cmdc

然后,它开始连接到C2服务器"173[.]214[.]167[.]155。一旦从远程服务器接收到命令,它会检查长度是否为4。如果没有,它将退出程序。它支持五个命令:

  • cmdc:使用特定命令运行cmd.exe,并将结果返回给服务器。

GoTitan file

  • 文件:获取目标系统上的文件系统信息,如驱动器或目录以及文件。

GoTitan file

  • cmdc:使用特定命令运行cmd.exe,并将结果返回给服务器。
  • upld:上传文件。
  • dnld:下载文件。
  • ping:Heartbeat。

截至目前,我们尚未收到服务器的任何消息,而分发此工具的动机仍然不清楚。但是,一旦它渗入用户的环境,远程服务器就会控制系统。

Kinsing

Figure 11: Kinsing's XML file

Kinsing的XML文件

Kinsing从“194[.]38[.]22[.]53/acb.sh”获取bash脚本,用于以下目的:

  • 系统配置:修改系统参数,如禁用防火墙、清除iptables规则和关闭NMI看门狗。
  • 依赖性检查:验证curl或wget的存在,并在缺失时进行安装。
  • 进程清理:终止与特定可执行文件名称和竞争性挖矿程序相关的进程。

GoTitan bash script

  • 二进制下载和验证:下载主二进制文件和共享目标文件,然后使用MD5校验和验证下载的二进制文件的完整性。

GoTitan Binary Download and Verification

  • 系统配置:为下载的二进制文件创建系统服务配置文件。
  • Cronjob设置:从crontab中删除与已知恶意活动相关的特定条目。添加新的定时任务,定期执行从远程服务器hxxp://185[.]122[.]204[.]197/acb.sh 取的命令。
  • 清除:清除命令历史记录并删除bash历史记录文件。

GoTitan cleanup

Ddostf

Figure 12: Ddostf's XML file

Ddostf的XML文件

Ddostf使用的批处理脚本从“hxxp://42[.]121[.]111[.]112:81/xml.sh” 获取。"它使用"+o "配置历史日志,以防止记录当前会话。然后安装curl来下载额外的执行文件,并消除任何痕迹。

Figure 13: Batch script to deploying Ddostf

部署Ddostf的批处理脚本

可执行文件“tomcat”包含ddos.tfv8.ter.tf的Base64编码字符串。

Figure 14: Ddostf's binary data

Ddostf的二进制数据

它首先验证其是否具有 root 权限,并且该进程是否在设备上运行。然后,它确保通过执行以下命令将持续存在于设备上。

Figure 15: Ddostf's setting

Ddostf的设置

Ddostf包括一个硬编码的字符串TF-Linux kernel……,它根据进程是否以root权限运行,在其C2消息中附加SYN-UDP-

Figure 16: Send C2 message

发送C2消息

Ddostf整合了13种攻击方法:SYN_Flood、WZSYN_Flood、ICMP_Flood、GET_Flood、GETFT_Flood、HEAD_Flood、POST_Flood、xzcc_Flood、TCP_Flood、WZTCP_Flood、ack_Flood、WZUDP_Flood和UDP_Flood。此外,它还定义了一个名为DNS_Flood的函数,该函数并未包含在当前的 switch case 中,可能会为了未来的增强而设置的。

Figure 17: DNS flood function

DNS泛洪功能

结论

尽管一个多月前发布了CVE-2023-46604的补丁,但黑客仍在利用该漏洞在易受影响的服务器上传播恶意软件。本文介绍了新发现的威胁,包括基于 Golang 的僵尸网络 GoTitan 和 .NET 程序“PrCtrl Rat”,这些都是由于这种漏洞利用而出现的。此外,用户应该对 Sliver、Kinsing 和 Ddostf 的持续利用保持警惕。优先考虑系统更新和修补,并定期监视安全公告,以有效减轻漏洞利用的风险。

IOCs

IP列表

185[.]122[.]204[.]197
194[.]38[.]22[.]53
42[.]121[.]111[.]112
91[.]92[.]242[.]14
199[.]231[.]186[.]249
173[.]214[.]167[.]155
91[.]92[.]240[.]41

Files

f75cb3e540b96cd54a966c512c854c832807e354772ae1a326b758394b01b607
dbf8ba47a5973c86fef32c2d696b09e1930a8384087c62ace1aa5c4084ee1a3f
1a3d9960a1685707f8cc2bc447c88f5c3278454fbf0a35a7959717ad835348cd
d8f55bbbcc20e81e46b9bf78f93b73f002c76a8fcdb4dc2ae21b8609445c14f9
0cc60a0c480e4d898fa77ab501bbd2afaf3f5fb89a2917a31e7f5fdaa6c3879c
ed09f95f4b4b482207bb300ff6ec15ed8ca5fdde97af02fa9fbe01adaaf7673b
bfce7938591dd9fa3e1368d7eb86fc7f11e935349437fc11de4f124bbbc16dee
f5a36570506bfaff60b684cd26dde3a64a3db4eaa9da78a1434cfd4b390ef3d5
5acf5ce55678519cd65e001d3f600fa1de288f1cd3e203b4c9439979f4b67175
923f2be3d55fcdab7da5cb2be3c16dfcc1582b83d1e4a831236445a52ca81878
b90abde8f449bbe6bec9495386fab1833c0654f83c7b2f5ebcf5b14743c30600


Paper 本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/3083/



文章来源: https://paper.seebug.org/3083/
如有侵权请联系:admin#unsafe.sh