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
hashid comes back empty or not correct:
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.| Site | Covers |
|---|---|
| CrackStation | MD5, SHA1, SHA256, SHA512, NTLM, MySQL, and more; largest free precomputed table (~15 billion entries) |
| Hashes.com | Same 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
| Mode | Hash Type |
|---|---|
| 0 | MD5 |
| 100 | SHA1 |
| 1400 | SHA256 |
| 1700 | SHA512 |
| 1000 | NTLM |
| 5600 | NetNTLMv2 |
| 1800 | sha512crypt (modern Linux /etc/shadow) |
| 3200 | bcrypt |
| 13100 | Kerberos 5 TGS-REP (Kerberoasting) |
| 18200 | Kerberos 5 AS-REP (AS-REP Roasting) |
| 22000 | WPA-PBKDF2 (WPA/WPA2 handshake) |
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.
| Symbol | Charset |
|---|---|
?l | lowercase a-z |
?u | uppercase A-Z |
?d | digits 0-9 |
?h | lowercase hex |
?H | uppercase hex |
?a | all of ?l?u?d?s combined |
?b | every byte, 0x00-0xff |
?s | printable 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.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.

