14/10/2025

This article will explain how Kerberos works just enough to understand the risks, what attackers typically try, how to spot that activity in your logs, and, most importantly, practical steps you can take to prevent and remediate problems.

This article will explain how Kerberos works just enough to understand the risks, what attackers typically try, how to spot that activity in your logs, and, most importantly, practical steps you can take to prevent and remediate problems.

Mechanism

You don’t need to be a cryptographer to protect Kerberos - just understand the parts that attackers abuse.

  • Clients and services - users or machines (clients) want to access services (file shares, web apps, LDAP).
  • KDC (Key Distribution Center) - the domain controllers. They issue tickets. Two logical services run here:
    • AS (Authentication Service) - hands out the initial ticket (TGT) after the user proves who they are.
    • TGS (Ticket Granting Service) - gives service tickets for specific services when presented with a valid TGT.
  • TGT (Ticket Granting Ticket) - the “wristband.” Good for requesting service tickets without resending your password.
  • Service ticket - proof you can access a specific service. The KDC encrypts it with the service account’s key.
  • SPN (Service Principal Name) - the label that ties a service to an account (e.g., HTTP/www.example.local).
  • KRBTGT account - the domain account whose keys the KDC uses to sign TGTs. If an attacker gets this account’s key (hash), they can forge TGTs - the worst-case scenario.

Two practical takeaways from that: first, anything that lets an attacker crack a password offline (like pre-auth disabled or weak service account passwords) gives them quiet power. Second, stealing ticket material from a machine (memory, caches) lets attackers impersonate users without touching passwords.

TMA Solutions Kerberos design
Figure 1 Kerberos design

What the attackers will look for

Attackers tend to follow a predictable sequence because it works:

  1. Find accounts with weak or special settings: accounts with pre-auth disabled, service accounts with SPNs, or accounts that have delegation enabled.
  2. Harvest tickets or secrets: dump LSASS memory, pull NT hashes, or request service tickets for SPNs to crack offline.
  3. Use or forge tickets: present stolen tickets (pass-the-ticket), or forge them if they have the KRBTGT key (Golden Ticket) or a service account hash (Silver Ticket).
  4. Move laterally, escalate, persist: use the access gained to reach higher-value systems or create backdoors.

If you're defending, your job is to make each of those steps harder and to spot the signs when someone tries.

After an attack, there are usually traces that can be investigate to find more clues about the attack vectors to prevent future attacks. This TMA Insight article provide some extra details about Digital Forensics.

Attack patterns

Below I list each major Kerberos-related attack pattern

AS-REP roasting - the offline cracking trick

Some accounts are allowed to authenticate without “pre-authentication”. That means if you ask the KDC for an authentication response for that account, the KDC will give you a blob that you can try to crack offline to recover the account’s password. It’s like asking the bouncer for proof that a specific guest was checked and then using that to brute-force their ID at your leisure.

Why defenders should care: Attackers can quietly request these blobs without generating noisy failed login attempts. It’s an offline cracking problem - once they have the blob they don’t need to touch your network again to keep trying.

How to detect:

  • Monitor for AS requests for accounts that have “Do not require Kerberos preauthentication” set.
  • Watch for unusual spikes in AS-REQ events coming from a single host or account.

What to do about it:

  • Audit accounts with pre-auth disabled; turn pre-auth back on unless there is a documented, unavoidable dependency.
  • If you must have an account with pre-auth disabled (legacy apps, etc.), treat it like an emergency: use a very strong, long password; restrict where it can authenticate from; and document it.

Kerberoasting - crack me some service tickets

When somebody asks for a service ticket (for a service tied to a service account), the KDC hands back an encrypted blob protected by that service account’s key. An attacker can request lots of service tickets for targeted SPNs and then offline-crack those blobs to extract the service account password if it’s weak.

Why defenders should care: Service accounts often have powerful privileges or are shared across machines; a cracked service account is a fast path to escalation.

How to detect:

  • Look for a single user or computer requesting tickets for many different SPNs in a short time.
  • Baseline normal behavior and alert when a workstation is requesting tickets it usually doesn’t.

