Pass the Ticket: Uso di Ticket Kerberos Rubati (T1550.003)

Pass the Ticket (PtT) è una tecnica di movimento laterale che sfrutta ticket Kerberos legittimi — sottratti o forgiati — per autenticarsi verso sistemi remoti senza mai conoscere la password dell'account. L'attaccante bypassa i controlli di accesso convenzionali riutilizzando materiale crittografico già valido nel dominio Active Directory.

MITRE ATT&CK colloca la tecnica sotto due tattiche: TA0008 (Lateral Movement), poiché il ticket diventa il vettore per pivotare tra host, e TA0005 (Defense Evasion), perché l'autenticazione appare legittima ai sistemi di monitoraggio tradizionali. Nella kill chain la tecnica si posiziona dopo una fase di OS Credential Dumping (T1003), tipicamente contro LSASS o il database NTDS.dit del domain controller.

Esistono tre varianti operative. Il service ticket (TGS) consente accesso a una risorsa specifica. Il Ticket Granting Ticket (TGT) permette di richiedere nuovi TGS per qualunque risorsa cui l'utente ha diritto. Il Golden Ticket, forgiato con l'hash NTLM dell'account KRBTGT, autorizza la generazione di TGT arbitrari per qualsiasi identità del dominio, mentre il Silver Ticket falsifica TGS per singoli servizi. Una variante ibrida, l'overpass-the-hash, converte un hash NTLM in un ticket Kerberos valido combinando PtH e PtT.

L'impatto è severo: con 3 gruppi APT documentati (APT29, APT32, BRONZE BUTLER) e strumenti come Mimikatz, la tecnica garantisce persistenza dominio-wide potenzialmente pluriennale.

L'operatività di Pass the Ticket in un red team engagement inizia sempre dalla fase di credential extraction. Il presupposto è aver ottenuto privilegi locali di amministratore o SYSTEM sul primo host compromesso, condizione necessaria per accedere alla memoria di LSASS o al file NTDS.dit su un domain controller.

Lo strumento di riferimento è Mimikatz (open source), disponibile sul repository GitHub di gentilkiwi. Per estrarre i ticket presenti in memoria si usa il modulo dedicato:

sekurlsa::tickets /export

Questo comando salva ogni ticket in formato .kirbi nella directory corrente. Per iniettare un ticket nella sessione corrente il comando è:

kerberos::ptt <ticket.kirbi>

Per un attacco Golden Ticket serve l'hash NTLM dell'account KRBTGT, ottenibile via DCSync contro un DC (richiede privilegi di Domain Admin o delega di replica):

lsadump::dcsync /domain:corp.local /user:krbtgt

Con l'hash si forgia il TGT specificando SID del dominio, utente arbitrario e gruppi da impersonare:

kerberos::golden /user:Administrator /domain:corp.local /sid: /krbtgt: /ptt

Un'alternativa cross-platform è Rubeus (open source), scritto in C# e integrabile con Cobalt Strike o eseguibile via execute-assembly. Comandi tipici includono rubeus.exe tgtdeleg per estrarre il TGT della sessione corrente, rubeus.exe asktgt per richiedere un TGT con hash o AES key noti, e rubeus.exe ptt /ticket: per iniettare il ticket. Rubeus supporta anche l'overpass-the-hash tramite asktgt /rc4:.

Su Linux, Impacket (open source) offre la suite completa: ticketer.py forgia Golden e Silver ticket in formato ccache, getTGT.py richiede TGT con hash o password, e psexec.py -k -no-pass utilizza il ticket presente nella variabile KRB5CCNAME per eseguire comandi remoti. Il flusso tipico prevede l'export della variabile ambiente verso il file ccache generato e l'invocazione di smbclient.py o wmiexec.py con il flag -k.

Per il post-exploitation stealth, Pupy (open source) e framework come Covenant integrano moduli PtT nativi che evitano il drop di binari noti su disco. In ambiente di laboratorio è utile validare il ticket con klist su Windows o klist del pacchetto krb5-user su Linux, verificando issue time, renew time e SPN target prima del movimento laterale via SMB, WMI o WinRM.

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

Accedi alle lezioni gratuite e segui il percorso corretto fin dal primo passo

TEST GRATUITO
2 minuti · 7 domande Che professionista cyber sei? Scopri il profilo più vicino al tuo modo di pensare e inizia dal percorso giusto.