Active Directory: Pass The Ticket

CC0 Kerb

Introduzione

Gli attacchi a un sistema possono spesso aggirare i normali controlli di accesso utilizzando metodi alternativi di autenticazione come hash delle password, ticket Kerberos e token di accesso. Questa tecnica, nota come T1550 nel framework MITRE ATT&CK, abilita gli aggressori a spostarsi lateralmente all’interno di un ambiente e ottenere un accesso non autorizzato. Questo articolo fornirà una descrizione di una tecnica derivata dall’uso alternativo di Metodi di autenticazione (T1150): tecnica Pass the Ticket (T1550.003).

Pass-the-Ticket (T1550.003)

Pass the Ticket (PtT) è una tecnica che consente ad un attaccante di riutilizzare un Ticket Kerberos. Il TGT è una componente cruciale del protocollo Kerberos, in quanto consente a un utente di autenticarsi su più sistemi senza dover inserire la propria password ogni volta.
Il Ticket Granting Ticket (TGT) è una tipologia di ticket emesso dal Domain Controller (DC) e rilasciato ad un utente dopo aver effettuato l’autenticazione nel dominio. Include cruciali informazioni quali la chiave di sessione dell’utente, il gruppop di appartenenza e i privilegi, che vengono utilizzati per richiedere Ticket di servizio per specifici processi sui sistemi di destinazione. Kerberos effettua la crittografia del TGT utilizzando l’hash della password dell’utente e utilizza la crittografia simmetrica usando algoritmi (come DES o AES) a seconda della configurazione dell’ambiente Kerberos. Dopo la crittografia, il TGT viene inviato al computer dell’utente e archiviato in memoria. Quando l’utente desidera accedere a una risorsa su un altro sistema, utilizza il TGT per richiedere un Ticket di servizio al DC. Anche il ticket di servizio è crittografato con la chiave di sessione dell’utente e contiene una chiave di sessione crittografata che può essere utilizzata per autenticarsi sul sistema di destinazione. Il ticket di servizio viene quindi inviato all’utente, dove viene utilizzato per l’autenticazione nel sistema di destinazione. Avendo una chiave TGT rubata, un avversario può richiedere un ticket di servizio al DC per un servizio specifico su un sistema di destinazione impersonando l’utente legittimo e ottenendo l’accesso alle sue risorse.

Strumenti e Tecniche

Gli attacchi Pass the Ticket (PtH) possono essere eseguiti utilizzando vari strumenti disponibili pubblicamente, come Mimikatz, Kekeo, Rubeus, Creddump7, ecc. Gli aggressori spesso impiegano questi strumenti per estrarre i TGT Kerberos dalla memoria di un sistema compromesso per poi usarli per accedere ad altri sistemi sulla rete.

Strumento 1: Mimikatz

L’utilizzo di Mimikatz per l’attacco PtT consiste in quattro fasi principali.

Fase 1: Acquisizione dei ticket Kerberos per account validi

Un utente malintenzionato può utilizzare il comando “sekurlsa::tickets” in Mimikatz con il parametro /export per estrarre tutti i ticket Kerberos dalla memoria e salvarli come file .kirbi nella stessa cartella in cui si trova il file eseguibile di Mimikatz. Esaminando i nomi dei file .kirbi è possibile determinare se ne esistono Ticket Kerberos per un amministratore di dominio, ad esempio DOMINIO\nome_dell_utente:

PS> mimikatz.exe "privilege::debug" "sekurlsa::tickets /export"
PS> dir | findet "nome_dell_utente" | findstr "krbtgt"

Il secondo comando, ‘PS> dir | findet “nome_dell_utente” | findstr “krbtgt”‘, elenca tutti i file nel cartella corrente e invia il risultato al comando findstr per cercare il testo “krbtgt”. Lo scopo di questo comando è trovare, includendo come filtro la stringa “krbtgt”, i file Ticket Kerberos relativi all’utente specificato. Tieni presente che Mimikatz non è l’unico strumento per ottenere i Ticket Kerberos. Gli attaccanti possono utilizzare lo strumento Rubeus per generare traffico AS-REQ grezzo al fine di richiedere un TGT con un nome utente e una password forniti. Il vantaggio di questo attacco è che la password fornita a Rubeus può essere crittografata negli algoritmi RC4, DES e AES, e l’attacco funzionerebbe comunque.

Fase 2: Riutilizzare il Ticket

Questo è il passo principale dell’attacco Pass the Ticket. In questo passaggio l’attaccante utilizza il comando Mimikatz “kerberos::ptt” per inserire il TGT ottenuto nella propria sessione, facendo sì che la sessione assuma identità e autorizzazioni del TGT rubato, per l’accesso futuro alle risorse, senza conoscere le credenziali in chiaro. Ciò consente all’avversario di accedere a risorse che altrimenti sarebbero protette da autenticazione Kerberos.

