
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.
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
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.
GPOName Scope Key ValueName Value Hostname GPOGuid
------- ----- --- --------- ----- -------- -------
Default Domain Policy Policy (Computer) HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer https://wsus.corp.contoso.com:8531 wsus.corp.contoso.com 31b2f340-016d-11d2-945f-00c04fb984f9
Default Domain Policy Policy (Computer) HKLM\Software\Policies\Microsoft\Windows\Windows\Update WUStatusServer https://wsus.corp.contoso.com:8531 wsus.corp.contoso.com 31b2f340-016d-11d2-945f-00c04fb984f9
Corporate WSUS Baseline Policy (Computer) HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUServer http://wsus01.contoso.com:8530 wsus01.contoso.com 57f2e3da-33c5-4a35-abce-c12a0b7f9823
Corporate WSUS Baseline Policy (Computer) HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate WUStatusServer https://wsus01.contoso.com:8531 wsus01.contoso.com 57f2e3da-33c5-4a35-abce-c12a0b7f9823
Workstations - Windows Update (GPP) Preference (Registry) HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate WUStatusServer https://wsus-west.contoso.com:8531 wsus-west.contoso.com a1cde8b2-7f45-43f2-9db4-9c1e93a0e5c1
Nota: En entornos reales, a menudo verá SSL en
:8531y HTTP heredado en:8530. Los nombres de host anteriores son ejemplos; reemplácelos con su inventario real.
[!WARNING] Este script es una herramienta de descubrimiento, no un sistema de inventario completo.
Solo encuentra servidores WSUS definidos mediante directiva de grupo. No detecta:
Find-WSUS en todos los dominios de su bosque.WSUSService.Desarrollado por ingenieros de seguridad para exponer configuraciones ocultas de WSUS y mejorar la visibilidad de la infraestructura de parches.
📘 ¡Las contribuciones son bienvenidas! Envíe pull requests o issues para mejorar la compatibilidad o agregar nuevos métodos de descubrimiento.
| 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. |
| 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 |