Skip to main content
Everything here targets credentials stored on a single Windows host, local account hashes, cached logon secrets, saved browser/app passwords. Domain-wide techniques that depend on Active Directory itself (DCSync, Golden/Silver tickets, Pass-the-Ticket, dumping NTDS.dit from a Domain Controller) belong on the AD Kerberos Ticket Attacks page instead, this page is strictly local-host. Cracking whatever hashes you pull here happens on the Password Cracking page.

At Rest

Registry hives and the credential store, readable with the right privileges even without a running process to dump.

In Memory

LSASS holds logon secrets in a recoverable form for the duration of a session, the highest-value and most commonly targeted source.

Registry Hives (SAM/SECURITY/SYSTEM)

Windows stores local account secrets across three registry hives that only make sense together, the SAM hashes are encrypted with a key that lives in SYSTEM, so pulling just one of them gets you nothing crackable.
HiveContains
HKLM\SAMLocal account password hashes
HKLM\SYSTEMThe boot key, required to decrypt the SAM hashes
HKLM\SECURITYLSA secrets: cached domain credentials (DCC2), DPAPI keys, sometimes cleartext service account passwords
NetExec does the same extraction remotely over SMB with valid local credentials already in hand, no need to touch the registry manually at all. Check the NetExec page for more informations.

LSASS Memory

LSASS (Local Security Authority Subsystem Service) holds every logged-on user’s credentials in memory for as long as their session is active, dumping its memory and parsing it offline is one of the highest-value single actions on a Windows host. To dump the LSASS process with the Task Manager
To dump the LSASS process from the console:
To dump the LSASS process with procdump:
To dump it with mimikatz:
Parsing the dump doesn’t require Mimikatz itself, pypykatz is a pure Python reimplementation that runs on Linux against an exfiltrated dump:

Mimikatz (On-Host)

Mimikatz needs to run on the windows target itself (or inside a session on it, via Meterpreter’s kiwi extension), unlike pypykatz which works offline against an exfiltrated dump.
sekurlsa::logonpasswords only recovers a cleartext password (rather than just the NTLM hash) if WDigest is enabled, check and set it first if the hash alone isn’t enough:
Via Metasploit/Meterpreter:

Credential Manager & Saved Sessions

SessionGopher finds and decrypts saved sessions for common remote-access tools (PuTTY, WinSCP, RDP, FileZilla) in one pass:
LaZagne sweeps a much broader set of local applications (browsers, mail clients, Wi-Fi, password managers) for stored credentials in one run:

Wi-Fi Credentials

To show wifi connection passwords in cleartext

RDP Connection Manager (.rdg) Files

If a master key is required instead, pull it via Mimikatz (as an .exe, or inside a Meterpreter session):
Copy the {GUID}:SHA1-key pair from the output, then decrypt directly:
DonPAPI automates DPAPI secret extraction (saved RDP/Wi-Fi/browser credentials) across an entire domain in one pass, worth reaching for once more than a single host is in scope.

Interesting Paths

These are some interesting paths and commands to look for credentials. For a more detailed search check the Windows OS Enumeration page

Quick Reference Tools

Password Cracking

Crack any NTLM/NetNTLMv2/DCC2 hash dumped on this page.

AD Kerberos Ticket Attacks

DCSync, Golden/Silver tickets, Pass-the-Ticket, and NTDS.dit, the domain-wide techniques this page deliberately excludes.

pypykatz

Parse an exfiltrated LSASS dump offline, no Mimikatz or Windows required.

LaZagne

Broad local credential sweep across dozens of applications.