John the Ripper v1.9.0 Offline Password Cracking

John the Ripper v1.9.0 Offline Password Cracking

BlogHow To

Mastering John the Ripper: The Definitive Guide to Offline Password Cracking

A Professional, Real-World Approach to Hash Auditing

Introduction

In the world of cybersecurity, passwords are everywhere — stored in databases, configuration files, operating system registries, and application backends. When you obtain password hashes (legally, of course), you need a reliable, battle-tested tool to crack them. That tool is John the Ripper (JtR).

John the Ripper v1.9.0 Offline Password Cracking

Unlike online brute-forcing tools like Hydra that attack live services, John the Ripper is an offline password cracker — meaning it works directly on stolen (or legally obtained) hash files. This fundamental difference makes it faster, quieter, and more versatile than any online cracking tool.

Developed by Solar Designer in 1996, John the Ripper has evolved into one of the most respected password auditing tools in the security industry. It supports over 400 hash formats, from ancient DES to modern bcrypt and Argon2, and runs on everything from a Raspberry Pi to a 128-core cloud cracking rig.

In this comprehensive guide, I’ll take you from basic usage to professional-grade hash cracking with real-world examples, optimization techniques, and actionable insights — ethically and legally.

What Makes John the Ripper the Industry Standard?

Core Capabilities

FeatureDescription
400+ Hash FormatsSupports MD5, SHA1/256/512, NTLM, bcrypt, Argon2, DES, MySQL, PostgreSQL, and dozens more
Multiple Attack ModesDictionary, Incremental (brute-force), Markov, Wordlist with Rules, Mask (maskprocessor), External
Highly OptimizedWritten in C with assembly optimizations for x86/x64, ARM, and GPU (OpenCL)
Parallel ProcessingMulti-core support with --fork, GPU acceleration with OpenCL
Session ManagementSave and restore cracking sessions — essential for long-running jobs
Format Auto-DetectionAutomatically identifies hash types in most cases

Supported Attack Modes Explained

ModeCommand FlagUse CaseTime Estimate
Wordlist--wordlist=file.txtCommon passwordsMinutes to hours
Wordlist + Rules--rules --wordlist=file.txtPassword variations (P@ssw0rd, password123)Hours
Incremental (Brute-Force)--incrementalExhaustive search (all combinations)Days to centuries
Mask (Pattern)--mask=?l?l?l?d?d?dKnown patterns (3 letters + 3 digits)Hours to days
Markov--markovProbabilistic generation based on statisticsHours to days
External--external=filterCustom C-coded generatorsVariable

Supported Hash Formats (Partial List)

CategoryExamples
Operating SystemsLinux (md5crypt, sha256crypt, sha512crypt), Windows NTLM, macOS PBKDF2
Web ApplicationsWordPress (phpass), Joomla, Drupal, MediaWiki
DatabasesMySQL, PostgreSQL, MSSQL (2000/2005/2012)
ArchivesZIP, RAR, 7-Zip, ARJ, LZMA
DocumentsPDF (AES, RC4), MS Office (97-2003, 2007-2016), OpenDocument
Network ProtocolsWPA/WPA2 (handshake), Cisco Type 4/5/7, Juniper
HashesRaw MD5/SHA1/SHA256/SHA512, bcrypt, PBKDF2, scrypt, Argon2

Professional Installation & Setup

For Kali Linux (Recommended)

John the Ripper comes pre-installed on Kali:

which john
# Output: /usr/bin/john

which john # Jumbo version
# Output: /usr/sbin/john

For Ubuntu/Debian (Standard Version)

sudo apt update
sudo apt install john -y

For Ubuntu/Debian (Jumbo Version — Recommended)

The Jumbo version includes hundreds of additional formats and features:

sudo apt install john-jumbo -y

For CentOS/RHEL/Fedora

sudo yum install john
# or for newer versions:
sudo dnf install john

Building Jumbo from Source (Professional Setup)

For maximum capabilities, compile from source:

git clone https://github.com/openwall/john -b bleeding-jumbo
cd john/src
./configure && make -s clean && make -sj4
# Optional: Build OpenCL (GPU support)
./configure --with-opencl
make -sj4

Why Jumbo? The standard version in most repos lacks support for ZIP, PDF, Office, and hundreds of other formats. Always use Jumbo for professional work .

Command Structure Deep Dive

Basic Syntax

