T1558.004 Sumo Logic CSE · Sumo

Detect AS-REP Roasting in Sumo Logic CSE

Adversaries may reveal credentials of accounts that have disabled Kerberos preauthentication by password cracking Kerberos AS-REP messages. When preauthentication is disabled on an account (userAccountControl flag DONT_REQ_PREAUTH), an attacker can send an AS-REQ message without an encrypted timestamp and receive an AS-REP response containing a TGT encrypted with the target account's password hash. This encrypted blob can be taken offline and cracked with tools like Hashcat or John the Ripper. The attack is commonly executed with Rubeus (asreproast module) or Impacket's GetNPUsers.py. Unlike Kerberoasting, AS-REP Roasting does not require a valid domain account to initiate — an unauthenticated attacker can send AS-REQ messages directly to the KDC. Successfully cracked credentials enable persistence, privilege escalation, and lateral movement via valid account access.

MITRE ATT&CK

Tactic
Credential Access
Technique
T1558 Steal or Forge Kerberos Tickets
Sub-technique
T1558.004 AS-REP Roasting
Canonical reference
https://attack.mitre.org/techniques/T1558/004/

Sumo Detection Query

Sumo Logic CSE (Sumo)
sql
// Detection 1: AS-REP Roasting via Event 4768 — No Preauthentication
_sourceCategory=windows/security
| where EventCode = "4768"
| parse "<Data Name='TargetUserName'>*</Data>" as TargetUserName nodrop
| parse "<Data Name='TargetDomainName'>*</Data>" as TargetDomainName nodrop
| parse "<Data Name='TicketEncryptionType'>*</Data>" as TicketEncryptionType nodrop
| parse "<Data Name='PreAuthType'>*</Data>" as PreAuthType nodrop
| parse "<Data Name='IpAddress'>*</Data>" as IpAddress nodrop
| parse "<Data Name='IpPort'>*</Data>" as IpPort nodrop
| parse "<Data Name='Status'>*</Data>" as Status nodrop
| parse "<Data Name='TicketOptions'>*</Data>" as TicketOptions nodrop
| where PreAuthType = "0" or PreAuthType = "0x0"
| where TargetUserName != ""
| where !matches(TargetUserName, "*$")
| eval EncryptionLabel = if(TicketEncryptionType = "0x17" or TicketEncryptionType = "23", "RC4-HMAC (crackable)",
    if(TicketEncryptionType = "0x18" or TicketEncryptionType = "24", "RC4-HMAC-EXP (crackable)",
    if(TicketEncryptionType = "0x12" or TicketEncryptionType = "18", "AES256-CTS (crackable offline)",
    if(TicketEncryptionType = "0x11" or TicketEncryptionType = "17", "AES128-CTS", "Unknown"))))
| eval WeakEncryption = if(TicketEncryptionType = "0x17" or TicketEncryptionType = "23" or TicketEncryptionType = "0x18" or TicketEncryptionType = "24", "true", "false")
| eval SeverityScore = if(WeakEncryption = "true", 2, 1)
| fields _messageTime, _sourceHost, TargetUserName, TargetDomainName, IpAddress, IpPort, PreAuthType, EncryptionLabel, WeakEncryption, Status, SeverityScore
| sort by _messageTime desc

// Detection 2: Bulk Enumeration — 3+ Unique Accounts from Same IP in 10-Minute Timeslice
// _sourceCategory=windows/security
// | where EventCode = "4768"
// | parse "<Data Name='TargetUserName'>*</Data>" as TargetUserName nodrop
// | parse "<Data Name='PreAuthType'>*</Data>" as PreAuthType nodrop
// | parse "<Data Name='IpAddress'>*</Data>" as IpAddress nodrop
// | where PreAuthType = "0" or PreAuthType = "0x0"
// | where !matches(TargetUserName, "*$")
// | timeslice 10m
// | count_distinct(TargetUserName) as AccountsRoasted, values(TargetUserName) as Accounts by _timeslice, IpAddress
// | where AccountsRoasted >= 3
// | sort by AccountsRoasted desc
high severity high confidence

Detects AS-REP Roasting in Sumo Logic by parsing Windows Security Event 4768 XML event data fields using the parse operator, filtering on PreAuthType=0 (DONT_REQ_PREAUTH flag), excluding machine accounts, and labelling encryption types to surface RC4-based requests most suitable for offline cracking. Includes bulk enumeration variant using timeslice and count_distinct aggregation. Requires Windows Security events forwarded to Sumo Logic with _sourceCategory=windows/security.

Data Sources

Sumo Logic Installed Collector with Windows Event Log Source (Security log)Sumo Logic OpenTelemetry Collector for WindowsWindows Event Log forwarded via Sumo Logic Cloud-to-Cloud integration

Required Tables

_sourceCategory=windows/security (Windows Security Event Log)

False Positives & Tuning

  • Enterprise applications (SAP, Oracle, legacy IBM products) that require preauthentication to be disabled on service accounts for compatibility with non-Windows Kerberos clients — these generate consistent single-account events from known application server hostnames
  • Unix/Linux or macOS hosts joined to Active Directory using SSSD or Winbind, where the AD account used for binding has DONT_REQ_PREAUTH set as a configuration requirement
  • Scheduled CI/CD or automation pipelines that authenticate sequentially against multiple AD service accounts with preauthentication disabled, appearing as high-frequency events from a single pipeline server IP
Download portable Sigma rule (.yml)

Other platforms for T1558.004


Testing Methodology

Validate this detection against 4 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 1AS-REP Roasting with Rubeus

    Expected signal: Domain Controller Security Event ID 4768 for each roasted account with PreAuthType=0x0 and TicketEncryptionType=0x17 (RC4). Source IpAddress will be the attacking machine's IP. Sysmon Event ID 1 on attacking host: Process Create for Rubeus.exe with CommandLine containing 'asreproast'. Sysmon Event ID 3: network connections from Rubeus.exe to DC port 88 (Kerberos).

  2. Test 2AS-REP Roasting with Impacket GetNPUsers.py

    Expected signal: Domain Controller Security Event ID 4768 for the target account with PreAuthType=0x0 and TicketEncryptionType=0x17. Source IpAddress will be the Linux/external attacking host's IP. No process creation event on the DC itself. If the attack originates from outside the domain, IpAddress will be a non-domain IP, which is a high-confidence indicator.

  3. Test 3PowerShell LDAP Enumeration of DONT_REQ_PREAUTH Accounts

    Expected signal: Sysmon Event ID 1: PowerShell process creation with CommandLine containing 'DoesNotRequirePreAuth' or '4194304'. Domain Controller Event ID 4662 with ObjectType containing 'user' and AccessMask 0x10 (read property) — may generate many events. PowerShell ScriptBlock Log Event ID 4104 with the LDAP filter content.

  4. Test 4Manual AS-REQ without Preauthentication via PowerShell

    Expected signal: Domain Controller Security Event ID 4768 for 'df00tech-asrep-test' with PreAuthType=0x0 and TicketEncryptionType=0x17. Security Event ID 4738 when preauthentication is disabled/re-enabled on the account. Rubeus.exe process creation (Sysmon Event ID 1) and network connection to DC port 88 (Sysmon Event ID 3).

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections