T1558 Sumo Logic CSE · Sumo

Detect Steal or Forge Kerberos Tickets in Sumo Logic CSE

Adversaries may attempt to subvert Kerberos authentication by stealing or forging Kerberos tickets to enable Pass the Ticket (T1550.003). In Active Directory environments, Kerberos is the primary authentication protocol. Adversaries exploit it through multiple sub-techniques: Kerberoasting (T1558.003) requests service tickets for accounts with SPNs using RC4 encryption for offline hash cracking; AS-REP Roasting (T1558.004) targets accounts with pre-authentication disabled to obtain crackable AS-REP responses; Golden Ticket attacks (T1558.001) use a stolen KRBTGT hash to forge TGTs granting unrestricted domain access; Silver Ticket attacks (T1558.002) forge service tickets using a service account hash for targeted service access; and Ccache file theft (T1558.005) targets Linux/macOS Kerberos credential cache files. Common offensive tools include Rubeus, Mimikatz (kerberos modules), Kekeo, and the Impacket suite (GetUserSPNs.py, GetNPUsers.py, ticketer.py). Detection leverages Windows Security Kerberos event IDs 4768, 4769, and 4771 for protocol-level anomalies such as RC4 encryption downgrade requests in AES-enforced environments, and process telemetry for offensive tool signatures.

MITRE ATT&CK

Tactic
Credential Access
Technique
T1558 Steal or Forge Kerberos Tickets
Canonical reference
https://attack.mitre.org/techniques/T1558/

Sumo Detection Query

Sumo Logic CSE (Sumo)
sql
// T1558: Steal or Forge Kerberos Tickets — Sumo Logic CSE
// Source: Windows Security Event Log + Sysmon

(_sourceCategory="*WinEventLog*" OR _sourceCategory="*windows*security*" OR _sourceCategory="*sysmon*")
| where EventCode in ("4768", "4769", "4771") or (EventCode = "1" and (
    CommandLine matches "(?i).*rubeus.*" or
    CommandLine matches "(?i).*kerberoast.*" or
    CommandLine matches "(?i).*asreproast.*" or
    CommandLine matches "(?i).*getuserspns.*" or
    CommandLine matches "(?i).*getnpusers.*" or
    CommandLine matches "(?i).*sekurlsa::tickets.*" or
    CommandLine matches "(?i).*kerberos::golden.*" or
    CommandLine matches "(?i).*kerberos::silver.*" or
    CommandLine matches "(?i).*kerberos::ptt.*" or
    CommandLine matches "(?i).*\.kirbi.*" or
    CommandLine matches "(?i).*ticketer\.py.*" or
    CommandLine matches "(?i).*tgtdeleg.*"
  )
)
| parse field=Message "Ticket Encryption Type:\t*" as TicketEncType nodrop
| parse field=Message "Service Name:\t*" as ServiceName nodrop
| parse field=Message "Pre-Authentication Type:\t*" as PreAuthType nodrop
| parse field=Message "Client Address:\t*" as ClientIP nodrop
| parse field=Message "Account Name:\t*" as AccountName nodrop
| if(isEmpty(ClientIP), src_ip, ClientIP) as ClientIP
| if(isEmpty(AccountName), user, AccountName) as AccountName
// Score each event
| eval IsKerberoasting = if(
    EventCode = "4769"
    and (TicketEncType = "0x17" or TicketEncType = "0x18")
    and !(ServiceName matches ".*\$")
    and !(ServiceName in ("krbtgt","kadmin/changepw"))
    and !(ClientIP in ("::1","127.0.0.1","-")),
    1, 0)
| eval IsASREPRoasting = if(
    EventCode = "4768"
    and (PreAuthType = "0" or PreAuthType = "0x0")
    and (TicketEncType = "0x17" or TicketEncType = "0x18"),
    1, 0)
| eval IsGoldenTicket = if(
    EventCode = "4768"
    and (TicketEncType = "0x17" or TicketEncType = "0x18")
    and !(ClientIP in ("::1","127.0.0.1","-")),
    1, 0)
| eval IsKerberosTool = if(EventCode = "1", 1, 0)
| eval TotalScore = IsKerberoasting + IsASREPRoasting + IsGoldenTicket + IsKerberosTool
| where TotalScore > 0
| eval AttackPattern = if(IsKerberosTool = 1, "Kerberos Attack Tool",
    if(IsGoldenTicket = 1 and IsASREPRoasting = 0, "Potential Golden Ticket (RC4 TGT)",
    if(IsASREPRoasting = 1, "AS-REP Roasting",
    if(IsKerberoasting = 1, "Kerberoasting", "Kerberos Anomaly"))))
