Skip to main content
This page focuses on turning a captured hash into a plaintext password. Every other page in this section, links back here rather than repeating command flags on every page.

Identify First

Cracking the wrong mode wastes time silently, hashcat and john just report no matches. Confirm the format before running anything.

Wordlist vs Mask

A wordlist (optionally mutated with rules) covers “probably a real word,” a mask attack covers “I know the structure” (company name + 4 digits, etc.). Pick based on what you actually know about the target.

Identifying the Hash

name-that-hash is a more actively maintained alternative, worth trying when hashid comes back empty or not correct:
openwall’s sample hashes and pentestmonkey’s John hash-format cheat sheet are the fastest way to eyeball-confirm a format against a known example when the identifier tools disagree or guess wrong.

Weak/Unsalted Hashes: Try an Online Lookup First

MD5, SHA1, and NTLM are fast to compute and have no salt, which means the same plaintext always produces the same hash, so these specific hashes get precomputed and published in huge lookup databases. If the hash is one of these, checking it against a database takes seconds and is free, no GPU time spent, worth doing before reaching for cracking tool at all. A salted hash (bcrypt, sha512crypt, anything with a salt visible in the hash string) will never hit in these, every user’s hash is unique even for the same password, so skip straight to the next section for those.
SiteCovers
CrackStationMD5, SHA1, SHA256, SHA512, NTLM, MySQL, and more; largest free precomputed table (~15 billion entries)
Hashes.comSame idea, a different (and sometimes complementary) database, worth checking as a second source

Hashcat

Hashcat is GPU-accelerated and the right default choice whenever a GPU is available, orders of magnitude faster than John on anything but CPU-only boxes.

Common Hash Modes

ModeHash Type
0MD5
100SHA1
1400SHA256
1700SHA512
1000NTLM
5600NetNTLMv2
1800sha512crypt (modern Linux /etc/shadow)
3200bcrypt
13100Kerberos 5 TGS-REP (Kerberoasting)
18200Kerberos 5 AS-REP (AS-REP Roasting)
22000WPA-PBKDF2 (WPA/WPA2 handshake)
Full mode list / example hashes for anything not covered above.

Mask Attack (-a 3)

Use when the password’s structure is known or guessable (a fixed prefix, a date suffix) rather than wasting time on a full wordlist.
SymbolCharset
?llowercase a-z
?uuppercase A-Z
?ddigits 0-9
?hlowercase hex
?Huppercase hex
?aall of ?l?u?d?s combined
?bevery byte, 0x00-0xff
?sprintable symbols

Generating a Mutated Wordlist Directly

Running a rule file against a base wordlist and saving the output (rather than feeding it live into hashcat) is useful when the same mutated list will be reused against multiple hash sets.
OneRuleToRuleThemAll is a far more thorough rule set than best64, worth switching to once a quick pass with best64 comes up empty.

John the Ripper

Still the right tool for anything hashcat doesn’t directly support, file-format hashes (SSH keys, Office documents, archives).

Extracting Hashes from Common File Types

Each of these follows the same pattern: extract a crackable hash from the file, run it through John, then show the result.

Cracking an Encrypted Archive by Brute Force

When no *2john extractor fits (a password-protected .gz/.tar.gz, for example), trying every password directly against the decompressor works just as well, just slower.

Quick Reference Tools

CrackStation

Free online hash lookup against a huge precomputed wordlist, worth trying before spending GPU time on a common hash.

name-that-hash

More actively maintained hash identifier than hashid.

OneRuleToRuleThemAll

The rule set to reach for once best64 comes up empty.

Hashcat Example Hashes

Full mode list with a real example of each hash type.