lsass.exe

Local Security Authority Subsystem Service

Enumeration

Check if lsass.exe is ran as a protected process (PPL):

PS > Get-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\Lsa -Name "RunAsPPL"

A legit way to disable it via LSA Protected Process Opt-out:

mountvol X: /s
copy C:\LSAPPLConfig.efi X:\EFI\Microsoft\Boot\LSAPPLConfig.efi /Y
bcdedit /create {0cb3b571-2f2e-4343-a879-d86a476d7215} /d "DebugTool" /application osloader
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} path "\EFI\Microsoft\Boot\LSAPPLConfig.efi"
bcdedit /set {bootmgr} bootsequence {0cb3b571-2f2e-4343-a879-d86a476d7215}
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} loadoptions %1
bcdedit /set {0cb3b571-2f2e-4343-a879-d86a476d7215} device partition=X:
mountvol X: /d
shutdown -r -t 0

MiniDumpWriteDump

Parsers

Custom Implementations

MiniDump Callbacks

Reusing Open Handles

pypykatz

SharpHandler

Scan if there are dupeable handles to use:

Write a gzip-compressed minidump to specified location:

Dump and parse with SharpKatz's logonpasswords:

HandleKatz

LetMeowIn

Silent Process Exit

Remove PPL Protection

Using Mimikatz driver:

Load SSP

SspirConnectRpc

MirrorDump

DuplicateDump

nanodump

Do it automatically with wmiexec.py magic (using this Python HTTP server with PUT support):

RToolZ

Bypass Saving on Disk Detection

NTFS Transactions

TransactedSharpMiniDump

CredBandit

Dumpy

Kernel Mode

Abusing Gigabyte Driver

CVE-2018-19320

Physical Memory

Convert VMware snapshot to a memory dump with vmss2core:

Crash Dumps

Get current CrashControl settings and set CrashDumpEnabled to 0x01 (default dump location is C:\Windows\MEMORY.dmp):

Crash the target machine, e. g. with NotMyFault:

Parse LSASS with Mimikatz and WinDbg:

To add debug symbols: FileSymbol file pathSRV*https://msdl.microsoft.com/download/symbols.

Or with Pypykatz plugin for Volatility 3:

Current version of vol_pypykatz.py need some changes to work with relevant version of Volatility 3:

Physmem2profit

Server:

Client:

Credential Guard

Check presence (ref):

Patch and Bypass

Patch the g_fParameter_UseLogonCredential and g_IsCredGuardEnabled variables by their hardcoded offsets within wdigest.dll loaded by LSASS:

Resolve g_fParameter_UseLogonCredential and g_IsCredGuardEnabled variable offsets dynamically at runtime:

Two PoCs above merged:

PassTheChallenge

CVE-2025-21299, CVE-2025-29809

Attacking vSphere

Tools

comsvcs.dll

Not touching the disk (using an SMB share):

One-liner:

ProcDump

Process Argument Spoofing

Mimikatz

Parse MiniDump:

Grep for creds:

kiwi

pypykatz

Install:

Parse with jq one-liner:

Pipe to the script to parse with colors:

spraykatz

Dumpert

Dump lsass.exe using direct syscalls and removing user-land API hooks:

Using sRDI (shellcode Reflective DLL Injection) technique:

  1. Convert it to position independent shellcode with ConvertToShellcode.py: python3 ConvertToShellcode.py Outflank-Dumpert-DLL.dll.

  2. Use a shellcode loader of your choice to dump LSASS.

lsassy

MalSeclogon

Last updated