Kerberoasting
OPSEC: Kerberoasting is a very silent attack; only one logged entry is created when requesting the ST (4769). There are typically thousands of those events on a DC per day.
Kerberoasting is an attack on the Service Ticket (ST) and Service Principal Names (SPNs). SPNs are unique IDs that Kerberos uses to map a service instance, for example MySQL, to a service sign-in account, such as svc_mysql, in whose, often privileged, context the service is running. The ST is encrypted with the service's account NTLM hash, so it can potentially be cracked. Any domain user can request a ST from the DC for any SPN account.
Accounts like krbtgt, machine accounts (e.g. dc01$), and (g)MSAs are usually resistant due to complex, long passwords.

Tools
Find and attack user accounts used as service accounts with Impacket:
If time sync errors occur, i.e., KRB_AP_ERR_SKEW(Clock skew too great):
OPSEC: To evade detection mechanisms that flag Kerberos encryption downgrades, like MDI, focus on service accounts that are configured to support only RC4-HMAC. Requesting a service ticket for them using RC4 appears legitimate and does not trigger downgrade alerts. In addition, try to Kerberoast a single user at a time as this is not seen as an anomaly and won't trigger alerts.
E.g. .\Rubeus.exe kerberoast /user:svcadmin /simple /rc4opsec
Find user accounts used as service accounts with Rubeus:
Execute the attack:
For an example of Kerberoasting using Rubeus see Sizzle.
Find user accounts used as service accounts with PowerView:
Execute the attack:
Optionally, we can clear the SPNs of the target account:
Find user accounts used as service accounts with the ActiveDirectory module:
The krb5tgs hashes can be cracked offline using Hashcat or JtR:
Targeted Kerberoast
If we have GenericWrite or GenericAll on a user object, we can set an SPN on that user account and then extract and crack the TGS.
OPSEC: Clean up by removing the SPN afterwards.
Set a SPN for the target user (must be unique for the forest) using PowerView or the ActiveDirectory module:
This attack can be performed with targetedKerberoast.py:
Resources
Last updated
Was this helpful?