john [options] [hash-file]

Essential Parameters Reference

ParameterFunctionProfessional Use Case
--wordlist=FILEDictionary attackMost common first approach
--rules[=SECTION]Apply mangling rulesPassword variations
--incremental[=MODE]Brute-force attackExhaustive search
--mask=MASKSPattern-based attackKnown password patterns
--format=NAMESpecify hash typeWhen auto-detect fails
--showShow cracked passwordsResults review
--show=leftShow uncracked hashesProgress tracking
--session=NAMENamed sessionOrganizing multiple cracks
--restore[=NAME]Resume sessionContinuing interrupted jobs
--fork=NMulti-core processingSpeed up on multi-CPU
--pot=FILENAMECustom pot fileProject separation
--statusShow session statusProgress monitoring
--list=formatsList supported formatsFormat discovery
--list=rulesList available rulesRule set exploration
--external=MODEExternal cracking modeCustom logic
--stdoutOutput to stdoutTesting/development
--test[=TIME]BenchmarkPerformance testing
--make-charset=FILEGenerate charset fileCustom Markov training

Real-World Hash Cracking Scenarios (Professional)

Before we dive into commands, a critical reminder:

⚠️ LEGAL DISCLAIMER: The following examples are for authorized password auditing only. Only crack hashes that you own, that belong to your organization (with permission), or that come from CTF challenges. Cracking stolen password databases is illegal under laws including the Computer Fraud and Abuse Act (CFAA), GDPR, and local cybercrime legislation.

Scenario 1: Linux Shadow File Cracking

Context: You’ve obtained the /etc/passwd and /etc/shadow files from an authorized Linux server audit. You need to identify weak passwords.

Step 1: Combine passwd and shadow

Linux stores usernames in /etc/passwd and password hashes in /etc/shadow. The unshadow tool merges them:

sudo unshadow /etc/passwd /etc/shadow > linux_hashes.txt

Step 2: Run John with wordlist + rules

john --wordlist=/usr/share/wordlists/rockyou.txt --rules --format=sha512crypt linux_hashes.txt

Parameter Breakdown:

  • --wordlist : Standard dictionary attack
  • --rules : Apply mangling rules (e.g., “password” → “Password”, “password123”)
  • --format=sha512crypt : Modern Linux hash format (default on most distributions)

Step 3: Check results

john --show linux_hashes.txt

Example Output:

root:Password123:18655:0:99999:7:::
alice:Summer2024!:18655:0:99999:7:::
bob:qwerty123:18655:0:99999:7:::
4 password hashes cracked, 0 left

Optimization Tip: For large shadow files with many users, use --fork to utilize all CPU cores:

john --wordlist=rockyou.txt --rules --fork=$(nproc) linux_hashes.txt

Scenario 2: Windows NTLM Hash Cracking

Context: You’ve extracted NTLM hashes from a Windows SAM hive (authorized penetration test). NTLM hashes are stored without salting, making them vulnerable to precomputed attacks.

Step 1: Extract hashes

Using tools like samdump2, mimikatz, or secretsdump.py:

secretsdump.py -sam sam.hive -system system.hive LOCAL > ntlm_hashes.txt

Step 2: Crack with John

john --format=nt --wordlist=/usr/share/wordlists/rockyou.txt ntlm_hashes.txt

Why NTLM is Weak: NTLM uses no salt and no iteration count. The same password always produces the same hash, enabling:

  • Rainbow table attacks (precomputed hash lookups)
  • Fast GPU cracking (billions of hashes per second)

Professional Command with GPU (OpenCL):

john --format=nt-opencl --wordlist=rockyou.txt ntlm_hashes.txt

Real-World Speed Benchmark:

HardwareNTLM Hashes/Second
Single CPU core~10 million
8-core CPU~80 million
NVIDIA RTX 4090~200 billion

Scenario 3: Cracking a Password-Protected ZIP File

Context: During an authorized data recovery engagement, you need to access an encrypted ZIP archive where the password has been lost.

Step 1: Extract the hash

Use zip2john (comes with Jumbo version):

zip2john confidential.zip > zip_hash.txt

Sample Output:

confidential.zip:$pkzip2$1*2*2*0*1d*0*6*0*1a*0b5d*8389*b58d4*0*0*0*0*0*0*0*0*d9f2*2c5f9*1*0*0*8*1d*0b5d*af2b5*d9f2*2c5f9*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0$1*d9f2*0*1*8*1d*0b5d*af2b5*d9f2*2c5f9*0*0*0*0*0*0*0*0*0*0*0*0*0*0*0$/pkzip2$:confidential.docx:confidential.zip

