Detection rules › Sigma

Replication privileges granted to perform DCSync 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 grants replication privilege to an account to exflitrate Active Directory credentials

MITRE ATT&CK coverage

Event coverage

Rule body yaml

title: Replication privileges granted to perform DCSync attack
description: Detects scenarios where an attacker grants replication privilege to an account to exflitrate Active Directory credentials
requirements: auditing SACL "Modify permissions" must be placed on the root domain container (otherwise not visible) 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/TA0006-Credential%20Access/
- https://www.ired.team/offensive-security-experiments/active-directory-kerberos-abuse/dump-password-hashes-from-domain-controller-with-dcsync
- https://attack.stealthbits.com/privilege-escalation-using-mimikatz-dcsync
- https://blog.fox-it.com/2018/04/26/escalating-privileges-with-acls-in-active-directory/
- https://simondotsh.com/infosec/2022/07/11/dirsync.html
- https://www.logpoint.com/en/blog/compromises-in-azure-ad-through-aad-connect/
tags:
  - attack.credential_access
  - attack.t1222.001
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 5136
    AttributeLDAPDisplayName: ntSecurityDescriptor
    OperationType: '%%14674'  # value added  
    AttributeValue|contains:
      - 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 # DS-Replication-Get-Changes
      - 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 # DS-Replication-Get-Changes-All
      - 89e95b76-444d-4c62-991a-0facbeda640c # DS-Replication-Get-Changes-In-Filtered-Set
  filter:
    SubjectUserName|endswith: $
  condition: selection and not filter
falsepositives:
- Unknown
level: high

Stages and Predicates

Stage 0: condition

selection and not filter

Stage 1: selection

selection:
  EventID: 5136
  AttributeLDAPDisplayName: ntSecurityDescriptor
  OperationType: '%%14674'
  AttributeValue|contains:
    - 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2
    - 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2
    - 89e95b76-444d-4c62-991a-0facbeda640c

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
AttributeLDAPDisplayNameeq
  • ntSecurityDescriptor corpus 7 (sigma 6, elastic 1)
AttributeValuematch
  • 1131f6aa-9c07-11d1-f79f-00c04fc2dcd2 corpus 2 (sigma 2)
  • 1131f6ad-9c07-11d1-f79f-00c04fc2dcd2 corpus 2 (sigma 2)
  • 89e95b76-444d-4c62-991a-0facbeda640c corpus 2 (sigma 2)
OperationTypeeq
  • %%14674 corpus 17 (sigma 9, elastic 4, splunk 4)