
Ayuda a los defensores a encontrar sus configuraciones de WSUS a raíz de CVE-2025-59287.
Descubra configuraciones de servidores WSUS en todos los Objetos de directiva de grupo (GPO) — incluidas las Preferencias de directiva de grupo (GPP) ocultas.
Find-WSUS es un script de PowerShell diseñado para profesionales de la seguridad y administradores de sistemas con el fin de identificar todas las URLs de servidores WSUS (Windows Server Update Services) configuradas mediante GPO. Detecta configuraciones de ambos tipos:
Los servidores WSUS son activos de infraestructura de alto valor. Si se ven comprometidos, un atacante puede implementar «actualizaciones» maliciosas en todos los sistemas unidos al dominio, lo que conduce a un compromiso total del dominio.
🧨 Vulnerabilidades como CVE-2025-59287 demuestran que una sola explotación de WSUS puede otorgar a los atacantes control total sobre el dominio.
Find-WSUS ayuda a las organizaciones a localizar cada fuente de configuración de WSUS antes de que lo hagan los atacantes.
La mayoría de los escaneos solo comprueban:
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Sin embargo, muchas organizaciones implementan la configuración de WSUS mediante Preferencias de directiva de grupo (GPP), que modifican directamente las claves del registro. Estos ajustes no aparecen en los informes estándar de GPMC.
✅ Find-WSUS detecta tanto las configuraciones estándar como las basadas en GPP, lo que le ofrece visibilidad completa de su entorno.
| Requisito | Descripción |
|---|---|
| PowerShell de 64 bits | Necesario para la compatibilidad COM. El script se cierra automáticamente si se ejecuta en PowerShell de 32 bits. |
| RSAT: Herramientas de administración de directiva de grupo | Necesario para el módulo GroupPolicy.Windows 10/11: Settings → Optional Features → Add a Feature → RSAT: Group Policy Management ToolsWindows Server: Server Manager → Add Roles and Features → Features → Group Policy Management |
| Permisos | Acceso de lectura a todos los GPO del dominio que se está escaneando. |
| Opcional: Derechos de administrador | Algunas consultas de directivas del registro pueden fallar sin elevación. |
Cargue el script en su sesión de PowerShell:
. .\Find-WSUS.ps1
Después de importarlo, la función Find-WSUS queda disponible.
Find-WSUS | Format-Table -AutoSize
Vea mensajes de progreso detallados durante el escaneo:
Find-WSUS -Verbose
Find-WSUS -Domain "child.mydomain.com" | Format-Table -AutoSize
Find-WSUS -Name "*Server*" -Verbose
$results = Find-WSUS -Domain "mydomain.com"
$results.Hostname | Where-Object { $_ } | Sort-Object -Unique
| Parámetro | Descripción | Predeterminado |
|---|---|---|
-Name | Filtra los GPO por nombre para mostrar mediante comodines. Usa -All cuando es *. | * (todos los GPO) |
-Domain | Especifica un dominio para consultar (útil en bosques multidominio). | Dominio del usuario actual |
-Verbose | Muestra el progreso detallado del escaneo y los hallazgos. | Desactivado |
Usa Get-GPRegistryValue en un runspace STA para evitar errores de subprocesamiento COM.
Busca los valores WUServer y WUStatusServer en:
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Get-GPOReport -ReportType Xml.q2:Registry) y de respaldo (*[local-name()='Registry'])....\Windows\WindowsUpdate.Esto refleja el diseño y los encabezados reales de
Format-Table -AutoSizedeFind-WSUS, pero con hosts/URLs y nombres/GUID de GPO de ejemplo realistas.
PS C:\Users\Administrator\Documents> Find-WSUS | Format-Table -AutoSize
[OK] Environment check passed: 64-bit PowerShell, GroupPolicy module loaded, GPOs accessible.