Estrazione delle password degli account di servizio con Kerberoasting
Aug 31, 2022
Nel nostro articolo su LDAP reconnaissance post, abbiamo esplorato come un attaccante possa eseguire attività di ricognizione per scoprire account di servizio da prendere di mira in un dominio Active Directory (AD). Ora esaminiamo un metodo che un attaccante può utilizzare per compromettere quegli account e sfruttarne i privilegi: il Kerberoasting. Questa tecnica è particolarmente preoccupante perché non richiede privilegi di amministratore nel dominio, è molto facile da eseguire ed è praticamente indetectable.
Contenuti correlati selezionati:
Kerberoasting: Panoramica
Kerberoasting è un attacco che abusa di una funzionalità del protocollo Kerberos per raccogliere gli hash delle password degli account utente di Active Directory: qualsiasi utente di dominio autenticato può richiedere biglietti di servizio per un account specificando il suo Service Principal Name (SPN), e il servizio di emissione dei biglietti (TGS) sul controller di dominio restituirà un biglietto che è criptato utilizzando l'hash NTLM della password dell'account.
Contenuti correlati selezionati:
Pertanto, una volta che un avversario ha scoperto gli SPN degli account di servizio utilizzando una tattica come il reconnaissance LDAP, possono raccogliere i ticket per tutti quegli account. Portando offline tali dati, possono eseguire un attacco brute force per decifrare la password in chiaro di ogni account di servizio - senza alcun rischio di rilevamento o blocco dell'account.
Ci vogliono solo pochi minuti perché un attaccante possa accedere a un dominio, raccogliere ticket e iniziare il processo di cracking. Da lì, è solo una questione di attesa fino a quando non avranno compromesso uno o più account di servizio, che possono utilizzare per rubare o criptare dati sensibili o causare altri danni.
Gli avversari si concentrano sugli account di servizio per diversi motivi. Primo, questi account spesso dispongono di privilegi molto più estesi rispetto ad altri account utente di AD, quindi comprometterli concede all'attaccante un accesso maggiore. Inoltre, le password degli account di servizio cambiano raramente, quindi è probabile che l'avversario mantenga l'accesso per un lungo periodo. Per comprendere i tipi di accesso che possono essere ottenuti utilizzando Kerberoasting, guarda la lista degli SPN di Active Directory mantenuta da Sean Metcalf.
Kerberoasting: Come funziona
Passo 1. Ottenere gli SPN degli account di servizio.
. Ci sono molti modi per ottenere questi SPN, tra cui:
- Query di PowerShell e ricognizione LDAP
- Modulo Active Directory per PowerShell
- Script GetUserSPNs nel Kerberoast toolkit
- Comando Get-NetUser di PowerSploit
Passaggio 2. Richiedi ticket di servizio per gli SPN degli account di servizio.
Eseguire semplicemente un paio di righe di PowerShell, e un ticket di servizio verrà restituito e memorizzato nella memoria del sistema.
Add-Type –AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken –ArgumentList ‘MSSQLSvc/jefflab-sql02.jefflab.local:1433’
Passaggio 3. Estrai i ticket di servizio utilizzando Mimikatz.
Mimikatz estrarrà i ticket locali e li salverà sul disco per il cracking offline. Basta installare Mimikatz e impartire un singolo comando:
Passaggio 4. Decifrare i ticket.
I ticket Kerberos sono criptati con la password dell'account di servizio associato allo SPN specificato nella richiesta del ticket. Gli strumenti di Kerberoasting forniscono uno script Python per decifrare i ticket e fornire le loro password in chiaro eseguendo un dizionario di hash delle password contro di essi. Può richiedere una certa configurazione per assicurarsi di avere l'ambiente richiesto per eseguire lo script, ma questo blog copre quei dettagli.
In alternativa, puoi raccogliere i ticket Kerberos utilizzando lo script GetUserSPNs e decifrarli con lo strumento di recupero password Hashcat.
Protezione contro gli attacchi di Kerberoasting
La mitigazione primaria degli attacchi di Kerberoasting consiste nell'assicurarsi che tutti gli account di servizio utilizzino password lunghe e complesse che sono più difficili da decifrare e ruotarle regolarmente per minimizzare il tempo in cui l'account potrebbe essere utilizzato da un avversario che riesce a decifrare una password. L'utilizzo di account di servizio gestiti a livello di gruppo è considerata una prassi ottimale per l'assegnazione di password casuali e complesse che possono essere ruotate automaticamente.
Poiché gli avversari decifrano i ticket offline, il processo non genera traffico di rete, rendendo quella parte dell'attacco non rilevabile. Tuttavia, è possibile individuare le fasi precedenti monitorando Active Directory con una soluzione di sicurezza solida. In particolare, gli account di servizio vengono normalmente utilizzati dagli stessi sistemi negli stessi modi, quindi è importante osservare le richieste di autenticazione anomale. Inoltre, monitorare gli incrementi nelle richieste di ticket di servizio.
Infine, gli specialisti della sicurezza raccomandano anche di disabilitare la crittografia basata su RC4. Altrimenti, anche se un account utente supporta la crittografia AES, un attaccante può richiedere un ticket criptato con RC4, che è più facile da decifrare rispetto a uno creato utilizzando la crittografia AES.
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