Iscriviti al webinar gratuito del 12 Maggio per diventare Forensic Analyst! Scopri di più
Corso Ethical Hacker: accedi alla promozione fino al 30 Arile! Scopri di più
Quando un avversario dispone di credenziali valide ma l'utente corrispondente non ha sessioni attive sul sistema, può comunque ottenere un contesto di sicurezza privilegiato creando un token di accesso ex novo. La tecnica sfrutta la API Windows LogonUser per generare una sessione di logon e ottenere un handle al token risultante, che viene poi assegnato a un thread tramite SetThreadToken o ImpersonateLoggedOnUser. Il risultato è un processo — o un singolo thread — che opera con i privilegi dell'utente impersonato, senza che questi abbia mai effettuato un accesso interattivo.
La differenza rispetto al furto di token (T1134.001) è sostanziale: qui non si duplica un token già esistente in memoria, ma se ne fabbrica uno nuovo partendo da username e password. Questo rende la tecnica meno dipendente dalla presenza di sessioni attive, ma richiede il possesso di credenziali — tipicamente ottenute in fasi precedenti della kill chain.
T1134.003 si colloca in due tattiche: TA0004 – Privilege Escalation, perché consente di passare da un contesto a basso privilegio a uno amministrativo o SYSTEM, e TA0005 – Defense Evasion, perché le azioni successive risultano associate a un'identità legittima, complicando la correlazione nei log. Con 2 gruppi APT, 3 software documentati e 2 mitigazioni mappate, la tecnica rappresenta un meccanismo compatto ma ad alto impatto nella manipolazione dei token Windows.
Il modo più immediato per replicare questa tecnica in laboratorio è il comando nativo Windows runas con il flag /netonly. Questa modalità crea un token di tipo NewCredentials (LogonType 9): il processo locale mantiene l'identità originale per le risorse locali, ma utilizza le credenziali specificate per ogni accesso di rete. È esattamente il meccanismo che sfruttano gli attaccanti quando vogliono muoversi lateralmente senza generare un logon interattivo sulla macchina sorgente.
runas /netonly /user:DOMINIO\utente cmd.exe
Il comando apre un prompt che, a tutti gli effetti locali, sembra appartenere all'utente corrente, ma ogni connessione SMB, LDAP o Kerberos utilizzerà le credenziali iniettate. Per verificare il contesto effettivo, da quel prompt è sufficiente lanciare:
klist
per osservare i ticket Kerberos associati all'identità impersonata, oppure tentare un accesso a una share di rete riservata all'account target.
In Cobalt Strike (a pagamento), il comando make_token esegue esattamente la stessa operazione — chiama LogonUser con LOGON32_LOGON_NEW_CREDENTIALS e assegna il token risultante al beacon corrente. La sintassi nel beacon interattivo è diretta:
make_token DOMINIO\utente password
Da quel momento ogni azione di rete del beacon opera sotto l'identità specificata. Per tornare al contesto originale si usa rev2self.
Con SILENTTRINITY (open source), il modulo di token manipulation offre funzionalità equivalenti. Il framework, scritto in C# con un'architettura basata su .NET, consente la creazione di token da credenziali note attraverso i suoi moduli post-exploitation.
Per chi preferisce un approccio diretto in C, la catena API è compatta: chiamare LogonUserW con il tipo di logon desiderato, ottenere l'handle al token, e poi invocare SetThreadToken o CreateProcessWithTokenW per eseguire comandi nel nuovo contesto. Un PoC minimale in PowerShell può utilizzare P/Invoke per richiamare queste API senza compilare codice nativo — tecnica frequentemente osservata in esercizi red team.
Lo strumento Incognito (open source), utilizzato storicamente come modulo Meterpreter e disponibile anche nella versione standalone V2, permette enumerazione e impersonificazione di token. Il gruppo FIN13 ha adottato proprio Incognito V2 per manipolazione e impersonificazione di token nei propri attacchi.
Un aspetto da non sottovalutare in laboratorio: la creazione di token richiede il privilegio SeImpersonatePrivilege o un contesto già amministrativo. Se il punto di partenza è un utente standard, occorre prima scalare i privilegi — rendendo questa tecnica tipicamente un secondo passo nella catena di escalation.
Scarica la guida gratuita e segui il percorso corretto fin dal primo passo