Skip to main content

MITRE ATT&CK - Understanding Kerberos (for Golden Ticket Attack)

Kerberos = Network Authentication Protocol used by AD environments



Provides authentication by issuing tickets to authenticate users and allow them access to the services

Tickets are distibuted by KDC (Key Distribution Center), which is typically a Domain Controller (DC)

During initial authentication, a TGT (Ticket Granting Ticket) is a ticket asigned to a user by KDC.

TGT is later used to authenticate the user to the KDC in order to request a service ticket from TGS (Ticket Granting Service). Service tickets are granted for authentication against services.

List of steps / negotiations for Kerberos authentication (of the user with the service):

  1. The user requests (AS-REQ) a TGT from the KDC and the KDC verifies and validates the credentials and user information. This request if often done automatically at login.
  2. After authenticating the user, the KDC sends an encrypted TGT back to the requester (AS-REP).
  3. The user presents the TGT to the DC and requests a TGS (TGS-REQ).
  4. The TGS is encrypted and sent back to the requesting user (TGS-REP).
  5. The user connects to the server hosting the service requested and presents the TGS (AP-REQ) in order to access the service.
  6. The application server sends an (AP-REP) to the client.

Kerberos Principals - A client in the Kerberos service is identified by its principal. A principal is a unique identity to which the KDC can assign tickets. 

A principal can be a user, such as "joe" or a service such as "nfs" or "telnet"

Principal name is divided into three components = primary, instance and realm

A typical Kerberos principal would be joe/admin@ENG.EXAMPLE.COM.

1. joe = Primary. The primary can be a username as shown here or a service such as nfs. The primary can also be the word host, which signifies that this principal is a service principal that is set up to provide various network services, ftp, rcp, rlogin

2. admin is the instance. An instance is optional in the case of user principals, but it is required for service principals. For Eg. if the user joe sometimes acts as a system administrator, he can use joe/admin to distinguish himself from his usual user identity. Likewise, if joe has accounts on two different hosts, he can use two principal names with different instances, for eg, joe/denver.example.com and joe/boston.example.com. Notice that the Kerberos service treats joe and joe/admin as two completely different principals.

In case of a service principal, the instance is the FQ hostname bigmachine.eng.example.com. The primary/instance for this example might be ftp/bigmachine.eng.example.com or host/bigmachine.eng.example.com

3. ENG.EXAMPLE.COM is the Kerberos realm. Realms are discussed in Kerberos Realms.

Kerberos Realms

A realm is a logical network, similar to a domain, that defines a group of systems under the same master KDC. Some realms are hierarchical, where one realm is a superset of the other realm. Otherwise, the realms are nonhierarchical and the mapping between the two realms must be defined. A feature of the Kerberos service is that it permits authentication across realms. Each realm only needs to have a principal entry for the other realm in its KDC. This Kerberos feature is called cross-realm authentication.


Kerberos Servers

Each realm must include a server that maintains the master copy of the principal database. This server is called the master KDC server. Additionally, each realm should contain at least one slave KDC server, which contains duplicate copies of the principal database. Both the mater KDC server and the slave KDC server creates tickets that are used to establish authentication.

Comments

Popular posts from this blog

MITRE ATT&CK - Kerberos Vulnerabilities and Security

From the previous post, the summary of Kerberos authentication process is as below: For the initial authentication, the user’s client machine sends a request to the KDC  Authentication Service (AS) . The request includes details like the user’s username, and the date and time. All information except the username is encrypted using the hash of the user’s password. The KDC AS uses the username to look up its copy of the user’s password hash and uses it to decrypt the rest of the request. If the decryption is successful, that means the client used the correct password hash and the user has successfully authenticated. Once the user is authenticated, the KDC AS sends the user’s client a  ticket granting ticket   (TGT) . The TGT includes a unique session key and a timestamp that specifies how long that session is valid (normally 8 or 10 hours). Importantly, before sending the TGT, the KDC encrypts it using the password hash for a special account, the  KRBTGT account. ...

Checkpoint - Exporting Objects in CSV format

Be it a Network Operations Manager, Security Architect or a Security Auditor, the people up the hierarchy always harangue the Security Engineers to compile the list of firewall objects or rules or policies or the traffic statistics and so on.. This can turn out to be quite hectic especially if there are no built in features to systematically provide the output in a "layman-readable" format. Come, Checkpoint's "Object Explorer..."  which not only provides the output in the "layman-readable" format, but also provides in-built filtering mechanisms, thereby ensuring that the Security Engineer doesn't have to rely on Google for building his scarce Microsoft Excel data filtering skills. The following screenshots will show how easy it is, with Checkpoint R80.10 to generate the firewall configuration inventory. On the SmartConsole Unified Portal, navigate to Menu >> Open Object Explorer... Select the Categories you wish to see in your output: Click o...