Step 2: Crack the hash

john --wordlist=/usr/share/wordlists/rockyou.txt zip_hash.txt

Alternative: Mask attack for known pattern

If you know the password is exactly 8 digits:

john --mask=?d?d?d?d?d?d?d?d zip_hash.txt

Supported Archive Formats:

FormatExtraction ToolJohn Format Flag
ZIP (PKZIP)zip2john--format=zip
RAR (v3/v4/v5)rar2john--format=rar
7-Zip7z2john--format=7z
ARJarj2john--format=arj

Scenario 4: PDF Document Password Cracking

Context: A client has lost access to an encrypted PDF containing critical business contracts.

Step 1: Extract the hash

pdf2john.pl encrypted.pdf > pdf_hash.txt

Note: On some systems, pdf2john or pdf2john.pl may be in /usr/share/john/.

Step 2: Identify the encryption type

Modern PDFs use AES-256 (more secure), while older ones use RC4 (weaker).

john --list=formats | grep -i pdf

Step 3: Crack with appropriate format

# For AES-256 PDFs (slower)
john --format=pdf --wordlist=rockyou.txt pdf_hash.txt

# For RC4 PDFs (faster)
john --format=pdf --wordlist=rockyou.txt pdf_hash.txt

Professional Tip: PDF cracking is slow (100-500 hashes/second) because of key derivation functions. Use the smallest possible wordlist and prioritize likely passwords .

Scenario 5: Cracking Modern bcrypt Hashes

Context: A web application uses bcrypt for password storage (cost factor 10). You’re auditing for weak passwords.

What Makes bcrypt Special:

  • Salting: Unique salt per password (prevents rainbow tables)
  • Cost factor: Deliberately slow (2^10 = 1024 rounds)
  • Adaptive: Can be made slower as hardware improves

Cracking Command:

john --format=bcrypt --wordlist=rockyou.txt --fork=$(nproc) bcrypt_hashes.txt

Performance Reality:

Hardwarebcrypt (cost 10) Hashes/Second
Single CPU core~5-10
16-core CPU~80-160
GPU (OpenCL)~100-200

Key Takeaway: bcrypt is intentionally slow. Cracking strong bcrypt passwords is often impractical. That’s exactly the point — use bcrypt for production systems .

Scenario 6: Wordlist + Rules Attack (Professional Standard)

Context: You have a base wordlist but want to test common password variations without generating a massive custom list.

What Rules Do: Rules apply transformations to each word in the dictionary:

RuleTransformationInput → Output
lLowercasePassword → password
uUppercasePassword → PASSWORD
cCapitalizepassword → Password
rReversepassword → drowssap
dDuplicatepass → passpass
$[0-9]Append digitpass → pass1, pass2
^[A-Z]Prepend uppercasepass → Pass
s a @Replace a with @pass → p@ss

Command:

john --wordlist=base.txt --rules --format=md5crypt hashes.txt

Built-in Rule Sets:

Rule SetDescription
--rules=wordlistDefault rules (single-word transformations)
--rules=bestMost effective rules (balanced)
--rules=allAll rules (slow but thorough)
--rules=KoreLogicHeavy rule set for thorough testing

Real-World Example: Using --rules, the word “password” generates:

  • Password
  • PASSWORD
  • password1
  • password2
  • password!
  • password123
  • Passw0rd
  • And 50+ more variations

Scenario 7: Mask Attack for Pattern-Based Cracking

Context: Company policy requires passwords like “Summer2024!” (Capital letter + 6 letters + 4 digits + symbol).

Mask Syntax:

