
Aiuta i difensori a individuare le proprie configurazioni WSUS a seguito di CVE-2025-59287
Scopri le configurazioni dei server WSUS negli oggetti Criteri di gruppo (GPO) — incluse le nascoste Preferenze Criteri di gruppo (GPP).
Find-WSUS è uno script PowerShell progettato per professionisti della sicurezza e amministratori di sistema per identificare tutti gli URL dei server WSUS (Windows Server Update Services) configurati tramite GPO. Rileva le configurazioni sia da:
I server WSUS sono risorse infrastrutturali di alto valore. Se compromessi, un attaccante può distribuire “aggiornamenti” dannosi a tutti i sistemi uniti al dominio, portando a compromissione totale del dominio.
🧨 Vulnerabilità come CVE-2025-59287 dimostrano che un singolo exploit WSUS può garantire agli attaccanti il controllo dell'intero dominio.
Find-WSUS aiuta le organizzazioni a individuare ogni origine di configurazione WSUS prima che lo facciano gli attaccanti.
La maggior parte delle scansioni controlla solo:
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Tuttavia, molte organizzazioni distribuiscono la configurazione WSUS tramite Preferenze Criteri di gruppo (GPP), che modificano direttamente le chiavi di registro. Queste impostazioni non compaiono nei report GPMC standard.
✅ Find-WSUS rileva sia le configurazioni standard sia quelle basate su GPP, offrendoti una visibilità completa sul tuo ambiente.
Carica lo script nella sessione PowerShell:
. .\Find-WSUS.ps1
Dopo l'importazione, la funzione Find-WSUS diventa disponibile.
Find-WSUS | Format-Table -AutoSize
Visualizza messaggi di avanzamento dettagliati durante la scansione:
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 in un runspace STA per evitare errori di threading COM.
Cerca i valori WUServer e WUStatusServer in:
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Get-GPOReport -ReportType Xml.q2:Registry) e di fallback (*[local-name()='Registry'])....\Windows\WindowsUpdate.Questo rispecchia il layout e le intestazioni reali di
Format-Table -AutoSizediFind-WSUS, ma con host/URL e nomi/GUID GPO di esempio realistici.
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: Negli ambienti reali vedrai spesso SSL su
:8531e HTTP legacy su:8530. Gli hostname sopra sono esempi; sostituiscili con il tuo inventario effettivo.
[!WARNING] Questo script è uno strumento di individuazione, non un sistema di inventario completo.
Trova solo i server WSUS definiti tramite Criteri di gruppo. Non rileva:
Find-WSUS in tutti i domini della tua foresta.WSUSService.Sviluppato da ingegneri della sicurezza per esporre le configurazioni WSUS nascoste e migliorare la visibilità dell'infrastruttura di patch.
📘 Contributi benvenuti! Invia pull request o segnala problemi per migliorare la compatibilità o aggiungere nuovi metodi di individuazione.
| Requisito | Descrizione |
|---|
| PowerShell a 64 bit | Necessario per la compatibilità COM. Lo script termina automaticamente se eseguito in PowerShell a 32 bit. |
| RSAT: Strumenti di gestione criteri di gruppo | Richiesto per il modulo GroupPolicy.Windows 10/11: Impostazioni → Funzionalità facoltative → Aggiungi una funzionalità → RSAT: Strumenti di gestione criteri di gruppoWindows Server: Server Manager → Aggiungi ruoli e funzionalità → Funzionalità → Gestione Criteri di gruppo |
| Permessi | Accesso in lettura a tutti i GPO nel dominio sottoposto a scansione. |
| Facoltativo: diritti di amministratore | Alcune query sui criteri di registro potrebbero fallire senza elevazione dei privilegi. |
| Parametro | Descrizione | Predefinito |
|---|
-Name | Filtra i GPO per nome visualizzato usando caratteri jolly. Usa -All quando *. | * (tutti i GPO) |
-Domain | Specifica un dominio da interrogare (utile in foreste multi-dominio). | Dominio dell'utente corrente |
-Verbose | Mostra l'avanzamento dettagliato della scansione e i risultati. | Disattivato |