T1558.003 IBM QRadar · QRadar

Detect Kerberoasting in IBM QRadar

Adversaries may abuse a valid Kerberos ticket-granting ticket (TGT) to request Kerberos ticket-granting service (TGS) tickets for any service principal name (SPN) registered in Active Directory. Portions of these tickets encrypted with RC4 (etype 0x17) use the service account's NTLM hash as the private key, making them vulnerable to offline brute force attacks using tools like Hashcat or John the Ripper. Cracked credentials enable persistence, privilege escalation, and lateral movement via valid domain accounts. Common tooling includes Rubeus, Invoke-Kerberoast (PowerSploit/Empire), Impacket GetUserSPNs.py, SILENTTRINITY, and Brute Ratel C4. Confirmed threat actor usage includes Wizard Spider (Ryuk ransomware campaigns), FIN7, and Indrik Spider.

MITRE ATT&CK

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

QRadar Detection Query

IBM QRadar (QRadar)
sql
SELECT
  MIN(DATEFORMAT(starttime, 'YYYY-MM-dd HH:mm:ss')) AS FirstSeen,
  MAX(DATEFORMAT(starttime, 'YYYY-MM-dd HH:mm:ss')) AS LastSeen,
  LOGSOURCENAME(logsourceid) AS DomainController,
  username AS TargetUserName,
  sourceip AS SourceIP,
  COUNT(*) AS TGSRequestCount,
  COUNT(DISTINCT "Service Name") AS UniqueServiceCount,
  CASE
    WHEN COUNT(DISTINCT "Service Name") >= 20 THEN 'Critical'
    WHEN COUNT(DISTINCT "Service Name") >= 5 THEN 'High'
    ELSE 'Medium'
  END AS AlertPriority,
  CASE
    WHEN COUNT(DISTINCT "Service Name") >= 5 THEN 'true'
    ELSE 'false'
  END AS IsBulkKerberoast
FROM events
WHERE
  devicetype = 12
  AND eventid = 4769
  AND "Ticket Encryption Type" = '0x17'
  AND username NOT LIKE '%$'
  AND "Service Name" NOT LIKE '%$'
  AND "Service Name" != 'krbtgt'
  AND starttime > NOW() - 3600000
GROUP BY username, sourceip, logsourceid
HAVING COUNT(DISTINCT "Service Name") >= 1
ORDER BY UniqueServiceCount DESC, TGSRequestCount DESC
high severity high confidence

QRadar AQL query aggregating Kerberos TGS ticket requests (Windows Security Event 4769) with RC4 encryption type (0x17) over a 1-hour rolling window. Groups by requesting user, source IP, and domain controller log source. Classifies alert priority by unique SPN count: any RC4 request = Medium, 5+ unique SPNs = High, 20+ = Critical. Requires QRadar custom event properties 'Service Name' and 'Ticket Encryption Type' to be defined and mapped in the Microsoft Windows Security Event Log DSM configuration.

Data Sources

Windows Security Event Log via QRadar WinCollect agent on Domain ControllersQRadar DSM for Microsoft Windows Security Event Log (devicetype=12)

Required Tables

events

False Positives & Tuning

  • Domain environments that have not enforced AES-only Kerberos via Group Policy will produce 4769 events with etype 0x17 for all normal service authentication — check whether AES-encrypted tickets (0x11/0x12) are also present for the same account to distinguish legitimate use from attack traffic
  • Batch processing or ETL pipeline systems using a shared service account to authenticate against many database, messaging, or application server SPNs during overnight processing windows
  • Third-party monitoring platforms (e.g. SolarWinds, Nagios XI with Active Directory plugins) configured with legacy RC4 cipher preference that enumerate Kerberos services during periodic discovery or health-check cycles
Download portable Sigma rule (.yml)

Other platforms for T1558.003


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 1Invoke-Kerberoast via PowerSploit — Bulk Hash Extraction

    Expected signal: Domain Controller Security Event ID 4769 for each SPN enumerated with TicketEncryptionType=0x17. Sysmon Event ID 1 on source host: powershell.exe with 'Invoke-Kerberoast' in CommandLine. Sysmon Event ID 3: TCP connection to DC on port 88 (Kerberos). PowerShell ScriptBlock Event ID 4104 with full Invoke-Kerberoast script content (deobfuscated). Sysmon Event ID 11: file creation for kerberoast_hashes.txt.

  2. Test 2Rubeus Kerberoast — All Roastable Accounts

    Expected signal: Domain Controller Security Event ID 4769 for each SPN with TicketEncryptionType=0x17. Sysmon Event ID 1: Rubeus.exe process creation with 'kerberoast' argument. Sysmon Event ID 3: TCP connection to DC on port 88. Sysmon Event ID 11: file creation for rubeus_hashes.txt. Windows Defender may independently generate alerts for Rubeus.exe based on signature detection.

  3. Test 3Impacket GetUserSPNs — Linux-Based Kerberoasting

    Expected signal: Domain Controller Security Event ID 4769 for each SPN with TicketEncryptionType=0x17, IpAddress field contains the Linux host IP. Event ID 4768 (TGT request) from Linux host IP preceding the 4769 events. No Sysmon telemetry (Linux source). DC Security logs capture the full activity. The source IP not matching any domain-joined Windows workstation is a high-fidelity anomaly indicator.

  4. Test 4Targeted Single-SPN Request via .NET KerberosRequestorSecurityToken

    Expected signal: Domain Controller Security Event ID 4769: ServiceName=MSSQLSvc/sql01.corp.local:1433, TicketEncryptionType=0x17 (if target service account supports RC4). Sysmon Event ID 1: powershell.exe with 'KerberosRequestorSecurityToken' in CommandLine. PowerShell ScriptBlock Event ID 4104 with full .NET reflection code. Note: If the target account enforces AES-only encryption, EncryptionType will be 0x12 and detection will not fire on the RC4 rule — the account is not kerberoastable.

Unlock Pro Content

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

Response PlaybookInvestigation GuideHunting QueriesAtomic Red Team TestsTuning Guidance

Related Detections