Steal or Forge Kerberos Tickets T1558

Tactic: Credential Access

Adversaries may attempt to subvert Kerberos authentication by stealing or forging Kerberos tickets to enable Pass the Ticket. Kerberos is an authentication protocol widely used in modern Windows domain environments. In Kerberos environments, referred to as “realms”, there are three basic participants: client, service, and Key Distribution Center (KDC). Clients request access to a service and through the exchange of Kerberos tickets, originating from KDC, they are granted access after having successfully authenticated. The KDC is responsible for both authentication and ticket granting. Adversaries may attempt to abuse Kerberos by stealing tickets or forging tickets to enable unauthorized access.

Events covered

35 catalog events are tagged with this technique by at least one rule.

ProviderEventTitle
SysmonEvent ID 1Process creation
SysmonEvent ID 3Network connection
SysmonEvent ID 10ProcessAccess
SysmonEvent ID 11FileCreate
Security-AuditingEvent ID 4611A trusted logon process has been registered with the Local Security Authority.
Security-AuditingEvent ID 4624An account was successfully logged on.
Security-AuditingEvent ID 4627Group membership information.
Security-AuditingEvent ID 4649A replay attack was detected.
Security-AuditingEvent ID 4656A handle to an object was requested.
Security-AuditingEvent ID 4673A privileged service was called.
Security-AuditingEvent ID 4688A new process has been created.
Security-AuditingEvent ID 4690An attempt was made to duplicate a handle to an object.
Security-AuditingEvent ID 4697A service was installed in the system.
Security-AuditingEvent ID 4704A user right was assigned.
Security-AuditingEvent ID 4723An attempt was made to change an account's password.
Security-AuditingEvent ID 4724An attempt was made to reset an account's password.
Security-AuditingEvent ID 4738A user account was changed.
Security-AuditingEvent ID 4741A computer account was created.
Security-AuditingEvent ID 4768A Kerberos authentication ticket (TGT) was requested.
Security-AuditingEvent ID 4769A Kerberos service ticket was requested.
Security-AuditingEvent ID 5136A directory service object was modified.
Security-AuditingEvent ID 5140A network share object was accessed.
Security-AuditingEvent ID 5145A network share object was checked to see whether client can be granted desired access.
Security-AuditingEvent ID 5156The Windows Filtering Platform has permitted a connection.
Directory-Services-SAMEvent ID 16990The security account manager blocked a non-administrator from creating an Active Directory account in this domain with mismatched objectClass and u...
Directory-Services-SAMEvent ID 16991The security account manager blocked a non-administrator from creating or renaming a computer account using an invalid sAMAccountName.
Kerberos-Key-Distribution-CenterEvent ID 35The Key Distribution Center (KDC) encountered a ticket-granting-ticket (TGT) from another KDC (%1) that did not contain a PAC attributes field
Kerberos-Key-Distribution-CenterEvent ID 36The Key Distribution Center (KDC) encountered a ticket that did not contain a PAC while processing a request for another ticket
Kerberos-Key-Distribution-CenterEvent ID 37The Key Distribution Center (KDC) encountered a ticket that did not contain information about the account that requested the ticket while processing a request for another ticket
Kerberos-Key-Distribution-CenterEvent ID 38The Key Distribution Center (KDC) encountered a ticket that contained inconsistent information about the account that requested the ticket
PowerShellEvent ID 4103Payload Context: ContextInfo User Data: UserData.
PowerShellEvent ID 4104Creating Scriptblock text (MessageNumber of MessageTotal).
Security-KerberosEvent ID 16The Kerberos SSPI package failed to find the smart card certificate in the certificate store
Security-KerberosEvent ID 27Kerberos client event 27 (manifest stub).
PowerShellEvent ID 800Event ID 800

Authoring guide

Patterns shared across the 85 rules above: which fields they filter on, what specific values they look for, and what they exclude. The catalog normalizes field names across vendors so Sigma's Image, Elastic's process.name, and Splunk's process_name collapse into one row. Each rule contributes at most once per row.

Fields filtered most (87 distinct)

The fields most rules look at when detecting this technique. The How column shows the operators authors use (eq, wildcard, regex_match, match) and how often each appears. Sample values are concrete examples to start from, not an exhaustive list.