PS> mimikatz.exe "kerberos::ptt C:\KerberosTickets\risultato_del_comando_2_fase_1

Tieni presente che il comando precedente viene utilizzato per inserire il Ticket Granting Ticket (TGT) Kerberos memorizzato nel file .kirbi corrispondente nella sessione corrente. Per assicurarsi che sia stato iniettato il ticket giusto, un avversario può utilizzare “kerberos::list” in Mimikatz.
‘PS> mimikatz.exe “kerberos::list”‘
È importante ricordare che il TGT ha una durata limitata e scadrà dopo un certo periodo di tempo. L’utente dovrà autenticarsi nuovamente al dominio per ottenere un nuovo TGT.

Fase 3: Scansione dei privilegi del ticket rubato

Una volta che un ticket ottenuto è pronto per il riutilizzo, l’aggressore deve identificarne le capacità, ovvero dove può essere utilizzato. Un TGS (Ticket Grant Service) può fornire l’accesso solo alla risorsa specifica per cui è stato emesso, e l’attaccante può scoprire tali informazioni esaminando il TGS stesso.
Per utilizzare un TGT, l’aggressore potrebbe dover eseguire una fase di scansione per capire dov’è consentito l’accesso. Questo può essere semplice come controllare i gruppi diappartenenza dell’utente.
È possibile utilizzare numerosi strumenti per raccogliere informazioni su Active Directory. Tuttavia, un utente malintenzionato può anche utilizzare comandi integrati come “net” per raccogliere informazioni senza allertare i sistemi di sicurezza. Un esempio lo troviamo nel seguente comando:

PS> net user "nome_dell_utente" /domain

Fase 4: Accesso alle risorse tramite il nuovo account

Infine, l’aggressore può utilizzare le utilità integrate del sistema operativo per spostarsi lateralmente in modo furtivo e provare ad accedere ad altre risorse. Ad esempio, l’avversario potrebbe sfruttare l’utilità della riga di comando PsExec per eseguire powershell.exe su una postazione di lavoro remota.

Pass The Ticket: Metodi di rilevamento per l’attacco

Di seguito, vengono aggiunti gli ID evento noti per rilevare un possibile attacco Pass the Ticket:

ID evento 4768: è stato richiesto un ticket di autenticazione Kerberos (TGT).

Campi chiave: Account Name, Service Name (sempre “krbtgt”), Service ID, Client Address

ID evento 4769: è stato richiesto un ticket di servizio Kerberos.

Campi chiave: Account Name, Service Name, Client Address

ID evento 4770: Un ticket di servizio Kerberos è stato rinnovato.

Campi chiave: Account Name, User ID, Service Name, Service ID

Pass The Ticket: Tecniche di mitigazione dell’attacco

Le misure efficaci per contrastare gli attacchi Pass the-Ticket si concentrano sulla creazione di Ticket difficili da rubare e limitando il potenziale impatto di un Ticket rubato. Una di queste misure è quella di utilizzare Windows Defender Credential Guard di Microsoft. Questa tecnologia, che è stata introdotta in Windows 10 e Windows Server 2016, sfrutta la virtualizzazione per garantire la sicurezza durante l’archiviazione delle credenziali e fornire l’accesso solo ai processi attendibili. Un altro passo importante è limitare il numero di endpoint in cui gli utenti hanno privilegi amministrativi. Ciò riduce significativamente il rischio che un utente malintenzionato utilizzi un Ticket rubato per movimenti laterali. È inoltre importante evitare di concedere privilegi amministrativi, in quanto ciò riduce notevolmente il rischio che un utente malintenzionato utilizzi un Ticket rubato per eseguire l’escalation dei privilegi.

Conclusioni

In conclusione, la crescente frequenza e sofisticatezza degli attacchi contro Active Directory sono evidenti. Gli attacchi comuni discussi in questo articolo, come Pass the Ticket, ma anche Pass the Hash (leggi articolo), esemplificano la miriade di modi in cui gli avversari possono sfruttare le vulnerabilità all’interno dell’infrastruttura Active Directory di un’organizzazione. Considerando il ruolo cruciale che Active Directory svolge nella regolamentazione dell’accesso a un file dati e a risorse sensibili, è imperativo che le organizzazioni adottino misure proattive per difendersi da questo tipo di attacchi. Ciò richiede un approccio multilivello, che comprende controlli di sicurezza regolari, valutazioni delle vulnerabilità e monitoraggio continuo per rilevare e affrontare le minacce in tempo reale. È fondamentale riconoscere che gli aggressori aggiornano costantemente le loro tattiche, richiedendo alle organizzazioni di rimanere vigili e ad aggiornare costantemente le proprie misure di sicurezza per contrastare le minacce emergenti. Investendo in misure di sicurezza globali e ravvicinate, monitorando l’evoluzione del panorama delle minacce, le organizzazioni possono mitigare il rischio di cadere vittime di un attacco ad Active Directory.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *