Detection rules › Splunk
Suspicious Kerberos Service Ticket Request
The following analytic detects suspicious Kerberos Service Ticket (TGS) requests where the requesting account name matches the service name, potentially indicating an exploitation attempt of CVE-2021-42278 and CVE-2021-42287. This detection leverages Event ID 4769 from Domain Controller and Kerberos events. Such activity is significant as it may represent an adversary attempting to escalate privileges by impersonating a domain controller. If confirmed malicious, this could allow an attacker to take control of the domain controller, leading to complete domain compromise and unauthorized access to sensitive information.
Known false positives
- We have tested this detection logic with ~2 million 4769 events and did not identify false positives. However, they may be possible in certain environments. Filter as needed.
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Initial Access | |
| Persistence | |
| Privilege Escalation | |
| Stealth |
Telemetry coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4769: A Kerberos service ticket was requested. |
Rule body
name: Suspicious Kerberos Service Ticket Request
id: 8b1297bc-6204-11ec-b7c4-acde48001122
version: 12
creation_date: '2021-12-20'
modification_date: '2026-05-13'
author: Mauricio Velazco, Splunk
status: production
type: TTP
description: The following analytic detects suspicious Kerberos Service Ticket (TGS) requests where the requesting account name matches the service name, potentially indicating an exploitation attempt of CVE-2021-42278 and CVE-2021-42287. This detection leverages Event ID 4769 from Domain Controller and Kerberos events. Such activity is significant as it may represent an adversary attempting to escalate privileges by impersonating a domain controller. If confirmed malicious, this could allow an attacker to take control of the domain controller, leading to complete domain compromise and unauthorized access to sensitive information.
data_source:
- Windows Event Log Security 4769
search: |-
`wineventlog_security` EventCode=4769
| eval isSuspicious = if(lower(ServiceName) = lower(mvindex(split(TargetUserName,"@"),0)),1,0)
| where isSuspicious = 1
| rename Computer as dest
| rename TargetUserName as user
| table _time, dest, src_ip, user, ServiceName, Error_Code, isSuspicious
| `suspicious_kerberos_service_ticket_request_filter`
how_to_implement: To successfully implement this search, you need to be ingesting Domain Controller and Kerberos events. The Advanced Security Audit policy setting `Audit Kerberos Authentication Service` within `Account Logon` needs to be enabled.
known_false_positives: We have tested this detection logic with ~2 million 4769 events and did not identify false positives. However, they may be possible in certain environments. Filter as needed.
references:
- https://exploit.ph/cve-2021-42287-cve-2021-42278-weaponisation.html
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-42278
- https://msrc.microsoft.com/update-guide/vulnerability/CVE-2021-42287
- https://docs.microsoft.com/en-us/openspecs/windows_protocols/ms-sfu/02636893-7a1f-4357-af9a-b672e3e3de13
finding:
title: A suspicious Kerberos Service Ticket was requested by $user$ on host $dest$
entity:
field: dest
type: system
score: 50
analytic_story:
- sAMAccountName Spoofing and Domain Controller Impersonation
- Active Directory Kerberos Attacks
- Active Directory Privilege Escalation
asset_type: Endpoint
cve:
- CVE-2021-42287
- CVE-2021-42278
mitre_attack_id:
- T1078.002
product:
- Splunk Enterprise
- Splunk Enterprise Security
- Splunk Cloud
category: endpoint
security_domain: endpoint
Stages and Predicates
Stage 1: search
`wineventlog_security` EventCode=4769
Stage 2: eval
| eval isSuspicious = if(lower(ServiceName) = lower(mvindex(split(TargetUserName,"@"),0)),1,0)
isSuspicious =if
lower(ServiceName) = lower(mvindex(<FUNCTION:split>, 0))1else
0Stage 3: where
| where isSuspicious = 1
Stage 4: rename
| rename Computer as dest
Stage 5: rename
| rename TargetUserName as user
Stage 6: table
| table _time, dest, src_ip, user, ServiceName, Error_Code, isSuspicious
Stage 7: search
| `suspicious_kerberos_service_ticket_request_filter`
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
EventCode | eq |
| field:"EventID" kind:eq value:"4769" |
isSuspicious | eq |
| field:"isSuspicious" kind:eq value:"1" |