John the Ripper Cheat Sheet
Versatile password cracker supporting hundreds of hash formats. Covers format detection, wordlist attacks, rule-based mutations, incremental brute-force, and session management.
Hash Formats
Search available formats for NTLM hash support
$ john --list=formats | grep -i ntlmCrack plain MD5 hashes
$ john --format=raw-md5 hashes.txtCrack bcrypt ($2a$, $2b$) hashes
$ john --format=bcrypt hashes.txtCrack Kerberoast TGS-REP hashes
$ john --format=krb5tgs hashes.txtAuto-detect hash format and begin cracking with defaults
$ john hashes.txtWordlist Attacks
Dictionary attack using the rockyou wordlist
$ john --wordlist=/usr/share/wordlists/rockyou.txt hashes.txtWordlist attack with a specific hash format
$ john --wordlist=custom.txt --format=raw-sha256 hashes.txtPreview the first 100 candidates without cracking
$ john --wordlist=wordlist.txt --stdout | head -100Constrain candidate passwords to 8-16 characters
$ john --wordlist=wordlist.txt --min-length=8 --max-length=16 hashes.txtRules & Mangling
Apply best64 rules for common password variations
$ john --wordlist=wordlist.txt --rules=best64 hashes.txtUse KoreLogic competition rules for aggressive mangling
$ john --wordlist=wordlist.txt --rules=KoreLogic hashes.txtApply the extended Jumbo ruleset for broad coverage
$ john --wordlist=wordlist.txt --rules=Jumbo hashes.txtList all available rule sections from the config
$ john --list=rulesCount total candidates generated by default rules
$ john --wordlist=wordlist.txt --rules --stdout | wc -lIncremental Mode
Full brute-force with default character set and length limits
$ john --incremental hashes.txtBrute-force using only digit characters
$ john --incremental=digits hashes.txtBrute-force lowercase letters up to 8 characters
$ john --incremental=lower --max-length=8 hashes.txtMask mode: each wordlist entry with 3 appended digits
$ john --mask=?w?d?d?d --wordlist=wordlist.txt hashes.txtSession Management
Start a named cracking session
$ john --session=crack1 --wordlist=wordlist.txt hashes.txtResume a previously interrupted session by name
$ john --restore=crack1Display all cracked passwords from the potfile
$ john --show hashes.txtShow cracked passwords for a specific hash format
$ john --show --format=raw-md5 hashes.txtUse a custom potfile instead of the default
$ john --pot=custom.pot --wordlist=wordlist.txt hashes.txt