30 juni 2026 · 9 min leestijd · begrippen
Kerberos is een netwerkauthenticatieprotocol dat de identiteit van gebruikers en computers controleert met tickets en symmetrische versleuteling. In plaats van bij elke service opnieuw je wachtwoord te sturen, haal je één keer een ticket op bij een centrale, vertrouwde partij, en dat ticket bewijst daarna wie je bent. Die centrale partij heet de Key Distribution Center (KDC).
Het protocol komt van MIT, uit Project Athena, en is genoemd naar Kerberos, de driekoppige hond uit de Griekse mythologie die de onderwereld bewaakt. De drie koppen passen bij de drie partijen in elke uitwisseling: de client, de KDC en de service. De huidige versie is Kerberos versie 5, vastgelegd in RFC 4120. In Active Directory is Kerberos sinds Windows 2000 het standaard authenticatieprotocol, met NTLM als oudere terugval.
In het kort bewijs je bij Kerberos één keer wie je bent, en krijg je daarvoor een soort digitaal pasje terug. Met dat pasje haal je daarna voor elke service een apart toegangsbewijs op, zonder telkens opnieuw je wachtwoord in te voeren. Onder water gebeurt dat in drie stappen tussen de client, de KDC en de service.
Omdat het TGT met de krbtgt-sleutel is versleuteld, kan de client het zelf niet lezen of aanpassen, en omdat een service ticket met de sleutel van de service zelf is versleuteld, kan alleen die ene service het openen. Daar bovenop controleert Kerberos ook de server, niet alleen de client. De service kan zich op zijn beurt aan de client bewijzen (mutual authentication), iets wat NTLM niet kan.
In een domein draait de KDC op elke domain controller, met de AD-database als accountopslag. Het belangrijkste account daarin is het krbtgt-account, een speciaal, uitgeschakeld account waarvan de wachtwoord-hash elk TGT in het domein versleutelt. Die hash is daarmee de belangrijkste sleutel in de hele AD.
In elk ticket zit een PAC (Privilege Attribute Certificate). Daarin staan de SID (Security Identifier) van de gebruiker en de SID’s van alle groepen waar hij in zit. Dat is de autorisatie-informatie waarmee een service bepaalt wat je mag, zonder voor elke vraag terug te “bellen” naar een domain controller. De noPac-aanval uit 2021 misbruikte een fout in de PAC-afhandeling. Microsoft heeft die met beveiligingsupdates gedicht.
De SPN uit stap 2 is de unieke naam van een service, gekoppeld aan het account waaronder die service draait. Aan de hand van die naam bepaalt de KDC met welke accountsleutel hij het service ticket versleutelt. Daarom mag een SPN maar op één account staan. Staat dezelfde SPN op twee accounts, dan weet de KDC niet welke hij moet hebben en mislukt de authenticatie.
Windows kiest tussen Kerberos en NTLM via het Negotiate-mechanisme, dat Kerberos gebruikt waar het kan en anders terugvalt op NTLM. Of Kerberos kan, hangt om te beginnen af van hoe je verbindt. Via een hostnaam stelt de client een SPN samen en gebruikt hij Kerberos, via een IP-adres bestaat er geen SPN voor en valt Windows terug op NTLM. Daarnaast kun je het sturen met beleid, bijvoorbeeld door NTLM in een domein te beperken of helemaal uit te schakelen, zodat alleen Kerberos overblijft.
Een client en een domain controller mogen standaard maximaal 5 minuten uit elkaar lopen, anders mislukt de authenticatie. Daarom synchroniseren domeincomputers hun tijd met de domain controller.
Veel Active Directory-aanvallen raken Kerberos ergens. De bekendste vallen grofweg in vier groepen uiteen.
Bij Kerberoasting vraag je met een gewoon domein-account service tickets op voor accounts met een SPN. Dat ticket is versleuteld met de wachtwoord-hash van het service-account, dus een zwak service-wachtwoord kraak je offline. AS-REP roasting werkt op accounts waarbij pre-authenticatie uitstaat. Bij die accounts geeft de KDC al versleutelde data terug zonder dat je het wachtwoord hoeft te bewijzen, en ook die data kraak je offline.
Bij pass-the-ticket trek je, als je lokaal beheerder bent op een machine waar iemand is ingelogd, zijn TGT of service tickets uit het geheugen met Mimikatz of Rubeus, en injecteer je die in je eigen sessie. Bij overpass-the-hash zet je een gestolen NT-hash of AES-sleutel om in een echt TGT, en zo breng je Pass-the-Hash over naar de Kerberos-wereld.
Wie de juiste sleutel steelt, kan zelf geldige tickets maken. Een golden ticket is een zelfgemaakt TGT, ondertekend met de hash van het krbtgt-account. Omdat elk TGT met die hash wordt ondertekend, accepteert het domein zo’n vervalst ticket voor elke gebruiker en elke groep, tot Domain Admin aan toe. Je hebt de krbtgt-hash er wel voor nodig, en die heb je pas als je het domein al volledig hebt overgenomen. Een golden ticket gebruik je dus om toegang te behouden, niet om binnen te komen.
Een silver ticket is kleiner van bereik. Dat maak je met de hash van één service-account, en het geeft alleen toegang tot die ene service. Het voordeel voor de aanvaller is dat de domain controller er niets van ziet, want die komt er niet aan te pas. Diamond- en sapphire-tickets zijn varianten die een echt, door de domain controller uitgegeven ticket aanpassen in plaats van er één helemaal zelf op te bouwen, waardoor ze moeilijker te detecteren zijn.
Kerberos-delegatie laat een service namens jou bij een andere service inloggen, bijvoorbeeld een webserver die namens jou gegevens uit een database ophaalt. Krijgt een aanvaller zo’n delegatie in handen, dan vraagt hij een service ticket op voor elke gewenste gebruiker, ook domain admins, en logt daarmee bij die service in. Er zijn drie varianten, die verschillen in waar de delegatie staat ingesteld.
msDS-AllowedToDelegateTo) is de delegatie beperkt tot een paar vaste services. Wie dat account beheert, vraagt met S4U een service ticket voor elke gebruiker aan en logt zo bij die services in.msDS-AllowedToActOnBehalfOfOtherIdentity. Met schrijfrechten op een computerobject zet je daar een eigen account in, en log je op die machine in als elke gewenste gebruiker.Met BloodHound brengen wij dit soort delegatiepaden in kaart.
Relay betekent dat een aanvaller een inlogpoging die voor de ene server bedoeld is, opvangt en doorstuurt naar een andere server, om daar als het slachtoffer binnen te komen. Bij NTLM is dit een bekend en groot probleem, bekend als NTLM-relay. Bij Kerberos werkt het niet zomaar, omdat een ticket maar voor één service geldig is en op een andere server wordt geweigerd.
De route die wel werkt loopt via coercion. Je dwingt een server om naar jouw machine te authenticeren, vangt die Kerberos-authenticatie op en stuurt hem door naar bijvoorbeeld LDAP, om daar een aanvaller-account meer rechten te geven. De tool krbrelayx is hier speciaal voor gemaakt.
Zodra wij in een Active Directory pentest een geldig domein-account hebben, is Kerberos een vroege bron van bevindingen. Met NetExec halen wij in twee commando’s de hashes op voor Kerberoasting en AS-REP roasting, en kijken meteen of RC4 nog is toegestaan. Met BloodHound brengen wij onveilige delegatie en aanvalspaden naar geprivilegieerde accounts in kaart.
# AS-REP roasting: hashes van accounts zonder pre-authenticatie
nxc ldap 10.0.0.1 -u jdoe -p Password --asreproast asreproast.txt
# Kerberoasting: hashes van accounts met een SPN
nxc ldap 10.0.0.1 -u jdoe -p Password --kerberoasting kerberoast.txt
De opgehaalde hashes kraken wij daarna offline. Wat een gekraakt service-account of een delegatiepad oplevert, hangt af van de rechten erachter. In onze rapportage benoemen wij niet alleen wat wij hebben gekraakt, maar ook de onderliggende oorzaak: een service-account in een privileged group, RC4 dat nog aanstaat, of een host met unconstrained delegation. Dat is voor de meeste klanten de duurzaamste fix. Voer dit soort tests alleen uit op systemen waarvoor je expliciete, schriftelijke toestemming hebt. Zonder die toestemming is het strafbaar.
Bijna alle aanvallen hierboven misbruiken een verkeerde instelling, niet een zwakte in Kerberos zelf. Het volgende houdt ze tegen.
NTLM is het oudere Microsoft challenge-response authenticatieprotocol in Windows-netwerken. Wij tonen waar het lekt in uw AD en hoe u het kunt uitfaseren.
Lateral movement is hoe een aanvaller na de eerste inbraak van systeem naar systeem beweegt, op weg naar domain admin. Wij tonen het risico in jouw netwerk.
AS-REP roasting kraakt offline het wachtwoord van Active Directory-accounts waarbij Kerberos-pre-authenticatie uitstaat. Vaak zonder dat je hoeft in te loggen.