FieldRulesHowSample values
EventID25eq 254104, 4769, 4688, 4738, 4741
CommandLine14contains 10, regex_match 3, eq 1, in 1, match 1(?i)\.exe\"?\s+(((harvest|ptt|s4u|asktgt|brute|createneto..., -clsid , -cn , -computername , -cp
ScriptBlockText14contains 9, eq 3, in 1, match 1get-domainuser, kerberosrequestorsecuritytoken, system.identitymodel.tokens.kerberosrequestorsecuritytoken, -ldapfilter*(useraccountcontrol:1.2.840.113556.1.4.803:=524288), -properties*msds-allowedtodelegateto
TargetUserName10eq 7, contains 2, match 1$@, %account_allowed_proxy%, $, %allowed_S4U2Proxy_accounts%, %allowed_unconstrained_accounts%
TicketEncryptionType10eq 9, in 10x17, 0x18, 18, 23
src_ip10eq 7, ne 2, cidr_match 1%domain_controllers_ips%, ::1, 127.0.0.1, 127.0.0.0/8
Channel9eq 9, in 9
Image9ends_with 8, eq 1, is_not_null 1, starts_with 1\device\harddiskvolume, \krbrelay.exe, \krbrelayup.exe, \powershell.exe, \program files (x86)\google\chrome\application\chrome.exe
OriginalFileName9eq 9setspn.exe, klist.exe, krbrelay.exe, krbrelayup.exe, nxc.exe
ServiceName9ends_with 4, eq 3, ne 2$, *$, krbtgt, TargetUserName
Status9eq 90, 0x0
eventtype9eq 9
TicketOptions7eq 70x40810000, 0x40800000, 0x40810010, 0x10000, 0x50800000
ServiceSid6ends_with 6, wildcard 1-502, S-1-5-21-*-0
process_name6eq 4, match 1, starts_with 1(?i).lsass.exe, kcc, klist.exe, nxc.exe, python

Top indicator values (743 distinct)

Specific (field, operator, value) combinations the rules check for, ranked by how many rules under this technique use each one. The Corpus reach column counts how many rules across the entire catalog (any technique) check the same combination. High numbers point to widely-used indicators that are likely noisy on their own; combine them with another condition for useful signal. Blank means the combination is specific to rules under this technique. Click a value to expand the rules under this technique that use it.

FieldKindValueRules (here)Corpus reach
EventIDeq
4104
7268
EventIDeq
4769
610
EventIDeq
4688
3313
EventIDeq
4738
26
EventIDeq
4741
22
TicketEncryptionTypeeq
0x17
78
src_ipeq
%domain_controllers_ips%
7
ServiceSidends_with
-502
64
Statuseq
0
67
Statuseq
0x0
33
DestinationPorteq
88
45
ServiceNameends_with
$
42
TicketOptionseq
0x40810000
44
TicketOptionseq
0x40800000
22
event.categoryeq
process
4128
Codenameeq
Golden Ticket
33
CommandLineregex_match
(?i)\.exe\"?\s+(((harvest|ptt|s4u|asktgt|brute|createnetonly|changepw|hash|tg...
33
LogonTypeeq
Network
340
MessageTypeeq
2
321
AuthenticationPackageNameeq
Kerberos
25
CommandLinecontains
-clsid
22
Imageends_with
\tomcat\bin\tomcat8.exe
2
OriginalFileNameeq
setspn.exe
22
PreAuthTypeeq
0
22
Provider_Nameeq
Microsoft-Windows-Kerberos-Key-Distribution-Center
24
ScriptBlockTextcontains
get-domainuser
23
ScriptBlockTextcontains
system.identitymodel.tokens.kerberosrequestorsecuritytoken
22
ServiceNamene
*$
23
TargetUserNamecontains
$@
2
TargetUserNameeq
%account_allowed_proxy%
2

Exclusions (124 distinct)

Field/operator/value combinations excluded by rules under this technique (top-level not() clauses), sorted by how many rules exclude each. These are the false-positive paths the community has learned to filter out. A new rule that ignores the high-count entries here will likely fire on the same noisy paths. Click a value to expand the rules under this technique that exclude it.

FieldKindValueRules excluding
src_ipeq
%domain_controllers_ips%
7
src_ipeq
127.0.0.1
2
src_ipeq
::1
2
ServiceNameends_with
$
3
TargetUserNamecontains
$@
3
Imageends_with
\tomcat\bin\tomcat8.exe
2
Imagewildcard
?:\windows\system32\lsass.exe
2
ScriptBlockTexteq
sentinelbreakpoints
2
ServiceNamecontains
$
2
ServiceNamecontains
krbtgt
2
ServiceSidends_with
-502
2
TargetUserNameeq
%account_allowed_proxy%
2
user.idin
S-1-5-18
2
AlertNamecontains
0299
1
EventDatacontains
0x17
1

Rules under this technique

Every rule in the catalog tagged with this technique, grouped by vendor. Click a rule title for its full predicates, exclusions, and indicators.

Platform (all)
Domain (all)

Sigma 35 rules

Elastic 15 rules

Splunk 25 rules

Kusto 10 rules