NetNTLMv1-VANILLA / NetNTLMv1+ESS Hash

Technical details, regex signatures, and cracking commands for the NetNTLMv1-VANILLA / NetNTLMv1+ESS algorithm.

Regex Identification Signature:
^[^\\\/:*?"<>|]{1,20}[:]{2,3}([^\\\/:*?"<>|]{1,20})?:[a-f0-9]{48}:[a-f0-9]{48}:[a-f0-9]{16}$
Hashcat Command (Mode: 5500):
John the Ripper Command:
← Back to Hash Identifier

What is NetNTLMv1-VANILLA / NetNTLMv1+ESS?

The **NetNTLMv1-VANILLA** and **NetNTLMv1+ESS** hash formats are derived from Microsoft’s legacy NTLM (New Technology LAN Manager) authentication protocol, originally introduced in the 1990s as a replacement for LM hashes to address their weak cryptographic properties. NetNTLMv1-VANILLA represents the raw, unsalted MD4-based hash of a user’s password concatenated with the string "TRUSTED!", producing a 128-bit (16-byte) hash in hexadecimal format (e.g., `0x452DCE2F0A...`). The **NetNTLMv1+ESS** variant introduces a minor modification by prepending an "ESS" prefix to the concatenated string ("ESS" + password + "TRUSTED!"), yielding a structurally identical hash output but differing in the initial input composition. These formats were primarily used in Windows authentication (e.g., SMB, RPC) prior to the adoption of NTLMv2, serving as a transitional mechanism to mitigate LM’s vulnerabilities while retaining compatibility with older systems. The protocol lacked built-in salting, relying instead on the server’s challenge-response mechanism to mitigate offline attacks, though this proved insufficient against modern computational attacks.

The **NetNTLMv1** hashes are highly vulnerable to cracking due to their reliance on **MD4**, a cryptographically broken hash function susceptible to collision attacks and preimage resistance weaknesses. The absence of per-user salting or iterative hashing enables attackers to leverage **rainbow tables** or **brute-force dictionaries** against plaintext password guesses, as the same hash is generated for identical inputs across users. Additionally, the **challenge-response nature** of NTLMv1 (where the server sends a nonce) does not protect against offline cracking—once a hash is captured (e.g., via MITM or dumping SAM/LSASS), it can be processed in parallel using **GPU-accelerated tools** (e.g., Hashcat’s `ntlm` attack mode) at speeds exceeding **millions of hashes per second**. The lack of computational overhead (e.g., no key stretching) and the **predictable structure** of the hash (fixed prefix/suffix) further exacerbate susceptibility, making these formats obsolete for secure authentication. Modern exploits (e.g., Pass-the-Hash attacks) exploit these weaknesses by replaying captured NTLMv1 hashes without requiring the original password.

Identifying NetNTLMv1-VANILLA / NetNTLMv1+ESS Hashes

Identifying a hash blindly is often difficult because multiple algorithms can output strings of the exact same length. For example, a standard 32-character hexadecimal string could be MD5, NTLM, MD4, or LM. To definitively identify NetNTLMv1-VANILLA / NetNTLMv1+ESS, security researchers analyze the hash against a strict regular expression (regex) signature (shown above) to find structural matches.

How to Crack NetNTLMv1-VANILLA / NetNTLMv1+ESS

If you need to recover the plaintext password for a NetNTLMv1-VANILLA / NetNTLMv1+ESS hash during a penetration test or forensics investigation, you must supply the correct module ID to your cracking software. Use the exact commands provided at the top of this page to target the hash successfully.