Kerberoasting
Last updated
Was this helpful?
Last updated
Was this helpful?
Kerberoasting is an attack on the Service Ticket (ST) and Service Principal Names (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
, computer accounts, and (g)MSAs are usually resistant due to complex, long passwords.
If time sync errors occur, i.e.,
KRB_AP_ERR_SKEW(Clock skew too great)
:
Remember to clean up by removing the SPN afterward to avoid detection!
Typically, happens after compromising a domain user. However, according to , it is possible to perform this attack with an account susceptible to ASREPRoast (for an example of this check ).
We can check if an account has an SPN using .
Then we can proceed to Kerberoast the target account with or 's GetUserSPNs
.
For an example of Kerberoasting with NetExec check .
Finally, we can crack the hashes using .
We can check if an account has an SPN using or .
Then we can proceed to Kerberoast the target account with or .
For an example of Kerberoasting with Rubeus check .
Finally, we can crack the hashes on our attacking machine using .
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. This attack can be performed with .