| eval Severity = if(IsKerberosTool = 1 or (IsGoldenTicket = 1 and IsASREPRoasting = 0), "Critical",
    if(IsASREPRoasting = 1 or IsKerberoasting = 1, "High", "Medium"))
| fields _messageTime, _sourceHost, AccountName, ClientIP, ServiceName, TicketEncType, PreAuthType, EventCode, AttackPattern, Severity, CommandLine
| sort by _messageTime desc
critical severity high confidence

Sumo Logic query detecting T1558 Kerberos ticket theft and forging across four attack patterns: Kerberoasting (EventID 4769 with RC4 encryption), AS-REP Roasting (EventID 4768 with pre-auth disabled), Golden Ticket indicators (RC4 TGT), and Kerberos offensive tool execution via Sysmon process events. Uses Sumo Logic parse operators to extract Kerberos-specific fields from Windows event Message text and applies scoring logic to classify attack patterns.

Data Sources

Sumo Logic Windows Collection Agent (WinEventLog:Security)Sumo Logic Sysmon Collection (Sysmon Operational Log)

Required Tables

Windows Security Event Log sourceSysmon Operational source

False Positives & Tuning

  • Windows hosts running legacy software that requires RC4 (DES/RC4) Kerberos encryption will generate false positives for EventID 4769 with 0x17
  • Automated service account testing or identity governance tools that enumerate SPNs as part of access certification
  • ITSM or monitoring platforms that authenticate to AD services using legacy Kerberos configurations
  • Authorized red team exercises — correlate with change management records
Download portable Sigma rule (.yml)

Other platforms for T1558


Testing Methodology

Validate this detection against 5 adversary techniques from Atomic Red Team. Each test below lists the behaviour to exercise and the telemetry you should expect to see. Executable commands and cleanup steps are available with Pro.

  1. Test 1Kerberoasting with Rubeus — RC4 TGS Enumeration

    Expected signal: Sysmon Event ID 1: Process Create with Image ending in Rubeus.exe and CommandLine containing 'kerberoast'. Windows Security Event ID 4769 on the domain controller for each SPN enumerated, with TicketEncryptionType=0x17 and TicketOptions=0x40810000. The requesting AccountName and source IpAddress will match the test machine. Multiple 4769 events in rapid succession from the same source IP is the key burst pattern.

  2. Test 2AS-REP Roasting with Rubeus — Pre-Auth Disabled Account Hash Capture

    Expected signal: Sysmon Event ID 1: Process Create with Image ending in Rubeus.exe and CommandLine containing 'asreproast'. Windows Security Event ID 4768 on the domain controller for each targeted account, with PreAuthType=0 and TicketEncryptionType=0x17 or 0x18. Source IpAddress matches test machine.

  3. Test 3Kerberos Ticket Dump with Mimikatz

    Expected signal: Sysmon Event ID 1: Process Create with Image ending in mimikatz.exe and CommandLine containing 'sekurlsa::tickets'. Sysmon Event ID 10 (Process Access): mimikatz.exe accessing lsass.exe with GrantedAccess 0x1010 or 0x1438. Sysmon Event ID 11 (File Create): multiple .kirbi files written to the working directory. Windows Defender Event ID 1116 may fire on AMSI or signature detection.

  4. Test 4AS-REP Roasting with Impacket GetNPUsers.py (Linux/Cross-Platform)

    Expected signal: Windows Security Event ID 4768 on the targeted domain controller for each AS-REP Roastable account, with PreAuthType=0 and source IpAddress matching the Linux attacker machine. On the DC Sysmon would not capture this (it's a network event), so primary telemetry is the Security log. DNS/LDAP queries to the DC LDAP port (389/636) from the source IP visible in network logs.

  5. Test 5Kerberos Ticket Enumeration with Built-in klist

    Expected signal: Sysmon Event ID 1: Process Create with Image = C:\Windows\System32\klist.exe. Security Event ID 4688 (if command line auditing enabled) with ProcessName = klist.exe. No 4769 events are generated — klist reads from local cache only without contacting the KDC.

Unlock Pro Content

Get the full detection package for T1558 including response playbook, investigation guide, and atomic red team tests.

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections