6

GoTitan 僵尸网络针对 Apache ActiveMQ 的持续利用分析

 9 months ago
source link: https://paper.seebug.org/3083/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

GoTitan 僵尸网络针对 Apache ActiveMQ 的持续利用分析

2023年12月04日2023年12月04日威胁情报

原文链接: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 的持续利用保持警惕。优先考虑系统更新和修补,并定期监视安全公告,以有效减轻漏洞利用的风险。

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/


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK