Compromissione completa del dominio con un attacco Golden Ticket
Aug 31, 2022
Questa serie di blog post copre le tecniche che gli aggressori possono utilizzare per trovare e compromettere gli account di servizio di Active Directory. Prima, abbiamo dettagliato come possono scoprire gli account di servizio con il reconnaissance LDAP; poi abbiamo rivelato come possono estrarre le password degli account con il Kerberoasting; e poi abbiamo spiegato come elevare i diritti di un account utilizzando i Silver Tickets per abilitare accessi e attività aggiuntivi.
Contenuti correlati selezionati:
In questo ultimo post, esploriamo l'account di servizio più potente in qualsiasi ambiente Active Directory: l'account KRBTGT, che viene utilizzato per emettere i biglietti Kerberos necessari per accedere ai sistemi IT e ai dati. Ottenendo l'hash della password per questo account dal Key Distribution Center (KDC), un attaccante è in grado di compromettere ogni account in Active Directory, ottenendo così un accesso illimitato e praticamente indetectable a qualsiasi sistema connesso alla rete AD.
Cos'è l'account KRBTGT in AD?
I controller del dominio Active Directory di Windows sono responsabili della gestione delle richieste di ticket Kerberos, utilizzati per autenticare gli utenti e concedere loro l'accesso a computer e applicazioni. La password dell'account KRBTGT è utilizzata per criptare e decriptare i ticket Kerberos. Questa password cambia raramente e il nome dell'account è lo stesso in ogni dominio, quindi è un obiettivo comune per gli attaccanti.
Creazione di Golden Tickets
Utilizzando Mimikatz, è possibile sfruttare la password dell'account KRBTGT per creare Ticket Granting Tickets (TGT) falsificati che possono essere utilizzati per richiedere i ticket del Ticket Granting Server (TGS) per qualsiasi servizio su qualsiasi computer nel dominio.
Per creare Golden Tickets, un avversario ha bisogno delle seguenti informazioni:
- Hash della password dell'account KRBTGT
- Il nome e il SID del dominio a cui appartiene l'account KRBTGT
Vediamo come raccogliere queste informazioni e creare Golden Tickets per Kerberos, passo dopo passo.
Passo 1. Ottenere l'hash della password KRBTGT e il nome di dominio e SID.
Ottenere l'hash della password KRBTGT è la parte più difficile dell'attacco perché richiede l'accesso privilegiato a un controller di dominio. Una volta che un avversario è in grado di accedere interattivamente o a distanza a un DC, può utilizzare Mimikatz per estrarre le informazioni richieste utilizzando i seguenti comandi:
privilege::debug
lsadump::lsa /inject /name:krbtgt
Esto restituirà l'hash della password, oltre al nome del dominio e al SID:
Passaggio 2. Creare Golden Tickets.
Ora l'hacker può creare Golden Tickets a suo piacimento. I parametri utili di Mimikatz per la creazione di Golden Tickets includono:
- Utente— Il nome dell'account utente per il quale verrà creato il ticket. Notare che questo può essere un nome account valido, ma non è necessario che lo sia.
- ID— L'RID dell'account che l'attaccante impersonerà. Potrebbe trattarsi di un vero ID account, come l'ID amministratore predefinito di 500, o di un ID falso.
- Gruppi— Un elenco di gruppi a cui apparterrà l'account nel ticket. Domain Admins è incluso per impostazione predefinita, quindi il ticket verrà creato con i massimi privilegi.
- SIDs— Questo inserirà un SID nell'attributo SIDHistory dell'account nel ticket. Questo è utile per autenticarsi attraverso i domini.
L'esempio seguente crea un ticket per un utente fittizio ma fornisce l'ID dell'amministratore predefinito. Vedremo tra poco come questi valori entrano in gioco quando questo ticket viene utilizzato. Il trigger /ptt (Pass the Ticket) inietta il Golden Ticket che viene creato nella sessione corrente.
Passaggio 3. Passa il ticket.
Ora è il momento di utilizzare il Golden Ticket che è stato caricato nella sessione corrente. Lanciamo un prompt dei comandi nel contesto di quel ticket utilizzando il comando misc::cmd.
Puoi vedere nel prompt dei comandi che l'attaccante opera come un normale utente di dominio senza appartenenza a gruppi di dominio, il che significa che non dovrebbe avere alcun diritto su altri computer del dominio.
Tuttavia, poiché il ticket Kerberos è in memoria, è possibile connettersi a un domain controller e ottenere l'accesso a tutti i file memorizzati lì.
Utilizzando PSExec, l'attaccante può aprire una sessione sul controller di dominio di destinazione; in base a quella sessione, ora risulta connesso come Amministratore.
Il sistema crede che l'attaccante sia l'Amministratore a causa del RID di 500 che hanno usato per generare il Golden Ticket. I log degli eventi sul controller di dominio mostrano anche che il sistema crede che l'attaccante sia l'Amministratore, ma le credenziali sono quelle che sono state falsificate durante l'attacco del Golden Ticket. Questo può essere particolarmente utile per gli aggressori che cercano di evitare il rilevamento o creare log di sicurezza ingannevoli.
Protezione contro gli attacchi Golden Ticket
Gli attacchi con Golden Ticket di Active Directory sono molto difficili da rilevare perché i Golden Tickets sembrano TGT perfettamente validi. Tuttavia, nella maggior parte dei casi, vengono creati con durate di vita di 10 anni o più, che superano di gran lunga i valori predefiniti in Active Directory per la durata dei ticket. Anche se i timestamp dei TGT non vengono registrati nei log di autenticazione Kerberos, le adeguate soluzioni di Active Directory security solutions sono in grado di monitorarli. Se notate che i Golden Tickets sono utilizzati all'interno della vostra organizzazione, dovete reimpostare due volte l'account KRBTGT; farlo può avere conseguenze di vasta portata, quindi procedete con cautela.
La protezione più importante contro i Golden Tickets è limitare i diritti di accesso ai domain controller. Dovrebbe esserci il numero minimo assoluto di Domain Admins, così come i membri di altri gruppi che forniscono diritti di accesso ai DC, come gli Operatori di Stampa e Server. Inoltre, dovrebbe essere utilizzato un protocollo di accesso stratificato per impedire ai Domain Admins di accedere a server e workstation dove i loro hash delle password possono essere prelevati dalla memoria e utilizzati per accedere a un DC per estrarre l'hash dell'account KRBTGT.
Condividi su
Scopri di più
Informazioni sull'autore
Jeff Warren
Chief Product Officer
Jeff Warren supervisiona il portfolio di prodotti Netwrix, portando oltre un decennio di esperienza nella gestione e sviluppo di prodotti focalizzati sulla sicurezza. Prima di entrare in Netwrix, Jeff ha guidato l'organizzazione dei prodotti presso Stealthbits Technologies, dove ha utilizzato la sua esperienza come ingegnere del software per sviluppare soluzioni di sicurezza innovative su scala aziendale. Con un approccio pratico e un talento nel risolvere sfide di sicurezza complesse, Jeff è concentrato sulla costruzione di soluzioni pratiche che funzionano. È laureato in Information Systems presso l'Università del Delaware.
Scopri di più su questo argomento
Esempio di Analisi del Rischio: Come Valutare i Rischi
Il Triangolo CIA e la sua applicazione nel mondo reale
Creare utenti AD in massa e inviare le loro credenziali tramite PowerShell
Come aggiungere e rimuovere gruppi AD e oggetti nei gruppi con PowerShell
Attributi di Active Directory: Ultimo accesso