Scoperta delle Relazioni di Trust: Domain Trust Discovery (T1482)

Quando un attaccante conquista un primo punto d'appoggio in una rete Windows, la domanda successiva è quasi sempre la stessa: dove posso muovermi? La tecnica Domain Trust Discovery risponde a questa domanda, permettendo di mappare le relazioni di fiducia tra domini e foreste Active Directory. In ambienti enterprise, i trust rappresentano il tessuto connettivo che consente agli utenti di un dominio di accedere a risorse di un altro: ogni relazione di fiducia è, potenzialmente, un corridoio di movimento laterale.

Questa tecnica appartiene alla tattica Discovery (TA0007), la fase post-compromissione in cui l'avversario esplora l'ambiente per orientarsi e pianificare le mosse successive. I dati raccolti — direzione del trust, tipo (parent-child, forest, external), transitività — alimentano attacchi come SID-History Injection, Pass the Ticket e Kerberoasting.

I vettori di enumerazione sono molteplici: la chiamata API Win32 DSEnumerateDomainTrusts(), i metodi .NET come GetAllTrustRelationships(), le query LDAP, e soprattutto l'utility nativa Nltest, il coltellino svizzero preferito da almeno 9 gruppi APT documentati. Il panorama include 19 software coinvolti, 3 campagne note e 2 mitigazioni raccomandate, segno che si tratta di una tecnica tanto diffusa quanto sottostimata nelle strategie difensive.


Il bello di questa tecnica è che non servono privilege escalation o tool esoterici: quasi tutto si fa con utility native di Windows, il che la rende perfetta per testare la maturità difensiva del SOC.

Il punto di partenza classico è Nltest (open source, nativo Windows), lo stesso strumento usato da gruppi come FIN8, Chimera e Magic Hound. Da un prompt con credenziali di dominio:

nltest /domain_trusts /all_trusts

Questo comando restituisce tutti i trust, inclusi quelli non transitivi e cross-forest. Per un output più granulare, focalizzato sui domain controller:

nltest /dclist:<nome_dominio>

Se vuoi simulare l'approccio di Akira o dell'operazione SolarWinds Compromise, affianca Nltest con AdFind (gratuito), un tool a riga di comando per query LDAP su Active Directory. La sintassi per estrarre gli oggetti trust è:

AdFind -f "(objectClass=trustedDomain)" -dn

Per chi preferisce restare nel mondo PowerShell — approccio usato da APT29 durante la SolarWinds Compromise — il modulo Active Directory offre il cmdlet nativo:

*Get-ADTrust -Filter **

In alternativa, PowerSploit (open source) fornisce funzioni più granulari dal modulo PowerView:

Get-NetDomainTrust Get-NetForestTrust

Questi comandi mappano trust a livello di dominio e di foresta rispettivamente, restituendo direzione, tipo e transitività.

Per una visione grafica e relazionale, BloodHound (open source) resta lo standard de facto. Dopo aver raccolto i dati con il collector SharpHound, la sezione "Domain Trusts" nel grafo mostra visivamente ogni relazione di fiducia e i percorsi di attacco derivanti. Rubeus (open source) può poi validare operativamente la sfruttabilità dei trust tramite richieste Kerberos cross-domain.

Sul versante dei framework C2, sia Empire (open source) che PoshC2 (open source) includono moduli dedicati all'enumerazione dei trust. Brute Ratel C4 (a pagamento) combina query LDAP e invocazioni di Nltest nella stessa catena operativa.

Un approccio LDAP puro, utile quando i tool non sono disponibili, sfrutta dsquery (nativo Windows):

*dsquery * -filter "(objectClass=trustedDomain)" -attr **

Durante l'esercizio, documenta ogni trust scoperto con direzione e tipo: il report finale dovrebbe evidenziare quali trust sono eccessivi o non più necessari, offrendo al blue team un deliverable concreto per la riduzione della superficie d'attacco.


Vuoi diventare un Ethical Hacker ma non sai da dove iniziare?

Scarica la guida gratuita e segui il percorso corretto fin dal primo passo