En les auditories d’Active Directory, el Kerberoasting és un dels atacs que es verifiquen sistemàticament, tan eficaç, ràpida i discreta és aquesta tècnica. En pocs segons, un simple compte d’usuari sense cap privilegi pot obtenir prou material per trencar, fora de línia i sense soroll, les contrasenyes de comptes de vegades molt poderosos. Aquest article en detalla el funcionament, per què té èxit tan sovint i, sobretot, com protegir-se’n.
Una mica de Kerberos i de SPN
En un domini Windows, l’autenticació es basa en Kerberos, un protocol fonamentat en tiquets emesos pel controlador de domini. El principi es remunta als anys vuitanta (el projecte Athena del MIT), i Microsoft l’ha adoptat com a mecanisme d’autenticació per defecte des de Windows 2000. Cada servei accessible via Kerberos s’identifica amb un SPN, de Service Principal Name, una etiqueta del tipus MSSQLSvc/serveur.entreprise.local:1433 que vincula un servei (una base SQL, un servidor web, una carpeta compartida) a un compte de servei del directori.
Cal recordar que un compte de servei és un compte d’usuari dedicat a executar una aplicació. Sovint té drets elevats i la seva contrasenya rarament es canvia, perquè modificar-la pot interrompre l’aplicació que en depèn. És un secret que envelleix malament.
Per què els comptes de servei atrauen tant
Aquests comptes concentren tots els defectes que busca un atacant. Es van crear fa temps, sovint durant la instal·lació d’un programari, amb una contrasenya triada a mà per un administrador amb pressa. Aquesta contrasenya generalment no caduca mai, perquè una caducitat significaria una fallada de l’aplicació. I per acabar-ho d’adobar, aquests comptes sovint són membres de grups molt privilegiats, de vegades Administradors del domini, «el temps just per fer funcionar l’aplicació», i després s’oblida desfer el canvi. Un atacant ho sap, i apunta prioritàriament a aquests SPN.
El mecanisme de l’atac
El punt clau cap en una frase: qualsevol usuari autenticat del domini pot sol·licitar un tiquet de servei (un TGS, de Ticket-Granting Service) per a qualsevol SPN. És un funcionament perfectament normal de Kerberos, no una vulnerabilitat. Ara bé, una part d’aquest tiquet està xifrada amb una clau derivada directament de la contrasenya del compte de servei. Obtenint el tiquet, doncs, s’obté una mostra xifrada que es podrà atacar amb tota tranquil·litat.
L’atacant enumera els SPN del directori, sol·licita els tiquets corresponents i després els extreu. Amb GetUserSPNs.py, de la suite Impacket, n’hi ha prou amb una sola ordre des de Linux:
GetUserSPNs.py entreprise.local/utilisateur:MotDePasse -request -outputfile tickets.txt
Pel costat de Windows, l’eina Rubeus fa el mateix des d’un equip ja compromès, i sap apuntar als comptes més interessants:
Rubeus.exe kerberoast /outfile:tickets.txt
Punt crucial: en cap moment l’atacant no necessita escriure al controlador de domini ni provar-hi contrasenyes. Tot el cracking es fa després a la seva pròpia màquina, fora de línia. Per tant, no hi ha cap compte bloquejat ni cap pic d’errors d’autenticació visible als registres.
El cracking fora de línia
Un cop recuperats els tiquets, l’atacant els passa a una eina de cracking com hashcat. El format Kerberos TGS correspon al mode 13100:
hashcat -m 13100 tickets.txt dictionnaire.txt -r regles.rule
El paràmetre -r aplica un joc de regles que reprodueix els hàbits humans: majúscula inicial, xifra final, substitucions clàssiques. Contra una contrasenya feble del tipus Servidor2021, el resultat arriba en pocs segons en un simple portàtil equipat amb una targeta gràfica. I aquí rau tot el problema:
- els comptes de servei sovint tenen contrasenyes curtes, triades per un humà fa anys;
- gairebé mai no es renoven;
- acumulen privilegis elevats, de vegades fins a l’administració completa del domini.
N’hi ha prou amb una sola contrasenya feble trencada perquè l’atacant hereti directament els drets del compte, sense exploit ni escalada de privilegis addicional. És una drecera espectacular entre «soc un usuari qualsevol» i «controlo el directori».
RC4, el combustible discret de l’atac
Un detall tècnic sovint agreuja la situació: per compatibilitat, molts tiquets encara es xifren amb l’algorisme RC4, derivat del hash NTLM de la contrasenya. Ara bé, RC4 es presta especialment bé al cracking massiu. Forçant l’ús d’AES per als comptes de servei, el cracking esdevé molt més costós. Les eines d’atac ho saben: Rubeus, per exemple, sol·licita de bon grat tiquets en RC4 quan estan disponibles, precisament perquè són més fàcils de tractar.
El que revela el terreny
En una missió tipus, l’enumeració fa aflorar regularment diverses desenes de SPN. N’hi ha prou que un sol correspongui a un compte amb una contrasenya antiga per obrir una bretxa. Els comptes de còpia de seguretat, de supervisió o de base de dades apareixen sovint, freqüentment amb privilegis elevats, protegits per una contrasenya que reprèn el nom de l’editor del programari seguit d’un any. L’impacte en el negoci és immediat: qui controla un compte així controla l’autenticació de tota l’empresa. La BOX Oxyscan detecta precisament aquests comptes de servei exposats al Kerberoasting en tot un directori, cosa que permet corregir-los abans que un atacant els trobi.
Corregir la vulnerabilitat: passar als comptes de servei gestionats
Com que el Kerberoasting no explota un defecte de programari sinó la feblesa d’una contrasenya, la correcció consisteix a fer que aquesta contrasenya sigui impossible de trencar. Els comptes de servei gestionats de grup (gMSA, de group Managed Service Accounts) responen exactament a aquesta necessitat: la seva contrasenya la genera aleatòriament el domini, ocupa 240 bytes i es renova automàticament, sense cap intervenció humana. Un atacant que recupera un tiquet xifrat amb un secret així hi pot dedicar totes les targetes gràfiques que vulgui, no el trobarà.
Cal recordar que aquest ja és el comportament dels comptes de màquina (aquells el nom dels quals acaba en $): la seva contrasenya és aleatòria i molt llarga, cosa que els fa immunes al Kerberoasting. El gMSA simplement estén aquest principi als comptes que executen els serveis d’aplicació.
La posada en marxa es fa amb tres ordres PowerShell, al controlador de domini. Primer es genera, una sola vegada per a tot el domini, la clau arrel del servei de distribució de claus (KDS):
Add-KdsRootKey -EffectiveImmediately
Malgrat el seu nom, l’opció -EffectiveImmediately només fa la clau utilitzable després de la seva replicació a tots els controladors de domini, amb un termini de seguretat que pot arribar a deu hores. Aquest termini s’ha de respectar en producció. Després es crea el compte gestionat, indicant-ne el nom DNS i l’amfitrió o amfitrions autoritzats a recuperar-ne la contrasenya:
New-ADServiceAccount -Name sql-service -DNSHostName sql-service.exemple.local -PrincipalsAllowedToRetrieveManagedPassword "GRP-SRV-SQL$"
A continuació s’instal·la el compte a la màquina que executarà el servei:
Install-ADServiceAccount sql-service
Només queda designar aquest compte com a identitat del servei. A l’administrador del servidor, s’indica el compte gestionat, reconeixible pel sufix $, com a compte personalitzat, aquí per a la identitat d’un grup d’aplicacions IIS:

