NTLM is the hash that protects Windows and Active Directory passwords, and from an attacker's chair it has a fatal flaw: it is fast and unsalted. There is no work factor, no per-user salt, nothing to slow a GPU down. That is why an Active Directory password audit, the legitimate exercise of cracking a domain's own hashes to find weak passwords, clears the easy ones in seconds and is one of the most reliable wins in security work. This is how it is done. Tested on hashcat 7.1.2.
TL;DR
NTLM is hashcat mode -m 1000. An NTLM hash is a 32-character hex string, identical in appearance to MD5, so you tell them apart by source: NTLM comes from Windows (a SAM hive, an NTDS.dit domain database, a credential-dumping tool). Because NTLM is fast and unsalted, a single modern GPU tries hundreds of billions of guesses per second, so the attack order is a wordlist, then rules, then masks, and even full eight-character brute force is on the table. Do not confuse NTLM (-m 1000, a stored hash) with NetNTLMv2 (-m 5600, a network-captured challenge-response); they are different things with different modes.
Where NTLM hashes come from
You crack NTLM during an authorised Active Directory assessment or password audit. The hashes are extracted from:
- The local SAM hive on a Windows host (local account hashes).
- The domain controller's NTDS.dit database (every domain account), typically via a tool like
secretsdumporntdsutilagainst a system you are authorised to test. - A live process with
mimikatzor similar, in a sanctioned engagement.
They usually arrive in pwdump format, username:RID:LMhash:NThash:::, with the NT hash in the fourth field. hashcat reads that directly with --username, or you cut out just the NT hashes.
Identify it
An NTLM hash looks exactly like MD5: 32 hexadecimal characters, no prefix, no salt.
8846f7eaee8fb117ad06bdd830b7586cThere is no way to tell NTLM and MD5 apart by looking; the difference is where it came from. A Windows credential dump is NTLM (-m 1000); a web app database is most likely MD5 (-m 0). When you genuinely cannot tell, crack with both modes. More on this in identifying a hash type.
Crack it
Put the NT hashes in a file (one per line, or pwdump lines with --username) and run a wordlist:
echo '8846f7eaee8fb117ad06bdd830b7586c' > ntlm.hash
hashcat -m 1000 -a 0 ntlm.hash rockyou.txtIt cracks immediately:
8846f7eaee8fb117ad06bdd830b7586c:password
Status...........: Cracked
Hash.Mode........: 1000 (NTLM)The high-yield real attack, as always, is a wordlist with rules:
# pwdump format straight from secretsdump, with rules
hashcat -m 1000 -a 0 --username ntds.txt rockyou.txt -r rules/best66.ruleBecause NTLM is so fast, you can afford to keep going past wordlists into mask attacks for known password policies, and even full eight-character brute force is realistic on good hardware.
Realistic crack times
This is where NTLM's speed becomes visceral. A single modern GPU (an RTX 4090) benchmarks NTLM at roughly 290 billion guesses per second. At that rate:
- A weak or reused password: cracked the instant a wordlist run starts.
- An eight-character all-lowercase password (
26^8, ~200 billion): about a second. - A full eight-character mixed-case-plus-digits-plus-symbol space: within reach in hours to days on a multi-GPU rig.
This is the entire argument for why fast unsalted hashes are unacceptable for passwords, and why bcrypt or Argon2 (ten million times slower to attack) exist. For full per-GPU numbers, see the hashcat benchmark deep dive.
NTLM is not NetNTLMv2 (a common mix-up)
Two different things share the "NTLM" name:
| What | hashcat -m | Where it comes from |
|---|---|---|
| NTLM | 1000 | A stored hash (SAM, NTDS.dit). The password hash at rest. |
| NetNTLMv1 | 5500 | A network challenge-response (legacy, weak). |
| NetNTLMv2 | 5600 | A network challenge-response, captured with a tool like Responder. |
If you captured authentication traffic off the wire (Responder, an SMB relay), you have NetNTLMv2 (-m 5600), not NTLM. It cracks the same way (wordlist plus rules) but it is salted by the challenge, so it is slower than raw NTLM and there is no pass-the-hash shortcut from it.
The defender's takeaway
NTLM's weakness is structural, not a bug you can patch: it is unsalted and fast, so any leaked NTLM set is an offline cracking buffet for weak passwords. The realistic defences are about the passwords, not the hash:
- Enforce length (long passphrases defeat the masks and brute force that fast hashes enable). A strength policy helps.
- Run your own AD password audits with exactly this technique, so you find the weak passwords before an attacker does.
- For anything you control the storage of, never use a fast unsalted hash; use bcrypt or Argon2.
Where to go next
- The other 32-hex hash: cracking MD5.
- The techniques: wordlists · rules · masks.
- Run it: how to use hashcat · hashcat cheat sheet.
- Why slow hashes win: cracking bcrypt.
Sources
Authoritative references this article was fact-checked against.
- hashcat, example hashes and modes (official)hashcat.net
- NT LAN Manager (Wikipedia)en.wikipedia.org
- Microsoft, NTLM overview (official docs)learn.microsoft.com





