OpenWire-CVE-2023-46604-调查
OpenWire 实验室
在我担任二级安全运营中心(SOC)分析师期间,我收到了一名一级分析师上报的事件,涉及一台可公开访问的服务器,该服务器被观察到与多个可疑的外部 IP 地址进行通信。
对此,我启动了标准的事件响应(IR)流程,包括将该受影响服务器与网络隔离,以防止横向移动和潜在的数据外泄。随后,我从 NSM 平台获取了一份数据包捕获(PCAP)文件以作进一步调查。
我的目标是分析网络流量,并识别任何恶意活动指标。
- 识别第一个可疑的外部 IP 地址
在分析网络流量并审查与该服务器建立的连接后,我识别出与 OpenWire 协议相关的数据包。进一步检查这些通信后,发现了一个涉及攻击的可疑外部 IP 地址:
146.190.21.92
- 识别攻击期间使用的端口
在检查 OpenWire 流量时,我发现目标服务是 Apache ActiveMQ,这是一个开源消息代理,用于实现分布式应用之间的通信。
进一步分析显示,攻击者通过以下端口进行通信:
61616
- 识别第二个命令与控制服务器
通过分析 HTTP 流量并在以下位置审查文件:
导出对象 → HTTP 对象列表
我识别出与攻击者基础设施相关的第二个外部 IP 地址:
128.199.52.72
- 识别被入侵的服务
对 OpenWire 通信的分析确认,被入侵的服务是:
Apache ActiveMQ
该服务是此次攻击的主要目标,后来被确认存在远程代码执行漏洞。
- 识别反向 Shell 载荷
攻击者通常会在受入侵系统上留下活动痕迹。通过分析入侵期间的 HTTP 流量和执行的命令,我识别出部署在服务器上的反向 shell 文件:
docker
- 分析漏洞利用链
在调查过程中,我观察到从受入侵服务器发出的可疑出站流量,其使用的 User-Agent 为:
java/11.0.21
该服务器向可疑 IP 地址 146.190.21.92 发起连接,以获取一个远程 XML 配置文件,文件名为:
/invoice.xml
使用 Wireshark 并通过以下过滤条件筛选流量:
明文
ip.addr == 146.190.21.92
我识别出相关的通信流,并提取了恶意载荷文件:
./invoice
对载荷的进一步检查显示,攻击者利用了 Apache ActiveMQ 中的一个远程代码执行(RCE)漏洞。
该 XML 文件包含恶意指令,强制 Java 运行时环境实例化一个能够执行操作系统命令的特定 Java 类。
识别出的 Java 类为:
java.lang.ProcessBuilder
- 识别相关 CVE
根据观察到的攻击行为,包括通过 OpenWire 通信利用 Apache ActiveMQ、远程 XML 获取、对象实例化,以及使用 java.lang.ProcessBuilder 执行命令,该活动被归于以下漏洞:
CVE-2023-46604
该漏洞允许攻击者通过利用 Apache ActiveMQ 中的不安全对象实例化机制实现远程代码执行(RCE)。
入侵指标(IOC)
IP 地址
146.190.21.92
128.199.52.72
网络端口
61616
文件
docker
invoice.xml
载荷
invoice
漏洞
CVE-2023-46604