What to do about it:

  • Use gMSAs for services that support them - gMSAs remove manual passwords entirely.
  • Where gMSAs aren’t possible, enforce long, randomly generated passwords for service accounts and rotate them regularly.
  • Disable legacy algorithms like RC4 and DES at the domain level - they make ticket blobs easier to attack.
  • Keep an SPN inventory and remove forgotten or duplicate SPNs.
TMA Solutions Kerbertoasting is one of the popular attack aiming at Kerberos
Figure 2 Kerbertoasting is one of the popular attack aiming at Kerberos

Golden Ticket - the worst-case forged ticket

If someone steals the KRBTGT account hash (the master key the KDC uses), they can forge TGTs for any account and essentially impersonate anyone in your domain forever (or until you change the KRBTGT key). That’s like stealing the bouncer’s stamp and making wristbands that the doorman will accept without questioning.

Why defenders should care: It’s domain-wide compromise. It’s stealthy and gives the attacker near-total control. Detecting a Golden Ticket is hard; preventing it is vital.

How to detect:

  • Unusual authentication patterns that make no sense for that account (impossible ticket lifetimes, or accounts used from places they never used before).
  • Sudden access by administrative accounts that were dormant.
  • Watch for DCSync activity and unusual domain replication requests.

What to do about it:

  • Protect and restrict who can replicate or extract secrets from AD. Limit which accounts can perform domain replication.
  • Use tiered admin models and Privileged Access Workstations (PAWs) to reduce risk of credential theft.
  • If KRBTGT is suspected to be compromised, rotate the KRBTGT password twice (there’s a specific procedure) to invalidate forged TGTs - but plan this carefully because it can have side effects.

Silver Ticket - forged for a single service

If an attacker learns a service account’s NT hash, they can forge tickets that the service will accept - allowing them to access that specific service without talking to the KDC. It’s less dramatic than a Golden Ticket, but still serious.

Why defenders should care: It’s a stealthy way to impersonate users to specific services, and it doesn’t leave obvious traces at the KDC.

How to detect:

  • Odd behavior logged by the service: authentications where the TGS never touched the KDC, or tickets accepted with strange encryption types or lifetimes.
  • Correlate service access logs with normal KDC ticket issuance.

What to do about it:

  • Use managed accounts (gMSA) or virtual accounts so there’s no long-lived human-managed password to steal.
  • Keep service accounts isolated, use strong passwords, and rotate them when needed.
  • Harden services so they don’t accept weaker encryption types or unaudited tickets.

Defense & Mitigation

Below are concrete configuration actions you can apply in Active Directory and Windows to harden Kerberos. Short, human, and focused on settings - not timelines or SIEM rules.
To know more about SIEM TMA Insight provides you these very useful and detailed article:

Accounts & passwords

  • Re-enable Kerberos pre-auth for every user/service account unless there's a documented, unavoidable dependency. (In ADUC: Account → uncheck Do not require Kerberos preauthentication.)
  • Use gMSA / Managed Service Accounts for services that support them (creates no human-managed password to steal). Create with New-ADServiceAccount and install with Install-ADServiceAccount.
  • Enforce strong, unique passwords for any remaining service accounts; rotate them automatically where possible.


Kerberos policy & encryption

  • Allow only AES (AES128/256) encryption types: set Network security: Configure encryption types allowed for Kerberos to AES only. Remove RC4/DES.
  • Shorten ticket lifetimes (Kerberos Policy in GPO → Account Policies → Kerberos Policy): reduce Maximum lifetime for user ticket and Maximum lifetime for user ticket renewal to sensible values for your org
  • Tighten clock skew tolerance so tickets expire predictably (Maximum tolerance for computer clock synchronization).

SPNs & service accounts

  • Inventory and tidy SPNs. Remove stale/duplicate SPNs; map each SPN to one managed account. (Use setspn -L <account> or PowerShell.)
  • Avoid using privileged domain accounts for services. Prefer local virtual accounts, gMSAs, or least-privilege domain accounts.

