
Ajuda defensores a encontrarem suas configurações de WSUS na esteira do CVE-2025-59287
Descubra configurações de servidor WSUS em Objetos de Política de Grupo (GPOs) — incluindo Preferências de Política de Grupo (GPP) ocultas.
O Find-WSUS é um script PowerShell projetado para profissionais de segurança e administradores de sistemas identificar todas as URLs de servidor WSUS (Windows Server Update Services) configuradas por meio de GPOs. Ele detecta configurações de ambos:
Servidores WSUS são ativos de infraestrutura de alto valor. Se comprometidos, um invasor pode implantar “atualizações” maliciosas em todos os sistemas ingressados no domínio, levando ao comprometimento total do domínio.
🧨 Vulnerabilidades como CVE-2025-59287 demonstram que uma única exploração de WSUS pode conceder aos invasores controle total sobre o domínio.
O Find-WSUS ajuda organizações a localizar todas as fontes de configuração WSUS antes que os invasores o façam.
A maioria das verificações apenas verifica:
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
No entanto, muitas organizações implantam a configuração do WSUS por meio de Preferências de Política de Grupo (GPP), que modificam diretamente as chaves do registro. Essas configurações não aparecem nos relatórios padrão do GPMC.
✅ O Find-WSUS detecta configurações padrão e baseadas em GPP, dando a você visibilidade completa do seu ambiente.
Carregue o script na sua sessão do PowerShell:
. .\Find-WSUS.ps1
Após importar, a função Find-WSUS fica disponível.
Find-WSUS | Format-Table -AutoSize
Veja mensagens detalhadas de progresso durante a verificação:
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 em um runspace STA para evitar erros de threading COM.
Procura valores WUServer e WUStatusServer em:
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Get-GPOReport -ReportType Xml.q2:Registry) e de fallback (*[local-name()='Registry'])....\Windows\WindowsUpdate.Isto espelha o layout e os cabeçalhos reais do
Format-Table -AutoSizedeFind-WSUS, mas com exemplos realistas de hosts/URLs e nomes/GUIDs de GPOs.
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: Em ambientes reais, você frequentemente verá SSL na porta
:8531e HTTP legado na:8530. Os nomes de host acima são exemplos; substitua pelo seu inventário real.
[!WARNING] Este script é uma ferramenta de descoberta, não um sistema completo de inventário.
Ele apenas encontra servidores WSUS definidos via Política de Grupo. Ele não detecta:
Find-WSUS em todos os domínios da sua floresta.WSUSService.Desenvolvido por engenheiros de segurança para expor configurações WSUS ocultas e melhorar a visibilidade da infraestrutura de patches.
📘 Contribuições são bem-vindas! Envie pull requests ou issues para melhorar a compatibilidade ou adicionar novos métodos de descoberta.
| Requisito | Descrição |
|---|
| PowerShell de 64 bits | Necessário para compatibilidade COM. O script é encerrado automaticamente se executado no PowerShell de 32 bits. |
| RSAT: Ferramentas de Gerenciamento de Política de Grupo | Necessário para o 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 |
| Permissões | Acesso de leitura a todas as GPOs no domínio verificado. |
| Opcional: Direitos de administrador | Algumas consultas de política de registro podem falhar sem elevação. |
| Parâmetro | Descrição | Padrão |
|---|
-Name | Filtra GPOs pelo nome de exibição usando curingas. Usa -All quando *. | * (todas as GPOs) |
-Domain | Especifica um domínio para consultar (útil em florestas com vários domínios). | Domínio do usuário atual |
-Verbose | Exibe progresso detalhado da verificação e descobertas. | Desativado |