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)
Detection Gaps & Validation
- GrantedAccess masking: rules pinned to
0x1FFFFF/0x1010 miss tools that open LSASS with minimal rights — modern dumpers request 0x1438/0x1410 or clone the handle via PROCESS_DUP_HANDLE (0x0040). Match the EID 10 CallTrace (into dbgcore.dll/dbghelp.dll/ntdll!NtReadVirtualMemory) rather than a single mask.
- PPL/Credential Guard gaps: if RunAsPPL or Credential Guard is not enabled, plaintext is recoverable and some EDRs suppress the alert — confirm protection state; conversely handle-clone and
MiniDumpWriteDump evade many EID 10 rules.
- Disk-based paths bypass LSASS rules entirely: NTDS.dit via
vssadmin create shadow + ntdsutil ifm, and reg save HKLM\SAM, are 4688/EID 1 command-line hunts — invisible if command-line auditing is off.
- DCSync (T1003.006): detect via DC Security EID 4662 with replication GUIDs (
DS-Replication-Get-Changes) from a non-DC account; requires directory-service access auditing.
- Validate: run Atomic Red Team T1003.001 (comsvcs
MiniDump, procdump -ma lsass) and T1003.003 to confirm the EID 10, EID 1, and 4662 searches fire.
- Tune FPs: MsMpEng, WerFault, and EDR agents legitimately read LSASS — allowlist by signed SourceImage, not by access mask alone.
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 techniques targeting LSASS memory, SAM database, NTDS.dit, and cached credentials using EDR telemetry, Sysmon process access monitoring, and Windows security event correlation.4license: Apache-2.05---67# Detecting T1003 Credential Dumping with EDR89## When to Use1011- When hunting for credential theft activity in the environment12- After compromise indicators suggest attacker has elevated privileges13- When EDR alerts fire for LSASS access or suspicious process memory reads14- During incident response to determine scope of credential compromise15- When auditing LSASS protection controls (Credential Guard, RunAsPPL)1617## Detection Gaps & Validation1819- **GrantedAccess masking:** rules pinned to `0x1FFFFF`/`0x1010` miss tools that open LSASS with minimal rights — modern dumpers request `0x1438`/`0x1410` or clone the handle via `PROCESS_DUP_HANDLE (0x0040)`. Match the EID 10 CallTrace (into `dbgcore.dll`/`dbghelp.dll`/`ntdll!NtReadVirtualMemory`) rather than a single mask.20- **PPL/Credential Guard gaps:** if RunAsPPL or Credential Guard is not enabled, plaintext is recoverable and some EDRs suppress the alert — confirm protection state; conversely handle-clone and `MiniDumpWriteDump` evade many EID 10 rules.21- **Disk-based paths bypass LSASS rules entirely:** NTDS.dit via `vssadmin create shadow` + `ntdsutil ifm`, and `reg save HKLM\SAM`, are 4688/EID 1 command-line hunts — invisible if command-line auditing is off.22- **DCSync (T1003.006):** detect via DC Security EID **4662** with replication GUIDs (`DS-Replication-Get-Changes`) from a non-DC account; requires directory-service access auditing.23- **Validate:** run Atomic Red Team **T1003.001** (comsvcs `MiniDump`, `procdump -ma lsass`) and **T1003.003** to confirm the EID 10, EID 1, and 4662 searches fire.24- **Tune FPs:** MsMpEng, WerFault, and EDR agents legitimately read LSASS — allowlist by signed SourceImage, not by access mask alone.2526## Prerequisites2728- EDR agent deployed with LSASS access monitoring (CrowdStrike, Defender for Endpoint, SentinelOne)29- Sysmon Event ID 10 (ProcessAccess) with LSASS-specific filters30- Windows Security Event ID 4656/4663 (Object Access Auditing)31- LSASS SACL auditing enabled (Windows 10+)32- Registry auditing for SAM hive access3334## Workflow35361. **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.372. **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.383. **Monitor NTDS.dit Access**: Detect Volume Shadow Copy creation (vssadmin, wmic shadowcopy) followed by NTDS.dit file access, or ntdsutil.exe IFM creation.394. **Track SAM/SECURITY/SYSTEM Hive Access**: Hunt for reg.exe save commands targeting SAM, SECURITY, and SYSTEM registry hives.405. **Detect DCSync Activity**: Monitor for non-DC accounts requesting directory replication (Event 4662 with replication GUIDs).416. **Correlate with Lateral Movement**: After credential dumping, attackers typically move laterally. Correlate credential access events with subsequent remote logon attempts.427. **Assess Impact**: Determine which credentials were potentially compromised and initiate password resets.4344## Key Concepts4546| Concept | Description |47|---------|-------------|48| T1003.001 | LSASS Memory -- dumping credentials from LSASS process |49| T1003.002 | Security Account Manager -- extracting local account hashes from SAM |50| T1003.003 | NTDS -- extracting domain hashes from Active Directory database |51| T1003.004 | LSA Secrets -- extracting service account passwords |52| T1003.005 | Cached Domain Credentials -- extracting DCC2 hashes |53| T1003.006 | DCSync -- replicating credentials from domain controller |54| Credential Guard | Virtualization-based isolation of LSASS secrets |55| RunAsPPL | Protected Process Light for LSASS |5657## Detection Queries5859### Splunk -- LSASS Access Detection60```spl61index=sysmon EventCode=1062| where match(TargetImage, "(?i)lsass\.exe$")63| where GrantedAccess IN ("0x1FFFFF", "0x1F3FFF", "0x143A", "0x1F0FFF", "0x0040", "0x1010", "0x1410")64| where NOT match(SourceImage, "(?i)(csrss|lsass|svchost|MsMpEng|WmiPrvSE|taskmgr|procexp|SecurityHealthService)\.exe$")65| table _time Computer SourceImage SourceProcessId GrantedAccess CallTrace66```6768### Splunk -- Credential Dumping Tool Detection69```spl70index=sysmon EventCode=171| where match(CommandLine, "(?i)(sekurlsa|lsadump|kerberos::list|crypto::certificates)")72 OR match(CommandLine, "(?i)procdump.*-ma.*lsass")73 OR match(CommandLine, "(?i)comsvcs\.dll.*MiniDump")74 OR match(CommandLine, "(?i)ntdsutil.*\"ac i ntds\".*ifm")75 OR match(CommandLine, "(?i)reg\s+save\s+hklm\\\\(sam|security|system)")76 OR match(CommandLine, "(?i)vssadmin.*create\s+shadow")77| table _time Computer User Image CommandLine ParentImage78```7980### KQL -- Microsoft Defender for Endpoint81```kql82DeviceEvents83| where Timestamp > ago(7d)84| where ActionType in ("LsassAccess", "CredentialDumpingActivity")85| project Timestamp, DeviceName, AccountName, InitiatingProcessFileName,86 InitiatingProcessCommandLine, ActionType, AdditionalFields87| sort by Timestamp desc88```8990### Sigma Rule -- LSASS Credential Dumping91```yaml92title: LSASS Memory Credential Dumping Attempt93status: stable94logsource:95 product: windows96 category: process_access97detection:98 selection:99 TargetImage|endswith: '\lsass.exe'100 GrantedAccess|contains:101 - '0x1FFFFF'102 - '0x1F3FFF'103 - '0x143A'104 - '0x0040'105 filter:106 SourceImage|endswith:107 - '\csrss.exe'108 - '\lsass.exe'109 - '\MsMpEng.exe'110 - '\svchost.exe'111 condition: selection and not filter112level: critical113tags:114 - attack.credential_access115 - attack.t1003.001116```117118## Common Scenarios1191201. **Mimikatz sekurlsa**: Direct LSASS memory reading via `sekurlsa::logonpasswords` to extract plaintext passwords, NTLM hashes, and Kerberos tickets.1212. **ProcDump LSASS**: `procdump.exe -ma lsass.exe lsass.dmp` creating a memory dump for offline credential extraction.1223. **Comsvcs.dll MiniDump**: `rundll32.exe comsvcs.dll MiniDump [LSASS_PID] dump.bin full` using a built-in Windows DLL for LSASS dumping.1234. **NTDS.dit Extraction**: Creating a Volume Shadow Copy and copying NTDS.dit + SYSTEM hive for offline domain hash extraction with secretsdump.1245. **SAM Hive Export**: `reg save HKLM\SAM sam.save` followed by `reg save HKLM\SYSTEM system.save` for local account hash extraction.1256. **Task Manager Dump**: Right-clicking LSASS in Task Manager to create a memory dump -- a legitimate tool abused for credential theft.126127## Output Format128129```130Hunt ID: TH-CRED-[DATE]-[SEQ]131Host: [Hostname]132Dumping Method: [LSASS_Access/NTDS/SAM/DCSync]133Source Process: [Tool or process used]134Target: [LSASS/NTDS.dit/SAM/SECURITY]135Access Rights: [Granted access mask]136User Context: [Account performing the dump]137ATT&CK Technique: [T1003.00x]138Risk Level: [Critical/High/Medium]139Credentials at Risk: [Scope assessment]140```