Delegation

  • Disable unconstrained delegation everywhere. In ADUC, clear Trust this computer for delegation and Trust this user for delegation unless explicitly required.
  • Use constrained or resource-based constrained delegation (RBCD) where necessary and restrict allowed target services tightly.
  • Document and review any delegation entries quarterly.

Domain controller & KRBTGT protections

  • Restrict replication and DCSync privileges. Remove unnecessary accounts from roles that can replicate or read secrets; limit who can request directory replication.
  • Plan KRBTGT rotation only if compromise is suspected - rotate the KRBTGT password twice following Microsoft guidance to invalidate forged TGTs.

Endpoint & OS hardening

  • Enable Windows Defender Credential Guard (or equivalent) to block LSASS credential-dumping techniques on Windows 10/11 Enterprise.
  • Deploy LAPS (Local Administrator Password Solution) so local admin credentials are unique and rotated automatically.
  • Reduce local admin use: prevent privileged accounts from signing into non-trusted endpoints.

Legacy auth & NTLM

  • Disable or restrict NTLM via Group Policy (Network security: Restrict NTLM) - audit first, then block where safe.
  • Bock weak ciphers in systems and apps; update legacy applications that require RC4/DES.

Conclusion

Kerberos can feel intimidating because it touches identity, cryptography, and legacy systems. But the reality is straightforward: most real-world compromises start with credential exposure, weak service account management, or careless permissions - not some mysterious protocol flaw.

If you take a few concrete steps - inventory SPNs, fix pre-auth exceptions, adopt gMSAs and LAPS, harden endpoints, collect Kerberos telemetry, and aim to remove legacy crypto - you’ll cut the practical attack surface dramatically. Combine that with short ticket lifetimes, PAWs for administrators, and a plan to respond (including the painful but necessary KRBTGT rotation if needed), and you’ll have a resilient posture.

TMA Solutions provide security testing and pen testing service, which will audit and make sure your organization is safe from kerberos-based attack.

TMA Solutions
Author: TMA Solutions
Table Of Content
Mechanism
What the attackers will look for
Attack patterns
AS-REP roasting - the offline cracking trick
Kerberoasting - crack me some service tickets
Golden Ticket - the worst-case forged ticket
Silver Ticket - forged for a single service
Defense & Mitigation
Accounts & passwords
Kerberos policy & encryption
SPNs & service accounts
Delegation
Domain controller & KRBTGT protections
Endpoint & OS hardening
Legacy auth & NTLM
Conclusion
Start your project today!
Contact Us
Start your project today!
Contact Us
decor

Contact Us

Share with us your challenges. We are here to support.