No tots els programaris saben funcionar encara amb un gMSA. Per a aquests casos residuals, la regla és doble: una contrasenya d’almenys vint-i-cinc caràcters, generada aleatòriament i desada en un cofre, i el respecte estricte del mínim privilegi, perquè un compte de servei gairebé mai no necessita pertànyer als administradors del domini. A més, es força el xifratge AES dels tiquets, molt més costós de trencar que el RC4 heretat, i es vigilen les sol·licituds anormalment nombroses de tiquets de servei, sovint el primer senyal d’una campanya de Kerberoasting en curs.
Conclusió
El Kerberoasting no explota cap bug: explota una contrasenya dolenta posada en un compte massa poderós. Per això figura entre les tècniques més rendibles per a un atacant intern, i entre les més fàcils de descuidar pel costat de la defensa. La bona notícia és que les contramesures són conegudes, documentades (sobretot pel MITRE i per l’ANSSI) i eficaces.
Consells: assignar als comptes de servei contrasenyes molt llargues (25 caràcters o més) o, millor encara, migrar a comptes de servei gestionats de grup (gMSA), la contrasenya dels quals la renova automàticament el domini; aplicar el principi de mínim privilegi (cap compte de servei no hauria de ser administrador del domini sense una justificació sòlida), forçar el xifratge AES en lloc de RC4, i vigilar les sol·licituds massives de tiquets TGS, sovint el primer senyal d’un atac en curs.
Per anar més lluny
- Consultoria i acompanyament en ciberseguretat d’Oxydian, per implementar l’enduriment d’un directori (gMSA, xifratge AES, mínim privilegi).
- Per què les contrasenyes d’empresa cauen en una auditoria, l’article dedicat al cracking fora de línia i a la higiene dels secrets.
- MITRE ATT&CK, tècnica T1558.003 (Kerberoasting), descripció, detecció i mesures de mitigació.
- ANSSI, recomanacions per securitzar un directori Active Directory.
- Microsoft Learn, presentació dels comptes de servei gestionats de grup (gMSA).
- hashcat, l’eina de referència per al cracking fora de línia (mode 13100 per als tiquets Kerberos).
- Suite Impacket (GetUserSPNs.py), el conjunt d’eines de codi obert utilitzat per a la recollida dels tiquets.