In kerberoasting , User request service ticket for any service with registered SPN then use the ticket to crack service password. But in kerberoses authentication process , KRB_TGS_REQ request is encrypted with TGS secret key which is held by KDC(Ticket Granting Server ) .

I hope i am correct till now .

Question - How an attacker send the KRB_TGS_REQ request to KDC(Ticket Granting Server ).

1- Is it not encrypted if not then why will KDC(Ticket Granting Server ) will return Service ticket because it is not encrypted

2- If yes it is encrypted , then how and with which key it is encrypted.

3- Does he perform the whole kerberos authentication process from start , if yes then why he need to extract service password because when authentication completes he will anyway get access to that service .

1 Answer 1


In Kerberos, anyone can request a ticket-granting ticket (TGT) from the server, and the server will respond with a ticket if the user exists. The request is in cleartext, and the resulting ticket is composed of two parts: a session key, which is encrypted with the hash of the user's password, and the TGT, which is encrypted with the session key.

If the user's password is insecure, then an attacker can brute-force the password and then discover the session key, and then decrypt the TGT. This can be done offline.

A Kerberoasting attack is simply an attack in which the attacker compromises an ordinary user account, and then uses that user account to request service tickets. If the service account also uses static, insecure passwords, then it's possible to attack them offline and compromise the service by brute-forcing the password. Because services often have access to other services, this is a good way to gain additional privileges. It's essentially a way to gain additional access once a compromise has already occurred.

This attack mostly happens against Active Directory systems because typically systems using MIT Kerberos have static, but cryptographically secure keys which are deployed directly to the service machine. Thus, because the service secret contains sufficient entropy, it's computationally infeasible to brute force. You could gain the same benefits with Active Directory by making sure all service principals use passwords with sufficient entropy. For example, the hex-encoded SHA-256 hash of sufficient CSPRNG output would be a good password. Since it's only being used by a machine and not a human, the fact that it's difficult to memorize or type isn't really a problem.

There is an article describing the idea of the Kerberoasting attack and the Wikipedia article on Kerberos describes the protocol in substantial detail.

  • Hey i didn't get my answer bro . Whenever user want to access any service it needs to have TGS ticket and TGS ticket is obtained by Ticket Granting Server by sending TGT ticket . TGT ticket is itself encrypted using Krbtgt hash(stored by TGS Server) which the user will not have access to . So how will attacker send the KRB_TGS_REQ request to KDC(Ticket Granting Server ) is it encrypted or in plain text Commented Apr 9, 2022 at 14:16
  • Anyone who can access the KDC can send a request for any TGT for any user. In a Kerberoasting attack, a given user is already compromised, and as such, the attacker can use that user's credentials and therefore get access to the TGT for that account, and therefore acquire the service ticket as if they were that user. Once they have that, they can brute force it.
    – bk2204
    Commented Apr 9, 2022 at 17:02

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .