
Pwsh-Tool zur Prüfung der AD-Gruppenaufzählung
Erkennen Sie Active-Directory-Aufklärung, bevor daraus ein Sicherheitsvorfall wird.
QuietPhase ist ein PowerShell-Tool, das prüft, ob Ihre Domäne so konfiguriert ist, dass Gruppenaufzählung erkannt wird – die leise Aufklärungsphase, in der ein Angreifer ermittelt, wer über privilegierten Zugriff verfügt. Es überprüft die Überwachungsrichtlinie der Domänencontroller, meldet, welche privilegierten und benutzerdefinierten Gruppen auf Mitgliedschafts-Lesezugriffe überwacht werden, und schlägt die Korrekturen vor (oder wendet sie auf Wunsch an).
Die meisten Organisationen lösen einen Alarm aus, wenn jemand eine privilegierte Gruppe ändert. Nur sehr wenige bemerken es, wenn jemand eine solche Gruppe liest. QuietPhase hilft, diese Lücke zu schließen, und erleichtert die Einrichtung von Honeypot-Gruppen, die Aufzählung in einen Alarm mit hoher Konfidenz verwandeln.
Hintergrundlektüre: The Quiet Phase: Why Active Directory Group Enumeration Deserves Your Attention
adminCount=1) werden durch SDProp zurückgesetzt, daher wird auch AdminSDHolder geprüft und korrigiert.Out-ConsoleGridView). Verwenden Sie dies für Honeypot-Gruppen oder alles andere, was Sie überwachen möchten.-Apply vorgenommen, und jede einzelne wird bestätigt. -WhatIf wird unterstützt.-FixScriptPath schreibt alle vorgeschlagenen Änderungen in eine überprüfbare .ps1-Datei, die sich für das Änderungsmanagement eignet.Ein Domänencontroller protokolliert ein Gruppenaufzählungsereignis nur, wenn beides zutrifft:
member durch Jeder oder Authentifizierte Benutzer überwacht.Wenn beides zutrifft, erzeugt jeder Mitgliedschafts-Lesezugriff Ereignis 4662 auf dem DC, der die Abfrage beantwortet hat. Wichtige Felder:
| Feld | Wert | Bedeutung |
|---|---|---|
ObjectName | %{<objectGUID of the group>} | Welche Gruppe gelesen wurde |
Properties | {bf9679c0-0de6-11d0-a285-00aa003049e2} | Das Attribut member |
Properties | {bc0ac240-79a9-11d0-9020-00c04fc2d4cf} | Mitgliedschafts-Eigenschaftssatz (oft daneben) |
AccessMask | 0x10 | Eigenschaft lesen |
SubjectUserName / SubjectUserSid | Konto | Wer den Lesezugriff durchgeführt hat |
SubjectLogonId | z. B. 0x3A7F21 | Verknüpfung mit Ereignis 4624 (TargetLogonId) für Quell-IP und Arbeitsstation |
Hinweis: SAMR-basierte Tools wie
net group /domainlösen dieses 4662-Signal nicht aus. Decken Sie diesen Pfad mit Prozess-Erstellungsprotokollierung (Ereignis 4688 / Sysmon / EDR) oder Netzwerkerkennungen wie Microsoft Defender for Identity ab.
Out-ConsoleGridView, einen Teil des Moduls Microsoft.PowerShell.ConsoleHost, das eine Abhängigkeit von Microsoft.PowerShell.ConsoleGuiTools ist. Installation im Bereich 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
| Parameter | Standard | Beschreibung |
|---|---|---|
-Server | Ermittelter DC | DC oder Domäne, die als Ziel verwendet werden soll |
-AllDomainControllers | Aus | Überprüft die Überwachungsrichtlinie auf jedem DC, nicht nur auf dem Ziel |
-AuditPrincipal | Everyone | Prinzipal, das für vorgeschlagene Regeln verwendet wird: Everyone oder AuthenticatedUsers. Beides gilt bei der Prüfung als konfiguriert. |
-Apply | Aus | Wendet vorgeschlagene Änderungen an, mit einer Bestätigungsaufforderung für jede einzelne |
-SkipCustomGroups | Aus | Überspringt Phase 3 (Auswahl benutzerdefinierter Gruppen) |
-FixScriptPath | Keine | Exportiert alle vorgeschlagenen Behebungsmaßnahmen in eine .ps1-Datei |
-WhatIf / -Confirm | Standard | Zeigt Änderungen in der Vorschau an oder steuert Aufforderungen bei Verwendung mit -Apply |
auditpol-Befehle zur Behebung aus und beendet dann den Vorgang. Gruppen-SACLs sind nutzlos, bis dies eingerichtet ist.Wenn Änderungen erforderlich sind, endet der Lauf mit einem NEXT STEPS-Block mit sofort einsetzbaren Befehlen für -Apply, -WhatIf, -FixScriptPath oder manuelle ADUC-Schritte.
==============================================================================
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.