Loading...

文章背景图

John the Ripper 保姆级部署教程:经典开源密码破解工具支持多种哈希格式自动检测

2026-11-07
0
- 字
- 分钟
|

一、项目简介

John the Ripper(常简称 JtR)是 Openwall 维护的经典开源密码破解工具,最初用于检测 Unix 系统中的弱口令,现已扩展为跨平台、支持数百种哈希和密码算法的综合密码恢复工具。本教程使用社区增强版 "jumbo" 分支,包含大量社区贡献的算法和功能。

John the Ripper 内置多种破解模式(字典、规则、增量、单一快速等),可自动识别哈希类型,广泛用于渗透测试中的密码恢复、安全审计和取证场景。

官方主页:https://www.openwall.com/john/

GitHub 仓库:https://github.com/openwall/john

Openwall 官方 Logo

二、功能特点

  • 哈希类型自动检测:自动识别传统 DES、MD5-crypt、Blowfish(bcrypt)、SHA-crypt、Kerberos/AFS、Windows LM/NTLM 等数百种哈希格式。
  • 多种破解模式:字典模式、字典+规则变形、增量模式(暴力穷举)、单一快速模式(基于用户信息)。
  • 跨平台:支持 Linux、macOS、Windows、DOS、BeOS、OpenVMS。
  • 会话恢复:破解中断后可随时用 --restore 恢复进度。
  • 性能优化:支持 OpenMP 多线程并行,jumbo 版还支持 GPU(需配合对应构建)。
  • 规则引擎:可自定义密码变形规则,自动生成候选口令。

三、环境要求

  • 操作系统:Linux(推荐 Ubuntu 22.04/24.04)、macOS、Windows。
  • 源码编译依赖:gcc、make、libssl-dev、zlib1g-dev、git(Linux);Xcode Command Line Tools(macOS)。
  • 磁盘:源码和编译产物约 500MB;字典文件视大小而定。
  • CPU:支持多核心,核数越多破解越快。

四、安装部署步骤

4.1 方式一:包管理器安装(最快)

# Debian/Ubuntu
sudo apt update
sudo apt install -y john

# macOS
brew install john-jumbo

注意:apt 仓库的 john 版本较旧,如需最新算法和 jumbo 功能建议源码编译。

4.2 方式二:源码编译(jumbo 版)

sudo apt install -y build-essential libssl-dev zlib1g-dev git

git clone --depth 1 --branch bleeding-jumbo https://github.com/openwall/john.git
cd john

# 配置并编译(自动识别 CPU 架构)
./configure
make -j$(nproc)

# 编译完成后进入 run 目录
cd run
./john --list=build-info

编译产物在 run/ 目录下,可执行文件为 ./john。如需 OpenMP 多线程支持,编译时确保 GCC 版本支持。

4.3 验证安装

./john --list=formats | head -20
./john --list=rules
./john --test    # 运行基准测试,查看性能

五、基础使用

5.1 准备哈希文件

John 需要输入包含哈希的文件。对于 Linux 系统,可从 /etc/shadow 提取(需 root);对于 Windows,可用 John 自带的工具从 SAM 提取。手动构造示例:

# hash.txt 内容(一行一个哈希)
echo 'user1:$6$salt$hashvalue...' > hash.txt

5.2 字典模式破解

# 使用内置密码字典
sudo cp /usr/share/john/password.lst .  # 或源码目录 run/password.lst
./john --wordlist=password.lst hash.txt

# 启用规则变形(对字典做大小写、追加数字等变换)
./john --wordlist=password.lst --rules hash.txt

5.3 增量(暴力)模式

./john --incremental hash.txt
# 限定字符集和长度
./john --incremental=digits --min-length=6 --max-length=8 hash.txt

5.4 查看已破解密码

./john --show hash.txt
# 破解结果也保存在 john.pot 文件中
cat john.pot

5.5 恢复中断的会话

./john --restore
# 恢复到指定会话
./john --restore=2

5.6 指定哈希格式

# 自动识别失败时手动指定格式
./john --format=sha512crypt hash.txt
./john --format=nt hash.txt
# 支持的格式列表
./john --list=formats

六、常见问题 FAQ

Q1:编译报错 "openssl/ssl.h not found"

安装 OpenSSL 开发库:sudo apt install libssl-dev(Debian/Ubuntu)或 brew install openssl(macOS)。

Q2:运行提示 "No password hashes loaded"

说明哈希格式未被识别或哈希文件格式不对。先用 --format=? 查看支持的格式;用 john --list=formats 确认。John 需要用户名:哈希的格式,可手动调整。

Q3:破解速度很慢

先用字典+规则模式再上暴力;选择合适的格式(避免用通用格式而应指定具体算法);多核 CPU 用 john-omp 可执行文件;GPU 加速需编译对应版本(如本仓库的 GPU 分支)。

Q4:john.pot 文件有什么用?

它记录了已破解的哈希,下次运行时会自动跳过已破解项,避免重复计算。不要删除该文件,除非你想重新破解。

Q5:合法使用边界

John the Ripper 仅应用于你拥有授权的系统、自己的账户或经过书面许可的渗透测试。未经授权破解他人密码属于违法行为。

七、参考链接

评论交流

文章目录