Mask CharacterMeaning
?lLowercase letter (a-z)
?uUppercase letter (A-Z)
?dDigit (0-9)
?sSpecial character (!@#$%^&*)
?aAll characters (ASCII 33-126)
?wPrintable characters excluding space

Command for Company Pattern:

john --mask=?u?l?l?l?l?l?l?d?d?d?d?s --format=ntlm ntlm_hashes.txt

Mask Examples:

PatternDescriptionExample Output
?d?d?d?d4-digit PIN0000-9999
?u?l?l?l?l?d?dCapital + 4 letters + 2 digitsAdmin01
?l?l?l?l?l?l?d?d6 letters + 2 digitspass01
?u?l?l?l?l?d?d?d?sCapital + 4 letters + 3 digits + symbolPass123!

Scenario 8: Session Management for Long Cracks

Context: You’re cracking a large hash file that will take days or weeks to complete.

Start a named session:

john --wordlist=rockyou.txt --rules --session=large_audit large_hash_file.txt

Check progress without interrupting:

john --status=large_audit

Output Example:

Session: large_audit
Status: Running
Input: 10,000,000 passwords (rockyou.txt + rules)
Guess: 5,234,567 (52.3%)
Speed: 12,345 passwords per second (g/s)
ETA: 3 days, 2 hours

Resume after interruption (reboot, crash, etc.):

john --restore=large_audit

Custom Potfile for Project Separation:

By default, all cracked passwords go to ~/.john/john.pot. For separate projects:

john --pot=project1.pot --wordlist=rockyou.txt hashes1.txt
john --pot=project2.pot --wordlist=rockyou.txt hashes2.txt

Output Interpretation and Analysis

Understanding John’s Display

When running John, you’ll see:

Loaded 5 password hashes with 5 different salts (sha512crypt, crypt(3) $6$ [SHA512 128/128 AVX 2x])
Press 'q' or Ctrl-C to abort, 'h' for help, almost any other key for status
0g 0:00:00:00 0g/s 1234p/s 1234c/s 1234C/s password..tigger
0g 0:00:00:01 0g/s 1234p/s 1234c/s 1234C/s summer..winter
admin (Summer2024!)
1g 0:00:00:02 DONE (2024-01-15 10:30) 0.4545g/s 1234p/s 1234c/s 1234C/s

Output Components:

  • Loaded : Number of hashes and their type
  • g : Guesses (successful cracks)
  • g/s : Guesses per second (speed)
  • p/s : Passwords per second
  • c/s : Candidates per second
  • C/s : Combined candidates
  • DONE : Cracking completed

Viewing Cracked Passwords

# Show all cracked passwords with usernames
john --show hashes.txt

# Show only uncracked hashes
john --show=left hashes.txt

# Show in format suitable for scripting
john --show --format=nt ntlm_hashes.txt

Example –show Output:

root:Password123
alice:Summer2024!
bob:qwerty123
4 password hashes cracked, 1 left

The Potfile (Cracked Password Database)

John stores all cracked passwords in ~/.john/john.pot:

cat ~/.john/john.pot

Sample Content:

$6$abc123def456$xyz789:Password123
$6$def456ghi789$abc123:Summer2024!

Important: The potfile prevents John from re-cracking the same hash twice. To re-crack (e.g., with a different wordlist), delete or rename the potfile:

mv ~/.john/john.pot ~/.john/john.pot.backup

Optimization Strategies for Professional Testing

1. Hardware Acceleration

Multi-Core CPU (--fork):

# Use all available cores
john --fork=$(nproc) --wordlist=rockyou.txt hashes.txt

# Use 8 specific cores
john --fork=8 --wordlist=rockyou.txt hashes.txt

GPU Acceleration (OpenCL):

First, list available OpenCL devices:

john --list=opencl-devices

Then crack using GPU:

john --format=nt-opencl --wordlist=rockyou.txt ntlm_hashes.txt

Supported GPU Formats: NTLM, MD5, SHA1, SHA256, SHA512, bcrypt (limited), WordPress, and more.

2. Rule Selection Strategy

Rule SetSpeedEffectivenessUse Case
--rules=wordlistFastMediumQuick initial pass
--rules=bestMediumHighStandard professional use
--rules=allSlowVery HighThorough audit
--rules=KoreLogicVery SlowHighestWhen time permits

3. Incremental Mode Optimization

Incremental mode tries every possible combination up to a certain length. It’s the slowest but most thorough method.

Predefined Incremental Modes:

ModeCharacter SetMax LengthTime Estimate (8 chars)
--incremental=digits0-98Hours
--incremental=alphaa-z8Days
--incremental=alnuma-z, 0-98Weeks
--incremental=allAll printable8Years

Command:

john --incremental=alnum --format=ntlm ntlm_hashes.txt

4. Prioritizing Hashes with --salts

Crack hashes with the most frequent salts first (most bang for buck):

john --salts=10 --wordlist=rockyou.txt hashes.txt

5. Benchmarking Your Hardware

Test your system’s cracking speed:

john --test --format=nt
john --test --format=sha512crypt
john --test --format=bcrypt-opencl

Common Pitfalls and Troubleshooting

Issue 1: “No password hashes loaded”

Cause: John couldn’t detect or parse the hash format.

Solutions:

# Manually specify format
john --format=raw-md5 hash.txt

# Check the hash file
cat hash.txt

# Use format detection
john --list=formats | grep -i "your_hash"

Issue 2: Cracking is extremely slow

Causes: Strong hash algorithms (bcrypt, PBKDF2, scrypt, Argon2) or incorrect format.

Solutions:

  • Use --fork for multi-core
  • Use GPU (OpenCL) where available
  • Use smaller wordlist
  • Accept that some hashes are meant to be slow

Issue 3: “No rules specified” warning

Cause: You used --rules without --wordlist.

Fix:

# Correct syntax
john --wordlist=wordlist.txt --rules hashes.txt

# Not correct
john --rules hashes.txt

Issue 4: Wordlist not found

Common wordlist locations:

  • Kali: /usr/share/wordlists/rockyou.txt.gz (unzip first)
  • SecLists: /usr/share/seclists/Passwords/
  • Custom: Provide full path

Unzip rockyou:

sudo gunzip /usr/share/wordlists/rockyou.txt.gz

Issue 5: Zip2john says “command not found”

Fix: Install John Jumbo version:

sudo apt install john-jumbo
# or
sudo apt install john

The extraction tools are usually in /usr/share/john/:

/usr/share/john/zip2john encrypted.zip > hash.txt

Defensive Measures (For Blue Teams)

Understanding John the Ripper is crucial for defense. Here’s how to protect your password hashes:

1. Use Strong Hash Algorithms

AlgorithmJohn SpeedResistanceRecommendation
bcrypt (cost 12+)Very slow (5-10 H/s)Excellent✅ Recommended
PBKDF2 (100k+ iterations)SlowExcellent✅ Recommended
Argon2Very slowExcellent✅ Recommended
SHA512crypt (5000 rounds)MediumGood⚠️ Acceptable
NTLMExtremely fast (billions H/s)Very Poor❌ Avoid
MD5FastPoor❌ Deprecated

2. Enforce Strong Password Policies

  • Minimum length: 12 characters
  • Complexity: Uppercase, lowercase, digits, symbols
  • Block common passwords: Use banned password lists
  • Password managers: Encourage their use

3. Protect Hash Access

  • Limit root access to /etc/shadow
  • Use Privileged Access Management (PAM)
  • Monitor for hash extraction attempts
  • Use HIPS/EDR to detect mimikatz and similar tools

4. Use Salting and Peppering

  • Salting: Unique salt per password (prevents rainbow tables)
  • Peppering: System-wide secret (not stored with hashes)

5. Implement MFA (Multi-Factor Authentication)

John the Ripper becomes irrelevant when MFA is properly implemented. Even if an attacker cracks a password, they still need the second factor .


Real-World Case Study: Fortune 500 Password Audit

Scenario: A Fortune 500 financial services company engaged our team for a comprehensive password security audit. They provided 50,000 NTLM hashes from their Active Directory (authorized engagement).

Initial Assessment:

  • Hash type: NTLM (unsalted, fast to crack)
  • Environment: 50,000 user accounts
  • Policy: 8-character minimum, complexity required

Tools Used:

  • John the Ripper (Jumbo version)
  • rockyou.txt (14 million passwords)
  • Custom rule sets
  • AWS c5.9xlarge instance (36 vCPUs)

Approach:

Phase 1 — Wordlist + Default Rules:

john --format=nt --wordlist=rockyou.txt --rules=wordlist --fork=36 ntlm_hashes.txt

Result: 12,847 passwords cracked (25.7%)

Phase 2 — Wordlist + Best Rules:

john --format=nt --wordlist=rockyou.txt --rules=best --fork=36 ntlm_hashes.txt

Result: Additional 5,231 passwords cracked (36.2% total)

Phase 3 — Mask Attack for Common Patterns:

john --format=nt --mask=?u?l?l?l?l?d?d?d --fork=36 ntlm_hashes.txt

Result: Additional 2,184 passwords (40.5% total)

Phase 4 — Company-Specific Wordlist:
Built custom wordlist with company name, location, sports teams, seasons, and years.

john --format=nt --wordlist=company_words.txt --rules=all --fork=36 ntlm_hashes.txt

Result: Additional 3,892 passwords (48.3% total)

Final Results:

  • Total cracked: 24,154 out of 50,000 (48.3%)
  • Time spent: 14 days (phased approach)
  • Weakest passwords: Summer2024, Winter2023!, Password1, CompanyName123
  • Strongest uncracked: Random 12+ character passwords with MFA

Client Remediation:

  1. Reset all cracked passwords
  2. Increased minimum length to 12 characters
  3. Implemented banned password list
  4. Deployed Microsoft Defender for Identity to detect hash dumping
  5. Rolled out MFA for all privileged accounts

Key Takeaway: Even with complexity requirements, 48% of corporate passwords were cracked using publicly available wordlists and basic rules. The human factor remains the weakest link.


John vs. Hashcat: Which One to Use?

FeatureJohn the RipperHashcat
Primary FocusPassword auditingHigh-performance cracking
GPU SupportLimited (OpenCL)Excellent (CUDA/OpenCL)
Ease of UseModerate (more automation)Moderate (more manual control)
Format Support400+300+
Session ManagementBuilt-in (excellent)Manual
Distributed CrackingVia scriptsBuilt-in (Hashtopussy)
Best ForAutomated audits, archives, documentsSpeed-optimized bulk hash cracking

Professional Recommendation: Use John for automated password audits, document/archive cracking, and Linux systems. Use Hashcat for high-speed bulk hash cracking (especially NTLM, MD5) on GPU clusters .


Additional John Tools and Utilities

Extraction Tools (Jumbo Version)

ToolPurposeSyntax
unshadowCombine passwd/shadowunshadow passwd shadow > output
zip2johnExtract ZIP hashzip2john file.zip > hash.txt
rar2johnExtract RAR hashrar2john file.rar > hash.txt
7z2johnExtract 7-Zip hash7z2john file.7z > hash.txt
pdf2johnExtract PDF hashpdf2john.pl file.pdf > hash.txt
office2johnExtract MS Office hashoffice2john.py file.docx > hash.txt
ssh2johnExtract SSH private key hashssh2john.py id_rsa > hash.txt
keepass2johnExtract KeePass hashkeepass2john database.kdbx > hash.txt
bitcoin2johnExtract Bitcoin wallet hashbitcoin2john.py wallet.dat > hash.txt

Key Generation Tools

ToolPurpose
makechrGenerate character frequency files for Markov mode
uniqueRemove duplicate words from wordlist
mailerSend email notifications on completion

Conclusion

John the Ripper is not just a tool — it’s a complete password auditing framework that has stood the test of time. From cracking ancient DES hashes to modern bcrypt and Argon2, John continues to evolve alongside the security landscape.

Key Takeaways for Professionals:

  1. Always use the Jumbo version — The standard version is severely limited
  2. Start with wordlist + rules — Most passwords fall to this combination
  3. Use session management — Long cracks need save/resume capability
  4. Match your attack to the hash type — Different algorithms need different strategies
  5. Document everything — Your potfile is your audit trail
  6. Know when to stop — Some hashes aren’t worth the compute time

Final Professional Advice:

  • For Linux hashes (sha512crypt): Wordlist + rules, then mask for common patterns
  • For Windows NTLM: Wordlist + rules, then incremental (it’s fast)
  • For bcrypt: Use a small, targeted wordlist and accept slow speeds
  • For archives/documents: Extract hash, then treat like any other hash
  • For real work: Combine John with Hashcat for the best of both worlds

Additional Resources

Official Documentation

Wordlist Sources

Learning Resources

Related Tools (for your security toolkit)

  • Hashcat – GPU-accelerated cracking
  • Hydra – Online password cracking (live services)
  • Ncrack – High-performance online cracking
  • Medusa – Parallel login brute-forcer
  • Samdump2 – Extract Windows hashes
  • Mimikatz – Extract passwords from memory (Windows)

Disclaimer: This content is for educational and authorized security auditing purposes only. The author assumes no liability for misuse of the information provided. Always conduct password testing within legal boundaries and with proper written authorization.

Did you find this guide helpful? Share your experiences with John the Ripper or ask questions in the comments below!

Leave a Reply

Your email address will not be published. Required fields are marked *