Detection rules › Sigma

SAM database user credentials dump with Mimikatz

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

Detects scenarios where an attacker dump the LSASS memory content using Mimikatz (sekurlsa module).

Known false positives

  • None

MITRE ATT&CK coverage

TacticTechniques
Credential Access

Telemetry coverage

Rule body

title: SAM database user credentials dump with Mimikatz
description: Detects scenarios where an attacker dump the LSASS memory content using Mimikatz (sekurlsa module).
correlation: correlate TargetLogonId from ID 4624 with SubjectLogonId from ID 4661 to identify the source of the enumeration.
requirements: extended rights auditing enabled (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/T1003-Credential%20dumping
- https://ivanitlearning.wordpress.com/2019/09/07/mimikatz-and-password-dumps/
tags:
- attack.credential_access
- attack.t1003.001
author: mdecrevoisier
status: experimental
logsource:
  product: windows
  service: security
detection:
  selection:
    EventID: 4661
    ProcessName|endswith: '\lsass.exe'
    ObjectServer: Security Account Manager
    ObjectType: SAM_USER
    ObjectName|startswith: 'S-1-5-21-' # User SID dumped
    AccessList|contains|all:
      - '%%5446' # ChangePassword
      - '%%5447' # SetPassword
  filter:
    SubjectUserName|endswith: '$'
  condition: selection and not filter | count(ObjectName) by Computer > 10
falsepositives:
- None
level: high

Stages and Predicates

Stage 0: condition

selection and not filter | count(ObjectName) by Computer > 10

Stage 1: selection

selection:
  EventID: 4661
  ProcessName|endswith: '\lsass.exe'
  ObjectServer: Security Account Manager
  ObjectType: SAM_USER
  ObjectName|startswith: 'S-1-5-21-'
  AccessList|contains|all:
    - '%%5446'
    - '%%5447'
Threshold
> 10

Stage 2: not filter

filter:
  SubjectUserName|endswith: '$'

Exclusions

The rule actively suppresses these predicates.

FieldKindExcluded valuesSearch
SubjectUserNameends_with$excludes:SubjectUserName field:"SubjectUserName" value:"$"

Indicators

These rows show field, operator, and value matches.

FieldKindValuesSearch
AccessListmatch
  • %%5446
  • %%5447 corpus 2 (sigma 2)
field:"AccessList" kind:match
ObjectNamestarts_with
  • S-1-5-21- corpus 5 (sigma 5)
field:"ObjectName" kind:starts_with value:"S-1-5-21-"
ObjectServereq
  • Security Account Manager corpus 7 (sigma 7)
field:"ObjectServer" kind:eq value:"Security Account Manager"
ObjectTypeeq
  • SAM_USER corpus 5 (sigma 5)
field:"ObjectType" kind:eq value:"SAM_USER"
ProcessNameends_with
  • \lsass.exe corpus 7 (sigma 7)
field:"process_name" kind:ends_with value:"\lsass.exe"