Name *
Email *
Company *
Websites
Country *
United States
AndorraAndorra
United Arab EmiratesUnited Arab Emirates
AfghanistanAfghanistan
Antigua and BarbudaAntigua and Barbuda
AnguillaAnguilla
AlbaniaAlbania
ArmeniaArmenia
AngolaAngola
ArgentinaArgentina
AustriaAustria
AustraliaAustralia
ArubaAruba
Åland IslandsÅland Islands
AzerbaijanAzerbaijan
Bosnia and HerzegovinaBosnia and Herzegovina
BarbadosBarbados
BangladeshBangladesh
BelgiumBelgium
Burkina FasoBurkina Faso
BulgariaBulgaria
BahrainBahrain
BurundiBurundi
BeninBenin
BermudaBermuda
Brunei DarussalamBrunei Darussalam
BoliviaBolivia
BrazilBrazil
BahamasBahamas
BhutanBhutan
BotswanaBotswana
BelarusBelarus
BelizeBelize
CanadaCanada
Congo, Democratic Republic of theCongo, Democratic Republic of the
Central African RepublicCentral African Republic
CongoCongo
SwitzerlandSwitzerland
Cote d'IvoireCote d'Ivoire
ChileChile
CameroonCameroon
ChinaChina
ColombiaColombia
Costa RicaCosta Rica
CubaCuba
Cape VerdeCape Verde
CyprusCyprus
Czech RepublicCzech Republic
GermanyGermany
DjiboutiDjibouti
DenmarkDenmark
DominicaDominica
Dominican RepublicDominican Republic
AlgeriaAlgeria
EcuadorEcuador
EstoniaEstonia
EgyptEgypt
EritreaEritrea
SpainSpain
EthiopiaEthiopia
FinlandFinland
FijiFiji
Falkland IslandsFalkland Islands
Federated States of MicronesiaFederated States of Micronesia
FranceFrance
GabonGabon
United KingdomUnited Kingdom
GrenadaGrenada
GeorgiaGeorgia
GuernseyGuernsey
GhanaGhana
GibraltarGibraltar
GambiaGambia
GuineaGuinea
Equatorial GuineaEquatorial Guinea
GreeceGreece
GuatemalaGuatemala
Guinea-BissauGuinea-Bissau
GuyanaGuyana
Hong KongHong Kong
HondurasHonduras
CroatiaCroatia
HaitiHaiti
HungaryHungary
IndonesiaIndonesia
IrelandIreland
IsraelIsrael
Isle of ManIsle of Man
IndiaIndia
IraqIraq
IranIran
IcelandIceland
ItalyItaly
JerseyJersey
JamaicaJamaica
JordanJordan
JapanJapan
KenyaKenya
KyrgyzstanKyrgyzstan
CambodiaCambodia
ComorosComoros
Saint Kitts and NevisSaint Kitts and Nevis
North KoreaNorth Korea
South KoreaSouth Korea
KuwaitKuwait
Cayman IslandsCayman Islands
KazakhstanKazakhstan
LaosLaos
LebanonLebanon
Saint LuciaSaint Lucia
LiechtensteinLiechtenstein
Sri LankaSri Lanka
LiberiaLiberia
LesothoLesotho
LithuaniaLithuania
LuxembourgLuxembourg
LatviaLatvia
LibyaLibya
MoroccoMorocco
MonacoMonaco
MoldovaMoldova
MontenegroMontenegro
MadagascarMadagascar
North MacedoniaNorth Macedonia
MaliMali
BurmaBurma
MongoliaMongolia
MacaoMacao
MauritaniaMauritania
MontserratMontserrat
MaltaMalta
MauritiusMauritius
MaldivesMaldives
MalawiMalawi
MexicoMexico
MalaysiaMalaysia
MozambiqueMozambique
NamibiaNamibia
NigerNiger
NigeriaNigeria
NicaraguaNicaragua
NetherlandsNetherlands
NepalNepal
New ZealandNew Zealand
OmanOman
PanamaPanama
PeruPeru
French PolynesiaFrench Polynesia
Papua New GuineaPapua New Guinea
PhilippinesPhilippines
PakistanPakistan
PolandPoland
Puerto RicoPuerto Rico
PortugalPortugal
PalauPalau
ParaguayParaguay
QatarQatar
RomaniaRomania
SerbiaSerbia
RussiaRussia
RwandaRwanda
Saudi ArabiaSaudi Arabia
Solomon IslandsSolomon Islands
SeychellesSeychelles
SudanSudan
SwedenSweden
SingaporeSingapore
SloveniaSlovenia
SlovakiaSlovakia
Sierra LeoneSierra Leone
San MarinoSan Marino
SenegalSenegal
SomaliaSomalia
SurinameSuriname
Sao Tome and PrincipeSao Tome and Principe
El SalvadorEl Salvador
SyriaSyria
SwazilandSwaziland
Turks and Caicos IslandsTurks and Caicos Islands
ChadChad
TogoTogo
ThailandThailand
TajikistanTajikistan
Timor-LesteTimor-Leste
TurkmenistanTurkmenistan
TunisiaTunisia
TongaTonga
TurkeyTurkey
Trinidad and TobagoTrinidad and Tobago
TaiwanTaiwan
TanzaniaTanzania
UkraineUkraine
UgandaUganda
United StatesUnited States
UruguayUruguay
UzbekistanUzbekistan
Saint Vincent and the GrenadinesSaint Vincent and the Grenadines
VenezuelaVenezuela
Virgin Islands, BritishVirgin Islands, British
VietnamVietnam
VanuatuVanuatu
SamoaSamoa
YemenYemen
South AfricaSouth Africa
ZambiaZambia
ZimbabweZimbabwe
Phone
(+1)

