Credential dumping is the step that turns a foothold into full domain compromise. Once an attacker has local admin on one machine, their next move is almost always to pull credentials from that machine — LSASS memory, the SAM database, cached domain credentials — and use those to move laterally. Catching this technique early is one of the highest-value detections you can have running.

The challenge is that credential dumping techniques have evolved significantly. LSASS dumping via Task Manager is detectable. But modern tooling uses driver-based access, custom LSASS clones, and memory-only techniques specifically designed to evade standard detections. This post covers what still works reliably for detection across real environments.

Free Download
SOC Alert Triage Checklist
Severity matrix, 5-phase triage process, critical Event IDs, Splunk quick reference. One page, instant download.
Get Free Checklist →

1. LSASS Memory Access Detection

LSASS (Local Security Authority Subsystem Service) stores credential material in memory — NTLM hashes, Kerberos tickets, plaintext passwords in some configurations. Mimikatz, ProcDump, Task Manager dumps, and many other tools access LSASS memory to extract these. The detection relies on Sysmon Event ID 10 (Process Access) targeting lsass.exe, or CrowdStrike's native LSASS protection events.

Sentinel KQL — LSASS memory access via Sysmon 10
Event
| where TimeGenerated > ago(1d)
| where Source == "Microsoft-Windows-Sysmon"
| where EventID == 10
| extend EventData = parse_xml(EventData)
| extend
    TargetImage = tostring(EventData.DataItem.TargetImage),
    SourceImage = tostring(EventData.DataItem.SourceImage),
    GrantedAccess = tostring(EventData.DataItem.GrantedAccess)
| where TargetImage endswith "lsass.exe"
// 0x1010 and 0x1410 are common dump access masks
| where GrantedAccess in(
    "0x1010", "0x1410", "0x147a",
    "0x143a", "0x1fffff"
  )
// Exclude known-legitimate processes
| where SourceImage !has_any(
    "MsMpEng.exe", "csrss.exe",
    "wininit.exe", "services.exe"
  )
| project TimeGenerated, Computer,
    SourceImage, TargetImage, GrantedAccess
| order by TimeGenerated desc
CrowdStrike LogScale — LSASS access detection
// CrowdStrike natively blocks many LSASS access attempts
// This catches attempts that reach the process level
#event_simpleName=ProcessRollup2
TargetProcessImageFileName=/lsass\.exe$/i
| groupBy([FileName, UserName, ComputerName],
    function=count(), as=AccessCount)
| where AccessCount > 0
| sort(AccessCount, order=desc)
Access mask reference

0x1010 = Read + Query info. 0x1410 = Read + Query + VM read. 0x1fffff = Full access. Any non-system process requesting full access to LSASS is almost certainly attempting credential theft regardless of what the process claims to be.

2. Mimikatz Command Line Detection

Despite being years old, Mimikatz in various forms still appears in the majority of credential theft cases. The command line arguments are distinctive and show up reliably in 4688 process creation events when command line logging is enabled.

Splunk SPL — Mimikatz command line indicators
index=win_* sourcetype="WinEventLog:Security"
EventCode=4688 earliest=-24h
| eval cmdline=lower(coalesce(
    Process_Command_Line, CommandLine))
| eval risk=case(
    match(cmdline, "sekurlsa|logonpasswords|lsadump"),
        "MIMIKATZ_CONFIRMED",
    match(cmdline, "dcsync|dcshadow|krbtgt"),
        "MIMIKATZ_CONFIRMED",
    match(cmdline, "privilege::debug|token::elevate"),
        "MIMIKATZ_CONFIRMED",
    match(cmdline, "mimikatz|mimilib|mimidrv"),
        "MIMIKATZ_BINARY",
    1==1", "review")
| where risk != "review"
| table _time host user cmdline risk
| sort 0 -_time
Treat as P1 immediately

Any Mimikatz command line indicator is a confirmed P1. Don't investigate first — isolate the host immediately, revoke the user's credentials, and then investigate from an isolated position. Every minute of delay is more credentials in the attacker's hands.

3. SAM Database Access

The SAM (Security Account Manager) database stores local account password hashes. Attackers target it via registry hive dumps — reg.exe save commands targeting HKLM\SAM, HKLM\SYSTEM, and HKLM\SECURITY. These three hives together allow offline extraction of all local account credentials.

Sentinel KQL — Registry hive dump detection
DeviceProcessEvents
| where TimeGenerated > ago(1d)
| where FileName in~("reg.exe", "regedit.exe")
| where ProcessCommandLine has_any(
    "save", "export")
| where ProcessCommandLine has_any(
    "hklm\\sam", "hklm\\security",
    "hklm\\system", "\\sam"
  )
| project TimeGenerated, DeviceName,
    AccountName, FileName, ProcessCommandLine
| order by TimeGenerated desc

4. NTDS.dit Extraction

NTDS.dit is the Active Directory database stored on every domain controller — it contains the password hashes for every domain account. Extracting it gives an attacker offline access to every credential in the domain. It's protected while AD is running, so attackers use Volume Shadow Copy, ntdsutil, or vssadmin to extract it.

Splunk SPL — NTDS.dit extraction attempts
index=win_* sourcetype="WinEventLog:Security"
EventCode=4688 earliest=-24h
| eval cmdline=lower(coalesce(
    Process_Command_Line, CommandLine))
| where match(cmdline,
    "ntds\.dit|ntdsutil|vssadmin.*ntds|
    diskshadow.*ntds|ifm.*ntds")
| table _time host user cmdline
| sort 0 -_time
Legitimate use case to know

ntdsutil with IFM (Install From Media) is used legitimately when provisioning new domain controllers. If you have DC provisioning in your environment, baseline the accounts that legitimately run this command and the timeframes it normally happens. Everything outside that baseline is suspect.

5. Credential Theft via Task Manager and ProcDump

The least sophisticated but still commonly seen approach is using Task Manager or SysInternals ProcDump to create a memory dump of the LSASS process. Both are legitimate tools that get flagged for this specific usage pattern.

CrowdStrike LogScale — ProcDump targeting LSASS
#event_simpleName=ProcessRollup2
FileName=/procdump(64)?\.exe$/i
| regex("(?i)lsass", field=CommandLine)
| table @timestamp ComputerName UserName
    FileName CommandLine
| sort(@timestamp, order=desc)

// Task Manager dump — look for lsass.DMP creation
// in %TEMP% or %LOCALAPPDATA%\Temp
Sentinel KQL — LSASS dump file creation
DeviceFileEvents
| where TimeGenerated > ago(1d)
| where ActionType == "FileCreated"
| where FileName has_any(
    "lsass.dmp", "lsass.zip",
    "lsass.rar", "lsass.7z")
// Dump file in any location is suspicious
| project TimeGenerated, DeviceName,
    AccountName, FileName, FolderPath,
    InitiatingProcessFileName
| order by TimeGenerated desc

What to Do When These Fire

Credential dumping alerts have a different response protocol than most alerts because the damage compounds rapidly. The moment credentials are dumped, an attacker can use them immediately from any system on or off the network. Standard investigation-before-containment doesn't apply here.

Weekly Intelligence Pack
Credential theft detection rules every few weeks

The Intelligence Pack rotates coverage across credential theft, lateral movement, persistence, and exfiltration techniques. Every issue includes the full detection rule, investigation steps, MITRE mapping (T1003 and sub-techniques), and ticket wording. Built from real incidents, not vendor documentation.

Join — $14.99/mo IR Runbook Bundle — $49
Founding member pricing locked for life · 30-day money back