Detecting T1003 Credential Dumping with EDR
When to Use
- When hunting for credential theft activity in the environment
- After compromise indicators suggest attacker has elevated privileges
- When EDR alerts fire for LSASS access or suspicious process memory reads
- During incident response to determine scope of credential compromise
- When auditing LSASS protection controls (Credential Guard, RunAsPPL)
Prerequisites
- EDR agent deployed with LSASS access monitoring (CrowdStrike, Defender for Endpoint, SentinelOne)
- Sysmon Event ID 10 (ProcessAccess) with LSASS-specific filters
- Windows Security Event ID 4656/4663 (Object Access Auditing)
- LSASS SACL auditing enabled (Windows 10+)
- Registry auditing for SAM hive access
Workflow
- Monitor LSASS Process Access: Track all processes opening handles to lsass.exe with suspicious access rights (PROCESS_VM_READ 0x0010, PROCESS_ALL_ACCESS 0x1FFFFF). Non-privileged or unusual processes accessing LSASS are strong indicators.
- Detect Credential Dumping Tools: Hunt for known tool signatures -- Mimikatz (sekurlsa::logonpasswords), procdump.exe targeting LSASS, comsvcs.dll MiniDump, and Task Manager creating LSASS dumps.
- Monitor NTDS.dit Access: Detect Volume Shadow Copy creation (vssadmin, wmic shadowcopy) followed by NTDS.dit file access, or ntdsutil.exe IFM creation.
- Track SAM/SECURITY/SYSTEM Hive Access: Hunt for reg.exe save commands targeting SAM, SECURITY, and SYSTEM registry hives.
- Detect DCSync Activity: Monitor for non-DC accounts requesting directory replication (Event 4662 with replication GUIDs).
- Correlate with Lateral Movement: After credential dumping, attackers typically move laterally. Correlate credential access events with subsequent remote logon attempts.
- Assess Impact: Determine which credentials were potentially compromised and initiate password resets.
Key Concepts
| Concept |
Description |
| T1003.001 |
LSASS Memory -- dumping credentials from LSASS process |
| T1003.002 |
Security Account Manager -- extracting local account hashes from SAM |
| T1003.003 |
NTDS -- extracting domain hashes from Active Directory database |
| T1003.004 |
LSA Secrets -- extracting service account passwords |
| T1003.005 |
Cached Domain Credentials -- extracting DCC2 hashes |
| T1003.006 |
DCSync -- replicating credentials from domain controller |
| Credential Guard |
Virtualization-based isolation of LSASS secrets |
| RunAsPPL |
Protected Process Light for LSASS |
Detection Queries
Splunk -- LSASS Access Detection
index=sysmon EventCode=10
| where match(TargetImage, "(?i)lsass\.exe$")
| where GrantedAccess IN ("0x1FFFFF", "0x1F3FFF", "0x143A", "0x1F0FFF", "0x0040", "0x1010", "0x1410")
| where NOT match(SourceImage, "(?i)(csrss|lsass|svchost|MsMpEng|WmiPrvSE|taskmgr|procexp|SecurityHealthService)\.exe$")
| table _time Computer SourceImage SourceProcessId GrantedAccess CallTrace
Splunk -- Credential Dumping Tool Detection
index=sysmon EventCode=1
| where match(CommandLine, "(?i)(sekurlsa|lsadump|kerberos::list|crypto::certificates)")
OR match(CommandLine, "(?i)procdump.*-ma.*lsass")
OR match(CommandLine, "(?i)comsvcs\.dll.*MiniDump")
OR match(CommandLine, "(?i)ntdsutil.*\"ac i ntds\".*ifm")
OR match(CommandLine, "(?i)reg\s+save\s+hklm\\\\(sam|security|system)")
OR match(CommandLine, "(?i)vssadmin.*create\s+shadow")
| table _time Computer User Image CommandLine ParentImage
KQL -- Microsoft Defender for Endpoint
DeviceEvents
| where Timestamp > ago(7d)
| where ActionType in ("LsassAccess", "CredentialDumpingActivity")
| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName,
InitiatingProcessCommandLine, ActionType, AdditionalFields
| sort by Timestamp desc
Sigma Rule -- LSASS Credential Dumping
title: LSASS Memory Credential Dumping Attempt
status: stable
logsource:
product: windows
category: process_access
detection:
selection:
TargetImage|endswith: '\lsass.exe'
GrantedAccess|contains:
- '0x1FFFFF'
- '0x1F3FFF'
- '0x143A'
- '0x0040'
filter:
SourceImage|endswith:
- '\csrss.exe'
- '\lsass.exe'
- '\MsMpEng.exe'
- '\svchost.exe'
condition: selection and not filter
level: critical
tags:
- attack.credential_access
- attack.t1003.001
Common Scenarios
- Mimikatz sekurlsa: Direct LSASS memory reading via
sekurlsa::logonpasswords to extract plaintext passwords, NTLM hashes, and Kerberos tickets.
- ProcDump LSASS:
procdump.exe -ma lsass.exe lsass.dmp creating a memory dump for offline credential extraction.
- Comsvcs.dll MiniDump:
rundll32.exe comsvcs.dll MiniDump [LSASS_PID] dump.bin full using a built-in Windows DLL for LSASS dumping.
- NTDS.dit Extraction: Creating a Volume Shadow Copy and copying NTDS.dit + SYSTEM hive for offline domain hash extraction with secretsdump.
- SAM Hive Export:
reg save HKLM\SAM sam.save followed by reg save HKLM\SYSTEM system.save for local account hash extraction.
- Task Manager Dump: Right-clicking LSASS in Task Manager to create a memory dump -- a legitimate tool abused for credential theft.
Output Format
Hunt ID: TH-CRED-[DATE]-[SEQ]
Host: [Hostname]
Dumping Method: [LSASS_Access/NTDS/SAM/DCSync]
Source Process: [Tool or process used]
Target: [LSASS/NTDS.dit/SAM/SECURITY]
Access Rights: [Granted access mask]
User Context: [Account performing the dump]
ATT&CK Technique: [T1003.00x]
Risk Level: [Critical/High/Medium]
Credentials at Risk: [Scope assessment]
1---2name: detecting-t1003-credential-dumping-with-edr3description: Detect OS credential dumping (MITRE T1003) targeting LSASS memory, the SAM database, NTDS.dit, and cached credentials by correlating EDR telemetry, Sysmon process-access events, and Windows security event logs. Use when hunting for Mimikatz-style credential theft, triaging an EDR alert on LSASS access, or scoping an incident after suspected credential dumping.4license: Apache-2.05---6
7# Detecting T1003 Credential Dumping with EDR
8
9## When to Use
10
11- When hunting for credential theft activity in the environment
12- After compromise indicators suggest attacker has elevated privileges
13- When EDR alerts fire for LSASS access or suspicious process memory reads
14- During incident response to determine scope of credential compromise
15- When auditing LSASS protection controls (Credential Guard, RunAsPPL)
16
17## Prerequisites
18
19- EDR agent deployed with LSASS access monitoring (CrowdStrike, Defender for Endpoint, SentinelOne)
20- Sysmon Event ID 10 (ProcessAccess) with LSASS-specific filters
21- Windows Security Event ID 4656/4663 (Object Access Auditing)
22- LSASS SACL auditing enabled (Windows 10+)
23- Registry auditing for SAM hive access
24
25## Workflow
26
271. **Monitor LSASS Process Access**: Track all processes opening handles to lsass.exe with suspicious access rights (PROCESS_VM_READ 0x0010, PROCESS_ALL_ACCESS 0x1FFFFF). Non-privileged or unusual processes accessing LSASS are strong indicators.
282. **Detect Credential Dumping Tools**: Hunt for known tool signatures -- Mimikatz (sekurlsa::logonpasswords), procdump.exe targeting LSASS, comsvcs.dll MiniDump, and Task Manager creating LSASS dumps.
293. **Monitor NTDS.dit Access**: Detect Volume Shadow Copy creation (vssadmin, wmic shadowcopy) followed by NTDS.dit file access, or ntdsutil.exe IFM creation.
304. **Track SAM/SECURITY/SYSTEM Hive Access**: Hunt for reg.exe save commands targeting SAM, SECURITY, and SYSTEM registry hives.
315. **Detect DCSync Activity**: Monitor for non-DC accounts requesting directory replication (Event 4662 with replication GUIDs).
326. **Correlate with Lateral Movement**: After credential dumping, attackers typically move laterally. Correlate credential access events with subsequent remote logon attempts.
337. **Assess Impact**: Determine which credentials were potentially compromised and initiate password resets.
34
35## Key Concepts
36
37| Concept | Description |
38|---------|-------------|
39| T1003.001 | LSASS Memory -- dumping credentials from LSASS process |
40| T1003.002 | Security Account Manager -- extracting local account hashes from SAM |
41| T1003.003 | NTDS -- extracting domain hashes from Active Directory database |
42| T1003.004 | LSA Secrets -- extracting service account passwords |
43| T1003.005 | Cached Domain Credentials -- extracting DCC2 hashes |
44| T1003.006 | DCSync -- replicating credentials from domain controller |
45| Credential Guard | Virtualization-based isolation of LSASS secrets |
46| RunAsPPL | Protected Process Light for LSASS |
47
48## Detection Queries
49
50### Splunk -- LSASS Access Detection
51```spl
52index=sysmon EventCode=10
53| where match(TargetImage, "(?i)lsass\.exe$")
54| where GrantedAccess IN ("0x1FFFFF", "0x1F3FFF", "0x143A", "0x1F0FFF", "0x0040", "0x1010", "0x1410")
55| where NOT match(SourceImage, "(?i)(csrss|lsass|svchost|MsMpEng|WmiPrvSE|taskmgr|procexp|SecurityHealthService)\.exe$")
56| table _time Computer SourceImage SourceProcessId GrantedAccess CallTrace
57```
58
59### Splunk -- Credential Dumping Tool Detection
60```spl
61index=sysmon EventCode=1
62| where match(CommandLine, "(?i)(sekurlsa|lsadump|kerberos::list|crypto::certificates)")
63 OR match(CommandLine, "(?i)procdump.*-ma.*lsass")
64 OR match(CommandLine, "(?i)comsvcs\.dll.*MiniDump")
65 OR match(CommandLine, "(?i)ntdsutil.*\"ac i ntds\".*ifm")
66 OR match(CommandLine, "(?i)reg\s+save\s+hklm\\\\(sam|security|system)")
67 OR match(CommandLine, "(?i)vssadmin.*create\s+shadow")
68| table _time Computer User Image CommandLine ParentImage
69```
70
71### KQL -- Microsoft Defender for Endpoint
72```kql
73DeviceEvents
74| where Timestamp > ago(7d)
75| where ActionType in ("LsassAccess", "CredentialDumpingActivity")
76| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName,
77 InitiatingProcessCommandLine, ActionType, AdditionalFields
78| sort by Timestamp desc
79```
80
81### Sigma Rule -- LSASS Credential Dumping
82```yaml
83title: LSASS Memory Credential Dumping Attempt
84status: stable
85logsource:
86 product: windows
87 category: process_access
88detection:
89 selection:
90 TargetImage|endswith: '\lsass.exe'
91 GrantedAccess|contains:
92 - '0x1FFFFF'
93 - '0x1F3FFF'
94 - '0x143A'
95 - '0x0040'
96 filter:
97 SourceImage|endswith:
98 - '\csrss.exe'
99 - '\lsass.exe'
100 - '\MsMpEng.exe'
101 - '\svchost.exe'
102 condition: selection and not filter
103level: critical
104tags:
105 - attack.credential_access
106 - attack.t1003.001
107```
108
109## Common Scenarios
110
1111. **Mimikatz sekurlsa**: Direct LSASS memory reading via `sekurlsa::logonpasswords` to extract plaintext passwords, NTLM hashes, and Kerberos tickets.
1122. **ProcDump LSASS**: `procdump.exe -ma lsass.exe lsass.dmp` creating a memory dump for offline credential extraction.
1133. **Comsvcs.dll MiniDump**: `rundll32.exe comsvcs.dll MiniDump [LSASS_PID] dump.bin full` using a built-in Windows DLL for LSASS dumping.
1144. **NTDS.dit Extraction**: Creating a Volume Shadow Copy and copying NTDS.dit + SYSTEM hive for offline domain hash extraction with secretsdump.
1155. **SAM Hive Export**: `reg save HKLM\SAM sam.save` followed by `reg save HKLM\SYSTEM system.save` for local account hash extraction.
1166. **Task Manager Dump**: Right-clicking LSASS in Task Manager to create a memory dump -- a legitimate tool abused for credential theft.
117
118## Output Format
119
120```
121Hunt ID: TH-CRED-[DATE]-[SEQ]
122Host: [Hostname]
123Dumping Method: [LSASS_Access/NTDS/SAM/DCSync]
124Source Process: [Tool or process used]
125Target: [LSASS/NTDS.dit/SAM/SECURITY]
126Access Rights: [Granted access mask]
127User Context: [Account performing the dump]
128ATT&CK Technique: [T1003.00x]
129Risk Level: [Critical/High/Medium]
130Credentials at Risk: [Scope assessment]
131```