Detection rules › Sigma

Suspicious modification of a fake domain controller SPN (DCshadow)

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

Detects scenarios where an attacker updates the Service Principal Name (SPN) of a fake domain controller account in order to perform DCshadow attack.

MITRE ATT&CK coverage

TacticTechniques
PersistenceT1098 Account Manipulation

Event coverage

Rule body yaml

title: Suspicious modification of a fake domain controller SPN (DCshadow)
description: Detects scenarios where an attacker updates the Service Principal Name (SPN) of a fake domain controller account in order to perform DCshadow attack.
references:
- https://github.com/mdecrevoisier/EVTX-to-MITRE-Attack/tree/master/TA0003-Persistence/T1098.xxx-Account%20manipulation
- https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/t1207-creating-rogue-domain-controllers-with-dcshadow
- https://medium.com/@maarten.goet/dcshadow-detecting-a-rogue-domain-controller-replicating-malicious-changes-to-your-active-1e22440df9ad
- https://github.com/shellster/DCSYNCMonitor
- https://stealthbits.com/blog/detecting-dcshadow-with-event-logs/
- https://www.labofapenetrationtester.com/2018/05/dcshadow-sacl.html
- https://blog.stealthbits.com/creating-persistence-with-dcshadow/
- https://book.hacktricks.xyz/windows/active-directory-methodology/dcshadow
tags:
- attack.persistence
- attack.t1098
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4742
    ServicePrincipalNames|contains: 'GC/'
  filter:
    SubjectUserName|endswith: '$'
  condition: selection and not filter
falsepositives:
- New domain controller registration
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
  EventID: 4742
  ServicePrincipalNames|contains: 'GC/'

Stage 2: not filter

filter:
  SubjectUserName|endswith: '$'

Exclusions

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

FieldKindExcluded values
SubjectUserNameends_with$

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
ServicePrincipalNamesmatch
  • GC/ corpus 2 (sigma 2)