Kerberoasting
Configuring
Login to
DC01
with theAdministrator
user and the passwordWelcome01!
.Open PowerShell as administrator and execute the following commands to create a user with the name
sa_admin
and set a SPN for it:
3. Execute the following command to make the user Enterprise Admin
and Domain Admin
:
Attacking
How it works
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.
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). 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
Tools
Executing the attack
Use the discovered credentials
john
and passwordWelcome2022!
with GetUserSPNs.py from Impacket to Kerberoast all roastable users.
2. We retrieved one hash. Lets crack it with Hashcat. The parameters are:
Crackingmode:
-a 0
for using a wordlistHashmode:
-m 18200
for Kerberos 5, etype 23, AS-REPList with hashes:
kerberoasting.txt
Passwords list:
passwords.txt
Rule list:
-r rules.rule
We successfully cracked the password of the user sa_admin
, the password is Welcome123456!
Defending
Recommendations
Limit the privileges of Service Accounts.
Use strong passwords (at least 32 characters) on service accounts.
Detection
References
Last updated