kali linux 中文文档 下载 App

John the Ripper 密码破解工具详解

John the Ripper 简介

John the Ripper(简称 "John")是密码破解领域的老牌工具,开源免费,跨平台。它的设计哲学是"智能猜测"——内置多种密码规则和行为模式,比纯字典暴力破解更高效。Kali 自带的是 Jumbo Edition,包含了 200+ 种哈希格式支持和 GPU 加速。

三种工作模式

模式说明速度
Single把用户名当密码、加常见后缀(123, !, 2024)最快,适合有目标用户的场景
Wordlist字典直接跑(和 Hashcat -a 0 类似)中等
Incremental纯暴力,按字符集组合所有可能最慢,实际很少用

破解 Linux 用户密码示例

步骤一:提取哈希

先同时提取 /etc/passwd 和 /etc/shadow 给 John 统一格式:

unshadow /etc/passwd /etc/shadow > unshadowed.txt

unshadowed.txt 包含所有本地账户的密码哈希。

步骤二:运行 John

# Single 模式(先跑一轮智能猜测)
john single unshadowed.txt

# Wordlist 模式 + 规则(最常用)
john --wordlist=/usr/share/wordlists/rockyou.txt --rules unshadowed.txt

--rules 让 John 对字典里的每个密码尝试 300+ 种变形规则(倒序、加前后缀、字母大小写替换、leet speak 转换等)。

步骤三:查看已破解的密码

john --show unshadowed.txt

已破解的密码会显示出来,没破解的保持问号。

常见哈希类型

John 会自动识别哈希格式(自动探测),也可以手动指定:

# 指定哈希格式
john --format=sha512crypt hash.txt
john --format=bcrypt hash.txt
john --format=nt hash.txt      # Windows NTLM
john --format=raw-md5 hash.txt  # 纯 MD5
john --format=wpa-psk capture.cap  # WPA2

常用格式列表:john --list=formats

GPU 加速

Jumbo 版 John 支持 OpenCL 和 CUDA GPU 加速:

# 检查构建信息(确认有 OpenCL)
john --list=build-info

# 使用 GPU 加速
john --format=raw-md5-opencl hash.txt
john --format=wpa-psk-opencl capture.cap

GPU 版的格式名通常在 CPU 格式后加 -opencl 或 -cuda。

Single 模式详解

Single 模式的"智能猜测"是 John 最独特的功能。它针对每个用户名自动生成候选密码:

root → root, root123, root1!, toor, Root, R00t, ...
john → john, john123, john2024, njoh, John, ...
admin → admin, admin123, admin!, nimda, Admin, ...

对于知道目标用户名的场景(比如内部渗透),Single 模式的命中率出奇的高——很多人真的会用用户名或用户名加个简单数字做密码。

规则自定义

John 的 --rules 可以用自定义规则,规则文件路径:

# 列出所有规则集
john --list=rules

自定义规则示例(在 john.conf 的 [List.Rules:MyRule] 段):

:
$1 $2 $3
c $1 $2 $3

John vs Hashcat 对比

维度John the RipperHashcat
原生 GPU 加速OpenCL/CUDA(Jumbo 版)CUDA/OpenCL/HIP(完整)
暴力模式Single(智能)+ Incremental无 Single,但掩码更灵活
格式覆盖200+(Jumbo 版)几乎所有主流格式
盐值处理支持支持
会话恢复支持支持(更完善)
社区更新较缓慢活跃,新哈希跟进快
适合场景已知用户名、智能猜测大规模 GPU 加速、掩码攻击