Andorra Andorra(+376)
United Arab Emirates United Arab Emirates(+971)
Afghanistan Afghanistan(+93)
Antigua and Barbuda Antigua and Barbuda(+1 268)
Anguilla Anguilla(+1 264)
Albania Albania(+355)
Armenia Armenia(+374)
Angola Angola(+244)
Argentina Argentina(+54)
Austria Austria(+43)
Australia Australia(+61)
Aruba Aruba(+297)
Åland Islands Åland Islands(+358)
Azerbaijan Azerbaijan(+994)
Bosnia and Herzegovina Bosnia and Herzegovina(+387)
Barbados Barbados(+1 246)
Bangladesh Bangladesh(+880)
Belgium Belgium(+32)
Burkina Faso Burkina Faso(+226)
Bulgaria Bulgaria(+359)
Bahrain Bahrain(+973)
Burundi Burundi(+257)
Benin Benin(+229)
Bermuda Bermuda(+1 441)
Brunei Darussalam Brunei Darussalam(+673)
Bolivia Bolivia(+591)
Brazil Brazil(+55)
Bahamas Bahamas(+1 242)
Bhutan Bhutan(+975)
Botswana Botswana(+267)
Belarus Belarus(+375)
Belize Belize(+501)
Canada Canada(+1)
Congo, Democratic Republic of the Congo, Democratic Republic of the(+243)
Central African Republic Central African Republic(+236)
Congo Congo(+242)
Switzerland Switzerland(+41)
Cote d'Ivoire Cote d'Ivoire(+225)
Chile Chile(+56)
Cameroon Cameroon(+237)
China China(+86)
Colombia Colombia(+57)
Costa Rica Costa Rica(+506)
Cuba Cuba(+53)
Cape Verde Cape Verde(+238)
Cyprus Cyprus(+357)
Czech Republic Czech Republic(+420)
Germany Germany(+49)
Djibouti Djibouti(+253)
Denmark Denmark(+45)
Dominica Dominica(+1 767)
Dominican Republic Dominican Republic(+1 809)
Algeria Algeria(+213)
Ecuador Ecuador(+593)
Estonia Estonia(+372)
Egypt Egypt(+20)
Eritrea Eritrea(+291)
Spain Spain(+34)
Ethiopia Ethiopia(+251)
Finland Finland(+358)
Fiji Fiji(+679)
Falkland Islands Falkland Islands(+500)
Federated States of Micronesia Federated States of Micronesia(+691)
France France(+33)
Gabon Gabon(+241)
United Kingdom United Kingdom(+44)
Grenada Grenada(+1 473)
Georgia Georgia(+995)
Guernsey Guernsey(+44)
Ghana Ghana(+233)
Gibraltar Gibraltar(+350)
Gambia Gambia(+220)
Guinea Guinea(+224)
Equatorial Guinea Equatorial Guinea(+240)
Greece Greece(+30)
Guatemala Guatemala(+502)
Guinea-Bissau Guinea-Bissau(+245)
Guyana Guyana(+592)
Hong Kong Hong Kong(+852)
Honduras Honduras(+504)
Croatia Croatia(+385)
Haiti Haiti(+509)
Hungary Hungary(+36)
Indonesia Indonesia(+62)
Ireland Ireland(+353)
Israel Israel(+972)
Isle of Man Isle of Man(+44)
India India(+91)
Iraq Iraq(+964)
Iran Iran(+98)
Iceland Iceland(+354)
Italy Italy(+39)
Jersey Jersey(+44)
Jamaica Jamaica(+1 876)
Jordan Jordan(+962)
Japan Japan(+81)
Kenya Kenya(+254)
Kyrgyzstan Kyrgyzstan(+996)
Cambodia Cambodia(+855)
Comoros Comoros(+269)
Saint Kitts and Nevis Saint Kitts and Nevis(+1 869)
North Korea North Korea(+850)
South Korea South Korea(+82)
Kuwait Kuwait(+965)
Cayman Islands Cayman Islands(+1 345)
Kazakhstan Kazakhstan(+7)
Laos Laos(+856)
Lebanon Lebanon(+961)
Saint Lucia Saint Lucia(+1 758)
Liechtenstein Liechtenstein(+423)
Sri Lanka Sri Lanka(+94)
Liberia Liberia(+231)
Lesotho Lesotho(+266)
Lithuania Lithuania(+370)
Luxembourg Luxembourg(+352)
Latvia Latvia(+371)
Libya Libya(+218)
Morocco Morocco(+212)
Monaco Monaco(+377)
Moldova Moldova(+373)
Montenegro Montenegro(+382)
Madagascar Madagascar(+261)
North Macedonia North Macedonia(+389)
Mali Mali(+223)
Burma Burma(+95)
Mongolia Mongolia(+976)
Macao Macao(+853)
Mauritania Mauritania(+222)
Montserrat Montserrat(+1 664)
Malta Malta(+356)
Mauritius Mauritius(+230)
Maldives Maldives(+960)
Malawi Malawi(+265)
Mexico Mexico(+52)
Malaysia Malaysia(+60)
Mozambique Mozambique(+258)
Namibia Namibia(+264)
Niger Niger(+227)
Nigeria Nigeria(+234)
Nicaragua Nicaragua(+505)
Netherlands Netherlands(+31)
Nepal Nepal(+977)
New Zealand New Zealand(+64)
Oman Oman(+968)
Panama Panama(+507)
Peru Peru(+51)
French Polynesia French Polynesia(+689)
Papua New Guinea Papua New Guinea(+675)
Philippines Philippines(+63)
Pakistan Pakistan(+92)
Poland Poland(+48)
Puerto Rico Puerto Rico(+1 787)
Portugal Portugal(+351)
Palau Palau(+680)
Paraguay Paraguay(+595)
Qatar Qatar(+974)
Romania Romania(+40)
Serbia Serbia(+381)
Russia Russia(+7)
Rwanda Rwanda(+250)
Saudi Arabia Saudi Arabia(+966)
Solomon Islands Solomon Islands(+677)
Seychelles Seychelles(+248)
Sudan Sudan(+249)
Sweden Sweden(+46)
Singapore Singapore(+65)
Slovenia Slovenia(+386)
Slovakia Slovakia(+421)
Sierra Leone Sierra Leone(+232)
San Marino San Marino(+378)
Senegal Senegal(+221)
Somalia Somalia(+252)
Suriname Suriname(+597)
Sao Tome and Principe Sao Tome and Principe(+239)
El Salvador El Salvador(+503)
Syria Syria(+963)
Swaziland Swaziland(+268)
Turks and Caicos Islands Turks and Caicos Islands(+1 649)
Chad Chad(+235)
Togo Togo(+228)
Thailand Thailand(+66)
Tajikistan Tajikistan(+992)
Timor-Leste Timor-Leste(+670)
Turkmenistan Turkmenistan(+993)
Tunisia Tunisia(+216)
Tonga Tonga(+676)
Turkey Turkey(+90)
Trinidad and Tobago Trinidad and Tobago(+1 868)
Taiwan Taiwan(+886)
Tanzania Tanzania(+255)
Ukraine Ukraine(+380)
Uganda Uganda(+256)
United States United States(+1)
Uruguay Uruguay(+598)
Uzbekistan Uzbekistan(+998)
Saint Vincent and the Grenadines Saint Vincent and the Grenadines(+1 784)
Venezuela Venezuela(+58)
Virgin Islands, British Virgin Islands, British(+1 284)
Vietnam Vietnam(+84)
Vanuatu Vanuatu(+678)
Samoa Samoa(+685)
Yemen Yemen(+967)
South Africa South Africa(+27)
Zambia Zambia(+260)
Zimbabwe Zimbabwe(+263)
Enquiry *
Check out our Privacy Policy to learn more about how we handle your personal data.
* Required fields
decor banner Left

Others