
Outil Pwsh pour l'audit de l'énumération des groupes AD
Détectez la reconnaissance Active Directory avant qu'elle ne devienne une violation.
QuietPhase est un outil PowerShell qui vérifie si votre domaine est configuré pour détecter l'énumération de groupes, la phase de reconnaissance discrète où un attaquant cartographie qui détient un accès privilégié. Il vérifie la politique d'audit des contrôleurs de domaine, signale quels groupes privilégiés et personnalisés sont audités pour les lectures d'appartenance, et propose (ou, si vous le choisissez, applique) les correctifs.
La plupart des organisations alertent lorsqu'une personne modifie un groupe privilégié. Très peu remarquent lorsqu'une personne en lit un. QuietPhase aide à combler cet écart et facilite la mise en place de groupes honeypot qui transforment l'énumération en alerte à haute confiance.
Lecture de contexte : The Quiet Phase: Why Active Directory Group Enumeration Deserves Your Attention
adminCount=1) sont réinitialisés par SDProp, donc AdminSDHolder est également vérifié et corrigé.Out-ConsoleGridView). Utilisez-le pour les groupes honeypot ou tout autre élément que vous souhaitez surveiller.-Apply, et chacune est confirmée. -WhatIf est pris en charge.-FixScriptPath écrit toutes les modifications proposées dans un fichier .ps1 vérifiable, adapté au contrôle des changements.Un contrôleur de domaine journalise un événement d'énumération de groupe uniquement lorsque ces deux conditions sont réunies :
member par Everyone ou Authenticated Users.Lorsque les deux sont vraies, chaque lecture d'appartenance génère l'événement 4662 sur le DC qui a répondu à la requête. Champs clés :
| Champ | Valeur | Signification |
|---|---|---|
ObjectName | %{<objectGUID of the group>} | Quel groupe a été lu |
Properties | {bf9679c0-0de6-11d0-a285-00aa003049e2} | L'attribut member |
Properties | {bc0ac240-79a9-11d0-9020-00c04fc2d4cf} | Ensemble de propriétés d'appartenance (souvent en parallèle) |
AccessMask | 0x10 | Read Property |
SubjectUserName / SubjectUserSid | Compte | Qui a effectué la lecture |
SubjectLogonId | ex. 0x3A7F21 | À joindre à l'événement 4624 (TargetLogonId) pour l'IP source et le poste de travail |
Remarque : les outils basés sur SAMR tels que
net group /domainne déclenchent pas ce signal 4662. Couvrez ce chemin avec la journalisation de création de processus (événement 4688 / Sysmon / EDR) ou des détections réseau telles que Microsoft Defender for Identity.
Out-ConsoleGridView, qui fait partie du module Microsoft.PowerShell.ConsoleHost, lui-même une dépendance de Microsoft.PowerShell.ConsoleGuiTools. Installé dans la portée CurrentUser.# Report only (default): check the discovered DC, privileged groups, then pick custom groups
.\QuietPhase.ps1
# Check audit policy on every DC in the domain
.\QuietPhase.ps1 -AllDomainControllers
# Export proposed fixes for review or change approval
.\QuietPhase.ps1 -AllDomainControllers -FixScriptPath .\QuietPhase-Fix.ps1
# Preview changes, then apply them (each change is confirmed)
.\QuietPhase.ps1 -Apply -WhatIf
.\QuietPhase.ps1 -Apply
# Propose rules for Authenticated Users instead of Everyone
.\QuietPhase.ps1 -Apply -AuditPrincipal AuthenticatedUsers
| Paramètre | Valeur par défaut | Description |
|---|---|---|
-Server | DC découvert | DC ou domaine ciblé |
-AllDomainControllers | Désactivé | Vérifier la stratégie d'audit sur chaque DC, pas seulement sur la cible |
-AuditPrincipal | Everyone | Principal utilisé pour les règles proposées : Everyone ou AuthenticatedUsers. L'un ou l'autre est considéré comme configuré lors de la vérification. |
-Apply | Désactivé | Appliquer les modifications proposées, avec une invite de confirmation pour chacune |
-SkipCustomGroups | Désactivé | Ignorer la phase 3 (sélection de groupes personnalisés) |
-FixScriptPath | Aucun | Exporter toute la remédiation proposée dans un fichier .ps1 |
-WhatIf / -Confirm | Standard | Prévisualiser les modifications ou contrôler les invites lorsqu'ils sont utilisés avec -Apply |
auditpol pour le corriger, puis s'arrête. Les SACL de groupe sont inutiles tant que ce point n'est pas en place.Lorsque quelque chose nécessite des modifications, l'exécution se termine par un bloc NEXT STEPS de commandes prêtes à coller pour -Apply, -WhatIf, -FixScriptPath, ou des étapes manuelles dans ADUC.
==============================================================================
PHASE 1 - Domain controller audit policy
==============================================================================
Domain: contoso.com Target DC: DC01.contoso.com DCs checked: 1
DC01.contoso.com
Audit Directory Service Access: Success
Audit Security Group Management: Success
Force audit policy subcategory settings: enabled (or default)
PHASE 1 PASSED: Directory Service Access auditing is enabled.
==============================================================================
PHASE 2 - Well-known privileged groups
==============================================================================