Detection rules › Sigma

Suspicious modification of a user account SPN to enable Kerberoast attack

Status
experimental
Severity
high
Log source
product windows, service security
Author
mdecrevoisier
Source
github.com/mdecrevoisier/SIGMA-detection-rules

Detects scenarios where an attacker update the Service Principal Name (SPN) of a user account in order to enable Kerberoast attack and crack its password.

MITRE ATT&CK coverage

TacticTechniques
PersistenceT1098 Account Manipulation

Event coverage

Rule body yaml

title: Suspicious modification of a user account SPN to enable Kerberoast attack
description: Detects scenarios where an attacker update the Service Principal Name (SPN) of a user account in order to enable Kerberoast attack and crack its password.
requirements: auditing SACL ("Write all properties") must be placed on the OU to monitor using the Active Directory console (https://www.manageengine.com/products/active-directory-audit/active-directory-auditing-configuration-guide-configure-object-level-auditing-manually.html).
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1098.xxx-Account%20manipulation
- https://docs.microsoft.com/en-us/windows/security/threat-protection/auditing/event-5136
- https://github.com/S1ckB0y1337/Active-Directory-Exploitation-Cheat-Sheet#force-set-spn
- https://docs.microsoft.com/en-us/troubleshoot/windows-server/windows-security/use-audit-active-directory-objects-track-events
tags:
- attack.persistence
- attack.t1098
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 5136 # ID 4738 doesn't report any changes about SPN changes
    AttributeLDAPDisplayName: servicePrincipalName
    ObjectClass: user
    OperationType: '%%14674' # Value is added
  filter:
    AttributeValue: '-'
  condition: selection and not filter
falsepositives:
- Rare administrator modifications on user objects
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
  EventID: 5136
  AttributeLDAPDisplayName: servicePrincipalName
  ObjectClass: user
  OperationType: '%%14674'

Stage 2: not filter

filter:
  AttributeValue: '-'

Exclusions

Top-level NOT(...) conjuncts: predicates this rule actively suppresses.

FieldKindExcluded values
AttributeValueeq-

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
AttributeLDAPDisplayNameeq
  • servicePrincipalName corpus 9 (sigma 4, splunk 3, elastic 1, kusto 1)
ObjectClasseq
  • user corpus 6 (sigma 2, splunk 2, elastic 1, kusto 1)
OperationTypeeq
  • %%14674 corpus 17 (sigma 9, elastic 4, splunk 4)