Questo script PowerShell è progettato per eseguire un audit completo di Microsoft Active Directory, concentrandosi sull'identificazione di vulnerabilità di sicurezza e debolezze comuni. La sua esecuzione facilita l'individuazione delle aree critiche che necessitano di rafforzamento, rendendo così più solida la tua infrastruttura contro le tattiche prevalenti utilizzate negli attacchi di movimento laterale o di escalation dei privilegi che mirano ad Active Directory.
Se hai degli one-liner PowerShell validi che potrebbero essere utilizzati nello script, fammi sapere. Cerco di mantenere questo script come un singolo file senza dipendenze da strumenti esterni (a parte ntdsutil e cmd.exe).
Eseguito direttamente su un DC con un account DA. Se non ti fidi del codice, ti suggerisco di leggerlo prima: vedrai che è tutto innocuo! (Ma non dovresti farlo comunque con il codice che scarichi dalla rete e poi esegui come DA?)
Cosa fa questo script
Informazioni sul dispositivo
Get-HostDetails
Audit del dominio
Get-LastWUDate
Get-DCEval
Get-TimeSource
Get-PrivilegedGroupMembership
Get-MachineAccountQuota
Get-DefaultDomainControllersPolicy
Get-SMB1Support
Get-FunctionalLevel
Get-DCsNotOwnedByDA
Get-ReplicationType
Get-RecycleBinState
Get-CriticalServicesStatus
Get-RODC
Audit delle relazioni di trust del dominio
Get-DomainTrusts
Audit degli account utente
Get-InactiveAccounts
Get-DisabledAccounts
Get-LockedAccounts
Get-AdminAccountChecks
Get-NULLSessions
Get-PrivilegedGroupAccounts
Get-ProtectedUsers
Audit delle informazioni sulle password
Get-AccountPassDontExpire
Get-UserPasswordNotChangedRecently
Get-PasswordPolicy
Get-PasswordQuality
Scarica NTDS.dit
Get-NTDSdit
Audit degli oggetti computer
Get-OldBoxes
Audit dei GPO (e verifica di SYSVOL per le password)
Get-GPOtoFile
Get-GPOsPerOU
Get-SYSVOLXMLS
Get-GPOEnum
Verifica delle autorizzazioni AD generiche dei gruppi
Get-OUPerms
Verifica dell'esistenza di LAPS nel dominio
Get-LAPSStatus
Verifica dell'esistenza di Criteri di autenticazione e Silos
Get-AuthenticationPoliciesAndSilos
Verifica di zone DNS non sicure
Get-DNSZoneInsecure
Verifica di utenti e gruppi creati di recente
Get-RecentChanges
Verifica delle vulnerabilità ADCS, ESC1,2,3,4 e 8.
Verifica degli account kerberoastable di alto valore
Verifica degli account ASREPRoastable
Verifica delle autorizzazioni ACL pericolose su Utenti, Gruppi e Computer.
Verifica delle impostazioni LDAP e LDAPs (firma, sessioni nulle, ecc.)
Argomenti da riga di comando
I seguenti switch possono essere utilizzati in combinazione:
-installdeps installa le funzionalità opzionali (DSInternals)
-hostdetails recupera il nome host e altre informazioni utili per l'audit
-domainaudit recupera informazioni sull'AD come il livello funzionale
-trusts recupera informazioni su eventuali trust di dominio
-accounts identifica problemi degli account come scaduti, disabilitati, ecc.
-passwordpolicy recupera le informazioni sui criteri delle password
-ntds scarica il file NTDS.dit utilizzando ntdsutil
-oldboxes identifica SO obsoleti come XP/2003 aggiunti al dominio
-gpo esporta i GPO in XML e HTML per analisi successive
-ouperms verifica problemi di autorizzazioni OU generiche
-laps verifica se LAPS è installato
Supporto per domini figlio
Lo script ora supporta completamente sia i domini radice della foresta che i domini figlio:
Schema Admins ed Enterprise Admins vengono gestiti con garbo nei domini figlio (dove esistono solo nella radice della foresta)
Lo script viene completato con successo con messaggi informativi appropriati per gruppi mancanti (presenti solo nella foresta radice)
Nessun arresto anomalo o errore bloccante a causa di gruppi mancanti in scenari di dominio figlio
Testato e convalidato su domini figlio di Windows Server 2022
Gestione degli errori e robustezza
Lo script implementa una gestione completa degli errori in tutto il codice:
Le funzioni di audit opzionali falliscono in modo elegante senza bloccare l'esecuzione dello script
Gli errori di generazione dei report GPO (es. GPO corrotti) non impediscono il completamento degli altri audit
Controlli difensivi prevengono eccezioni di file non trovato su file di output opzionali
Messaggi chiari di errore/avviso/informazione distinguono tra fallimenti critici e scenari previsti
I moduli opzionali mancanti (DSInternals, LAPS, AdmPwd.PS) non impediscono le funzioni di audit principali
Output XML Nessus
Genera XML Nessus valido e correttamente formattato senza richiedere post-elaborazione
Tutti i caratteri speciali sono correttamente escaped alla fonte (&, <, >, ", ')
Il file di output è pronto per l'importazione diretta in Nessus senza modifiche manuali
Elimina la necessità di passaggi di post-elaborazione o file di output aggiuntivi
Ambienti testati
Convalidato su Windows Server 2022 (sia dominio radice della foresta che dominio figlio)
Supporta Windows Server 2008R2 fino al 2022
Gestisce con successo ambienti di produzione complessi con GPO corrotti e configurazioni miste