
Aide les défenseurs à trouver leurs configurations WSUS à la suite de CVE-2025-59287
Découvrez les configurations de serveurs WSUS dans les objets de stratégie de groupe (GPO) — y compris les préférences de stratégie de groupe (GPP) masquées.
Find-WSUS est un script PowerShell conçu pour les professionnels de la sécurité et les administrateurs système afin d’identifier toutes les URL de serveurs WSUS (Windows Server Update Services) configurées via des GPO. Il détecte les configurations provenant à la fois de :
Les serveurs WSUS sont des actifs d’infrastructure à forte valeur. S’ils sont compromis, un attaquant peut déployer de fausses « mises à jour » sur tous les systèmes joints au domaine, conduisant à une compromission totale du domaine.
🧨 Des vulnérabilités comme CVE-2025-59287 démontrent qu’une seule exploitation WSUS peut donner aux attaquants un contrôle total sur le domaine.
Find-WSUS aide les organisations à localiser toutes les sources de configuration WSUS avant les attaquants.
La plupart des analyses ne vérifient que :
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Cependant, de nombreuses organisations déploient la configuration WSUS via les Préférences de stratégie de groupe (GPP), qui modifient directement les clés de registre. Ces paramètres n’apparaissent pas dans les rapports GPMC standard.
✅ Find-WSUS détecte à la fois les configurations standard et celles basées sur les GPP, vous offrant une visibilité complète sur votre environnement.
| Exigence | Description |
|---|---|
| PowerShell 64 bits | Requis pour la compatibilité COM. Le script se termine automatiquement s’il est exécuté dans PowerShell 32 bits. |
| RSAT : Outils d’administration de stratégie de groupe | Requis pour le module GroupPolicy.Windows 10/11 : Paramètres → Fonctionnalités optionnelles → Ajouter une fonctionnalité → RSAT : Outils d’administration de stratégie de groupeWindows Server : Gestionnaire de serveur → Ajouter des rôles et fonctionnalités → Fonctionnalités → Gestion de la stratégie de groupe |
| Autorisations | Accès en lecture à tous les GPO du domaine analysé. |
| Optionnel : droits d’administrateur | Certaines requêtes de stratégie de registre peuvent échouer sans élévation de privilèges. |
Chargez le script dans votre session PowerShell :
. .\Find-WSUS.ps1
Après l’importation, la fonction Find-WSUS devient disponible.
Find-WSUS | Format-Table -AutoSize
Affichez des messages de progression détaillés pendant l’analyse :
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
| Paramètre | Description | Défaut |
|---|---|---|
-Name | Filtre les GPO par nom d’affichage à l’aide de caractères génériques. Utilise -All avec *. | * (tous les GPO) |
-Domain | Spécifie un domaine à interroger (utile dans les forêts multi-domaines). | Domaine de l’utilisateur courant |
-Verbose | Affiche la progression détaillée de l’analyse et les résultats. | Désactivé |
Utilise Get-GPRegistryValue dans un runspace STA pour éviter les erreurs de threading COM.
Recherche les valeurs WUServer et WUStatusServer dans :
HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate
Get-GPOReport -ReportType Xml.q2:Registry) et les nœuds de secours (*[local-name()='Registry'])....\Windows\WindowsUpdate.Cela reflète la véritable disposition et les en-têtes de
Format-Table -AutoSizedeFind-WSUS, mais avec des exemples réalistes d’hôtes/URL et de noms/GUID de GPO.
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
Remarque : Dans les environnements réels, vous verrez souvent du SSL sur
:8531et du HTTP hérité sur:8530. Les noms d’hôtes ci-dessus sont des exemples ; remplacez-les par votre inventaire réel.
[!WARNING] Ce script est un outil de découverte, pas un système d’inventaire complet.
Il trouve uniquement les serveurs WSUS définis via une stratégie de groupe. Il ne détecte pas :
Find-WSUS sur tous les domaines de votre forêt.WSUSService.Développé par des ingénieurs sécurité pour exposer les configurations WSUS cachées et améliorer la visibilité de l’infrastructure de correctifs.
📘 Les contributions sont les bienvenues ! Soumettez des pull requests ou des issues pour améliorer la compatibilité ou ajouter de nouvelles méthodes de découverte.