Pass-the-Hash (PtH) is one of the oldest and most devastating Windows attacks. NTLM authentication doesn't need your password - just the hash. If you steal the hash, you ARE that user for any NTLM authentication.
It's like having a mold of someone's key. You don't need the original key or know how it was cut - the mold (hash) opens all the same locks. Microsoft has tried to kill NTLM for 20 years, but it's still everywhere for backward compatibility.
NTLM Won't Die
Even modern Windows environments use NTLM as a fallback. As long as NTLM exists, Pass-the-Hash remains viable. It's disabled by default nowhere.
How Pass-the-Hash Works
Hash = Password Equivalent
For NTLM authentication, the hash IS the password. You don't need to crack it - just use it directly. This is by design in the NTLM protocol.
Obtaining NTLM Hashes
From LSASS Memory
From SAM Database
From NTDS.dit (Domain)
From Network Traffic
Using Hashes
Impacket Suite
CrackMapExec
Mimikatz
Evil-WinRM
Format Matters
Impacket uses LM:NT format (aad3b435...:a9b30e5b...). CME uses just NT. Mimikatz uses just NT. Know your tool's expected format.
Attack Scenarios
Scenario 1: Local Admin Spraying
Scenario 2: Domain Admin Hash
Scenario 3: Lateral Movement Chain
Limitations & Workarounds
Checking for Restrictions
NTLM vs NTLMv2
Captured vs Dumped
Hashes dumped from memory/SAM are static NT hashes (ready for PtH). Hashes captured from network are NTLMv2 responses (need cracking).
Detection & Defense
LAPS is Critical
Local Administrator Password Solution (LAPS) gives each computer a unique local admin password. This prevents one compromised hash from working everywhere - the #1 defense against PtH spraying.
Pass-the-Hash Methodology
Pass-the-Hash Attack Flow
1
Obtain AccessGet local admin on initial target
2
Dump HashesExtract from LSASS, SAM, or NTDS
3
Identify TargetsFind where hashes might work
4
SprayTest hash across multiple targets
5
AccessPtH to successful targets
6
RepeatExtract more hashes, expand access
Knowledge Check
Challenges
Key Takeaways
- NTLM uses hash directly - password not needed
- Dump hashes from LSASS, SAM, or NTDS.dit
- Spray hashes to find reused passwords
- Remote UAC may limit non-RID-500 accounts
- LAPS prevents hash spraying for local admin
- Credential Guard protects hash storage