Detection rules › Sigma
SAM database user credentials dump with Mimikatz
Detects scenarios where an attacker dump the LSASS memory content using Mimikatz (sekurlsa module).
Known false positives
- None
MITRE ATT&CK coverage
| Tactic | Techniques |
|---|---|
| Credential Access |
Telemetry coverage
| Provider | Record / event type |
|---|---|
| Security-Auditing | Event ID 4661: A handle to an object was requested. |
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 > 10Stage 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'
Stage 2: not filter
filter:
SubjectUserName|endswith: '$'
Exclusions
The rule actively suppresses these predicates.
| Field | Kind | Excluded values | Search |
|---|---|---|---|
SubjectUserName | ends_with | $ | excludes:SubjectUserName field:"SubjectUserName" value:"$" |
Indicators
These rows show field, operator, and value matches.
| Field | Kind | Values | Search |
|---|---|---|---|
AccessList | match |
| field:"AccessList" kind:match |
ObjectName | starts_with |
| field:"ObjectName" kind:starts_with value:"S-1-5-21-" |
ObjectServer | eq |
| field:"ObjectServer" kind:eq value:"Security Account Manager" |
ObjectType | eq |
| field:"ObjectType" kind:eq value:"SAM_USER" |
ProcessName | ends_with |
| field:"process_name" kind:ends_with value:"\lsass.exe" |