Kerberoast
Last updated
Last updated
Usa Trickest per costruire e automatizzare flussi di lavoro alimentati dagli strumenti comunitari più avanzati al mondo. Accedi oggi:
Il Kerberoasting si concentra sull'acquisizione di ticket TGS, specificamente quelli relativi ai servizi che operano sotto account utente in Active Directory (AD), escludendo account computer. La crittografia di questi ticket utilizza chiavi che provengono da password utente, consentendo la possibilità di cracking delle credenziali offline. L'uso di un account utente come servizio è indicato da una proprietà "ServicePrincipalName" non vuota.
Per eseguire il Kerberoasting, è essenziale un account di dominio in grado di richiedere ticket TGS; tuttavia, questo processo non richiede privilegi speciali, rendendolo accessibile a chiunque abbia credenziali di dominio valide.
Il Kerberoasting mira ai ticket TGS per servizi di account utente all'interno di AD.
I ticket crittografati con chiavi da password utente possono essere crackati offline.
Un servizio è identificato da un ServicePrincipalName che non è nullo.
Nessun privilegio speciale è necessario, solo credenziali di dominio valide.
Gli strumenti di Kerberoasting richiedono tipicamente RC4 encryption
quando eseguono l'attacco e iniziano le richieste TGS-REQ. Questo perché RC4 è più debole e più facile da crackare offline utilizzando strumenti come Hashcat rispetto ad altri algoritmi di crittografia come AES-128 e AES-256.
Gli hash RC4 (tipo 23) iniziano con $krb5tgs$23$*
mentre gli hash AES-256 (tipo 18) iniziano con $krb5tgs$18$*
.`
Strumenti multi-funzionali che includono un dump di utenti kerberoastable:
Enumerare gli utenti Kerberoastable
Tecnica 1: Richiedi TGS e dumpalo dalla memoria
Tecnica 2: Strumenti automatici
Quando viene richiesta una TGS, viene generato l'evento di Windows 4769 - È stato richiesto un ticket di servizio Kerberos
.
Usa Trickest per costruire e automatizzare flussi di lavoro facilmente, alimentati dagli strumenti della comunità più avanzati al mondo. Accedi oggi:
Se hai sufficienti permessi su un utente, puoi renderlo kerberoastable:
Puoi trovare utili tools per attacchi di kerberoast qui: https://github.com/nidem/kerberoast
Se trovi questo error da Linux: Kerberos SessionError: KRB_AP_ERR_SKEW(Clock skew too great)
è a causa del tuo orario locale, devi sincronizzare l'host con il DC. Ci sono alcune opzioni:
ntpdate <IP del DC>
- Deprecato a partire da Ubuntu 16.04
rdate -n <IP del DC>
Il kerberoasting può essere condotto con un alto grado di furtività se è sfruttabile. Per rilevare questa attività, è necessario prestare attenzione a Security Event ID 4769, che indica che un biglietto Kerberos è stato richiesto. Tuttavia, a causa dell'alta frequenza di questo evento, devono essere applicati filtri specifici per isolare attività sospette:
Il nome del servizio non dovrebbe essere krbtgt, poiché si tratta di una richiesta normale.
I nomi dei servizi che terminano con $ dovrebbero essere esclusi per evitare di includere account macchina utilizzati per i servizi.
Le richieste da macchine dovrebbero essere filtrate escludendo i nomi degli account formattati come machine@domain.
Solo le richieste di biglietti riuscite dovrebbero essere considerate, identificate da un codice di errore di '0x0'.
Soprattutto, il tipo di crittografia del biglietto dovrebbe essere 0x17, che è spesso utilizzato negli attacchi di Kerberoasting.
Per mitigare il rischio di Kerberoasting:
Assicurati che le password degli account di servizio siano difficili da indovinare, raccomandando una lunghezza di oltre 25 caratteri.
Utilizza Managed Service Accounts, che offrono vantaggi come cambi automatici delle password e gestione delegata del Service Principal Name (SPN), migliorando la sicurezza contro tali attacchi.
Implementando queste misure, le organizzazioni possono ridurre significativamente il rischio associato al Kerberoasting.
Nel settembre 2022, un nuovo modo di sfruttare un sistema è stato portato alla luce da un ricercatore di nome Charlie Clark, condiviso attraverso la sua piattaforma exploit.ph. Questo metodo consente l'acquisizione di Service Tickets (ST) tramite una richiesta KRB_AS_REQ, che notevolmente non richiede il controllo su alcun account di Active Directory. Fondamentalmente, se un principale è configurato in modo tale da non richiedere la pre-autenticazione—uno scenario simile a quello noto nel campo della cybersecurity come un attacco AS-REP Roasting—questa caratteristica può essere sfruttata per manipolare il processo di richiesta. Specificamente, alterando l'attributo sname all'interno del corpo della richiesta, il sistema viene ingannato a emettere un ST piuttosto che il normale Ticket Granting Ticket (TGT) crittografato.
La tecnica è spiegata completamente in questo articolo: Semperis blog post.
Devi fornire un elenco di utenti perché non abbiamo un account valido per interrogare l'LDAP utilizzando questa tecnica.
Usa Trickest per costruire e automatizzare flussi di lavoro alimentati dagli strumenti della comunità più avanzati al mondo. Ottieni accesso oggi:
Impara e pratica il Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)