Steal or Forge Kerberos Tickets: Kerberoasting

Adversaries may abuse a valid Kerberos ticket-granting ticket (TGT) or sniff network traffic to obtain a ticket-granting service (TGS) ticket that may be vulnerable to Brute Force.[1][2]

Service principal names (SPNs) are used to uniquely identify each instance of a Windows service. To enable authentication, Kerberos requires that SPNs be associated with at least one service logon account (an account specifically tasked with running a service[3]).[4][5][6][7]

Adversaries possessing a valid Kerberos ticket-granting ticket (TGT) may request one or more Kerberos ticket-granting service (TGS) service tickets for any SPN from a domain controller (DC).[1][2] Portions of these tickets may be encrypted with the RC4 algorithm, meaning the Kerberos 5 TGS-REP etype 23 hash of the service account associated with the SPN is used as the private key and is thus vulnerable to offline Brute Force attacks that may expose plaintext credentials.[2][1] [7]

This same behavior could be executed using service tickets captured from network traffic.[2]

Cracked hashes may enable Persistence, Privilege Escalation, and Lateral Movement via access to Valid Accounts.[6]

ID: T1558.003
Sub-technique of:  T1558
Platforms: Windows
System Requirements: Valid domain account or the ability to sniff traffic within a domain
Contributors: Praetorian
Version: 1.2
Created: 11 February 2020
Last Modified: 23 September 2024

Procedure Examples

ID Name Description
S1063 Brute Ratel C4

Brute Ratel C4 can decode Kerberos 5 tickets and convert it to hashcat format for subsequent cracking.[8]

S0363 Empire

Empire uses PowerSploit's Invoke-Kerberoast to request service tickets and return crackable ticket hashes.[9]

G0046 FIN7

FIN7 has used Kerberoasting PowerShell commands such as, Invoke-Kerberoast for credential access and to enable lateral movement.[10][11]

S0357 Impacket

Impacket modules like GetUserSPNs can be used to get Service Principal Names (SPNs) for user accounts. The output is formatted to be compatible with cracking tools like John the Ripper and Hashcat.[12]

G0119 Indrik Spider

Indrik Spider has conducted Kerberoasting attacks using a module from GitHub.[13]

C0014 Operation Wocao

During Operation Wocao, threat actors used PowerSploit's Invoke-Kerberoast module to request encrypted service tickets and bruteforce the passwords of Windows service accounts offline.[14]

S0194 PowerSploit

PowerSploit's Invoke-Kerberoast module can request service tickets and return crackable ticket hashes.[15][7]

S1071 Rubeus

Rubeus can use the KerberosRequestorSecurityToken.GetRequest method to request kerberoastable service tickets.[16]

S0692 SILENTTRINITY

SILENTTRINITY contains a module to conduct Kerberoasting.[17]

C0024 SolarWinds Compromise

During the SolarWinds Compromise, APT29 obtained Ticket Granting Service (TGS) tickets for Active Directory Service Principle Names to crack offline.[18]

G0102 Wizard Spider

Wizard Spider has used Rubeus, MimiKatz Kerberos module, and the Invoke-Kerberoast cmdlet to steal AES hashes.[19][20][21][22][23]

Mitigations

ID Mitigation Description
M1041 Encrypt Sensitive Information

Enable AES Kerberos encryption (or another stronger encryption algorithm), rather than RC4, where possible.[2]

M1027 Password Policies

Ensure strong password length (ideally 25+ characters) and complexity for service accounts and that these passwords periodically expire.[2] Also consider using Group Managed Service Accounts or another third party product such as password vaulting.[2]

M1026 Privileged Account Management

Limit service accounts to minimal required privileges, including membership in privileged groups such as Domain Administrators.[2]

Detection

ID Data Source Data Component Detects
DS0026 Active Directory Active Directory Credential Request

Monitor for anomalous Kerberos activity, such as enabling Audit Kerberos Service Ticket Operations to log Kerberos TGS service ticket requests. Particularly investigate irregular patterns of activity (ex: accounts making numerous requests, Event ID 4769, within a small time frame, especially if they also request RC4 encryption [Type 0x17]).

References