Use Alternate Authentication Material: Pass the Ticket

Adversaries may "pass the ticket" using stolen Kerberos tickets to move laterally within an environment, bypassing normal system access controls. Pass the ticket (PtT) is a method of authenticating to a system using Kerberos tickets without having access to an account's password. Kerberos authentication can be used as the first step to lateral movement to a remote system.

When preforming PtT, valid Kerberos tickets for Valid Accounts are captured by OS Credential Dumping. A user's service tickets or ticket granting ticket (TGT) may be obtained, depending on the level of access. A service ticket allows for access to a particular resource, whereas a TGT can be used to request service tickets from the Ticket Granting Service (TGS) to access any resource the user has privileges to access.[1][2]

A Silver Ticket can be obtained for services that use Kerberos as an authentication mechanism and are used to generate tickets to access that particular resource and the system that hosts the resource (e.g., SharePoint).[1]

A Golden Ticket can be obtained for the domain using the Key Distribution Service account KRBTGT account NTLM hash, which enables generation of TGTs for any account in Active Directory.[3]

Adversaries may also create a valid Kerberos ticket using other user information, such as stolen password hashes or AES keys. For example, "overpassing the hash" involves using a NTLM password hash to authenticate as a user (i.e. Pass the Hash) while also using the password hash to create a valid Kerberos ticket.[4]

ID: T1550.003
Sub-technique of:  T1550
Platforms: Windows
System Requirements: Kerberos authentication enabled
Defense Bypassed: System Access Controls
CAPEC ID: CAPEC-645
Contributors: Ryan Becwar; Vincent Le Toux
Version: 1.1
Created: 30 January 2020
Last Modified: 31 August 2021

Procedure Examples

ID Name Description
G0016 APT29

APT29 used Kerberos ticket attacks for lateral movement.[5]

G0050 APT32

APT32 successfully gained remote access by using pass the ticket.[6]

G0060 BRONZE BUTLER

BRONZE BUTLER has created forged Kerberos Ticket Granting Ticket (TGT) and Ticket Granting Service (TGS) tickets to maintain administrative access.[7]

S0002 Mimikatz

Mimikatz’s LSADUMP::DCSync and KERBEROS::PTT modules implement the three steps required to extract the krbtgt account hash and create/use Kerberos tickets.[8][9][10][11]

S0192 Pupy

Pupy can also perform pass-the-ticket.[12]

S0053 SeaDuke

Some SeaDuke samples have a module to use pass the ticket with Kerberos for authentication.[13]

Mitigations

ID Mitigation Description
M1015 Active Directory Configuration

To contain the impact of a previously generated golden ticket, reset the built-in KRBTGT account password twice, which will invalidate any existing golden tickets that have been created with the KRBTGT hash and other Kerberos tickets derived from it.[14] For each domain, change the KRBTGT account password once, force replication, and then change the password a second time. Consider rotating the KRBTGT account password every 180 days.[15]

M1027 Password Policies

Ensure that local administrator accounts have complex, unique passwords.

M1026 Privileged Account Management

Limit domain admin account permissions to domain controllers and limited servers. Delegate other admin functions to separate accounts.[1]

M1018 User Account Management

Do not allow a user to be a local administrator for multiple systems.

Detection

ID Data Source Data Component
DS0026 Active Directory Active Directory Credential Request
DS0028 Logon Session Logon Session Creation
DS0002 User Account User Account Authentication

Audit all Kerberos authentication and credential use events and review for discrepancies. Unusual remote authentication events that correlate with other suspicious activity (such as writing and executing binaries) may indicate malicious activity.

Event ID 4769 is generated on the Domain Controller when using a golden ticket after the KRBTGT password has been reset twice, as mentioned in the mitigation section. The status code 0x1F indicates the action has failed due to "Integrity check on decrypted field failed" and indicates misuse by a previously invalidated golden ticket.[16]

References