
Strumento Pwsh per l'auditing dell'enumerazione dei gruppi AD
Rileva la ricognizione di Active Directory prima che diventi una violazione.
QuietPhase è uno strumento PowerShell che verifica se il tuo dominio è configurato per rilevare l'enumerazione dei gruppi, la silenziosa fase di ricognizione in cui un attaccante mappa chi detiene l'accesso privilegiato. Verifica la policy di audit dei domain controller, segnala quali gruppi privilegiati e personalizzati sono sottoposti ad audit per le letture delle appartenenze e propone (o, se lo scegli, applica) le correzioni.
La maggior parte delle organizzazioni genera avvisi quando qualcuno modifica un gruppo privilegiato. Pochissime se ne accorgono quando qualcuno ne legge uno. QuietPhase aiuta a colmare questa lacuna e rende semplice configurare gruppi honeypot che trasformano l'enumerazione in un avviso ad alta affidabilità.
Letture di approfondimento: The Quiet Phase: Why Active Directory Group Enumeration Deserves Your Attention
adminCount=1) vengono reimpostati da SDProp, quindi anche AdminSDHolder viene verificato e corretto.Out-ConsoleGridView). Usalo per gruppi honeypot o qualsiasi altra cosa tu voglia monitorare.-Apply, e ciascuna viene confermata. -WhatIf è supportato.-FixScriptPath scrive tutte le modifiche proposte in un file .ps1 verificabile, adatto al change control.Un domain controller registra un evento di enumerazione dei gruppi solo quando entrambe queste condizioni sono soddisfatte:
member da parte di Everyone o Authenticated Users.Quando entrambe sono vere, ogni lettura delle appartenenze produce un Evento 4662 sul DC che ha risposto alla query. Campi chiave:
| Campo | Valore | Significato |
|---|---|---|
ObjectName | %{<objectGUID of the group>} | Quale gruppo è stato letto |
Properties | {bf9679c0-0de6-11d0-a285-00aa003049e2} | L'attributo member |
Properties | {bc0ac240-79a9-11d0-9020-00c04fc2d4cf} | Set di proprietà dell'appartenenza (spesso in parallelo) |
AccessMask | 0x10 | Read Property |
SubjectUserName / SubjectUserSid | Account | Chi ha eseguito la lettura |
SubjectLogonId | es. 0x3A7F21 | Da correlare con l'Evento 4624 (TargetLogonId) per IP di origine e workstation |
Nota: gli strumenti basati su SAMR come
net group /domainnon attivano questo segnale 4662. Copri quel percorso con la registrazione della creazione di processi (Evento 4688 / Sysmon / EDR) o con rilevamenti di rete come Microsoft Defender for Identity.
Out-ConsoleGridView, parte del modulo Microsoft.PowerShell.ConsoleHost, che è una dipendenza di Microsoft.PowerShell.ConsoleGuiTools. Installato nell'ambito 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
| Parametro | Predefinito | Descrizione |
|---|---|---|
-Server | DC rilevato | DC o dominio da targetizzare |
-AllDomainControllers | Disattivato | Verifica i criteri di controllo su ogni DC, non solo sul target |
-AuditPrincipal | Everyone | Principal usato per le regole proposte: Everyone o AuthenticatedUsers. Entrambi contano come configurati durante la verifica. |
-Apply | Disattivato | Applica le modifiche proposte, con una richiesta di conferma per ciascuna |
-SkipCustomGroups | Disattivato | Salta la Fase 3 (selezione dei gruppi personalizzati) |
-FixScriptPath | Nessuno | Esporta tutta la remediation proposta in un file .ps1 |
-WhatIf / -Confirm | Standard | Anteprima delle modifiche o controllo delle richieste quando usati con -Apply |
auditpol per correggerlo, poi si interrompe. Le SACL di gruppo sono inutili finché questo non è in atto.Quando qualcosa necessita di modifiche, l'esecuzione termina con un blocco NEXT STEPS di comandi pronti da incollare per -Apply, -WhatIf, -FixScriptPath o passaggi manuali in 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
==============================================================================