引言
John the Ripper (通常缩写为 JtR) 是一个流行且强大的开源密码安全审计和密码恢复工具,适用于多种操作系统。虽然通常可以通过包管理器进行安装,但从源代码编译可以确保你获得最新版本,并允许进行自定义配置。
在本实验中,你将学习如何在 Linux 系统上安装 John the Ripper,方法是下载源代码、编译它,并将其添加到系统的 PATH 中以便于访问。所有操作都将在 ~/project 目录下进行。
下载 John the Ripper 源代码
在此步骤中,你将从 John the Ripper 的官方 GitHub 仓库下载其源代码。然后,我们将解压下载的压缩包,为编译做准备。你当前的工作目录是 ~/project。
首先,使用 wget 命令下载 John the Ripper 的 "Jumbo" 社区增强版的特定稳定版本。
wget https://github.com/openwall/john/archive/refs/tags/1.9.0-jumbo-1.tar.gz
你应该会看到输出指示文件正在被下载和保存。
--2023-10-27 10:30:00-- https://github.com/openwall/john/archive/refs/tags/1.9.0-jumbo-1.tar.gz
Resolving github.com (github.com)... 140.82.121.4
Connecting to github.com (github.com)|140.82.121.4|:443... connected.
HTTP request sent, awaiting response... 302 Found
...
Saving to: ‘1.9.0-jumbo-1.tar.gz’
1.9.0-jumbo-1.tar.gz 100%[===================================>] 22.13M 65.4MB/s in 0.3s
2023-10-27 10:30:01 (65.4 MB/s) - ‘1.9.0-jumbo-1.tar.gz’ saved [23201448/23201448]
接下来,使用 tar 命令解压下载的 .tar.gz 文件内容。
tar -xzvf 1.9.0-jumbo-1.tar.gz
此命令将创建一个包含源代码的新目录。你可以通过列出当前目录的内容来验证这一点。
ls -l
你应该会看到新创建的目录 john-1.9.0-jumbo-1。
total 22668
-rw-r--r-- 1 labex labex 23201448 Jul 25 2021 1.9.0-jumbo-1.tar.gz
drwxr-xr-x 9 labex labex 4096 Jul 25 2021 john-1.9.0-jumbo-1
安装编译所需的依赖项
在此步骤中,你将安装从源代码编译 John the Ripper 所需的工具和库。编译软件通常依赖于其他软件包,例如编译器和开发库。
首先,更新系统的软件包列表是一个好习惯,以确保你获得最新版本的依赖项。
sudo apt-get update
接下来,为 Debian 系的系统(如 Ubuntu)安装构建软件所需的 essential 包。我们需要 build-essential(包含 GCC 编译器和 make)、libssl-dev(用于加密支持)以及 yasm(一个汇编器)。
sudo apt-get install -y build-essential libssl-dev yasm
-y 标志会自动回答“是”以响应任何提示,从而允许安装在没有用户交互的情况下进行。你将看到大量输出,因为软件包正在被下载和安装。
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
...
The following NEW packages will be installed:
build-essential dpkg-dev g++ g++-11 libssl-dev libstdc++-11-dev make yasm
...
Setting up libssl-dev:amd64 (3.0.2-0ubuntu1.10) ...
Setting up make (4.3-4.1build1) ...
...
安装完依赖项后,你现在可以开始编译源代码了。
从源代码编译 John the Ripper
在此步骤中,你将编译 John the Ripper 的源代码。编译过程通常涉及两个主要命令:./configure 和 make。
首先,导航到解压后的源代码文件夹中的 src 目录。
cd john-1.9.0-jumbo-1/src/
现在,运行 configure 脚本。此脚本会检查你的系统是否满足所需的依赖项,并通过创建一个针对你系统的 Makefile 来准备构建环境。
./configure
输出将显示其检查结果。
...
checking for yasm... yasm
checking for OpenSSL... yes
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating common.h
...
Configuration finished. You can now run "make".
配置完成后,你就可以使用 make 命令开始编译了。我们将使用 make -s clean 来移除任何先前的构建文件,并使用 make -sj4 来使用 4 个并行作业运行编译,这可以加快过程。
make -s clean && make -sj4
此过程可能需要几分钟才能完成。完成后,编译好的 john 可执行文件将放置在 ../run/ 目录中。如果构建成功,命令提示符将返回,不会出现任何错误。
验证 John the Ripper 安装
在此步骤中,你将通过运行可执行文件及其内置测试套件来验证 John the Ripper 是否已成功编译。
编译好的二进制文件不在 src 目录中,而是在 run 目录中。让我们导航到那里。
cd ../run
现在,在不带任何参数的情况下运行 john 可执行文件,以显示其使用信息。这是确认程序可以运行的快速方法。
./john
你应该会看到版本和使用信息,这证实了程序是可执行的。
John the Ripper 1.9.0-jumbo-1 [linux-gnu 64-bit x86_64 AVX2 AC]
Copyright (c) 1996-2019 by Solar Designer and others
Homepage: https://www.openwall.com/john/
Usage: john [OPTIONS] [PASSWORD-FILES]
...
为了进行更全面的检查,请运行内置的基准测试和自检。这将测试各种哈希算法,并确保它们在你的系统上正常运行。
./john --test
测试将运行一到两分钟,并打印出许多不同哈希类型的基准测试结果。
Benchmarking: descrypt, traditional crypt(3) [DES 128/128 SSE2-16]... DONE
Many salts: 12032K c/s real, 12032K c/s virtual
Only one salt: 11141K c/s real, 11141K c/s virtual
...
Benchmarking: LM [DES 128/128 SSE2-16]... DONE
Raw-MD5 [MD5 128/128 SSE2-16]... DONE
...
All tests passed
看到末尾的“All tests passed”表明你的构建工作正常。
将 John the Ripper 添加到系统 PATH
在此步骤中,你将包含 john 可执行文件的目录添加到系统的 PATH 环境变量中。这将允许你在终端的任何位置运行 john,而无需输入完整路径。
john 可执行文件当前位于 ~/project/john-1.9.0-jumbo-1/run。为了让你的用户能够全局访问它,你需要将此路径添加到你的 shell 配置文件中。由于 lab 环境使用 Zsh,因此该文件是 ~/.zshrc。
使用 echo 命令将 export 命令追加到你的 ~/.zshrc 文件中。
echo 'export PATH="$HOME/project/john-1.9.0-jumbo-1/run:$PATH"' >> ~/.zshrc
此命令将 run 目录添加到你的 PATH 的开头。更改仅在新终端会话中生效。要将其应用于当前会话,你需要“source”配置文件。
source ~/.zshrc
现在,让我们验证一下它是否有效。首先,移出 run 目录到你的主目录。
cd ~
从你的主目录,尝试运行 john 而不指定路径。
john
如果 PATH 设置正确,你将看到与之前相同的用法信息。这证实了你现在可以从任何地方运行 John the Ripper。
John the Ripper 1.9.0-jumbo-1 [linux-gnu 64-bit x86_64 AVX2 AC]
Copyright (c) 1996-2019 by Solar Designer and others
Homepage: https://www.openwall.com/john/
Usage: john [OPTIONS] [PASSWORD-FILES]
...
总结
恭喜!你已成功在 Linux 系统上从源代码安装了 John the Ripper。
在此实验中,你已学会了如何:
- 使用
wget下载软件的源代码。 - 使用
apt-get安装必要的构建依赖项。 - 使用
./configure和make配置和编译源代码。 - 通过运行程序及其内置测试来验证编译是否成功。
- 将程序的安装位置添加到你的系统
PATH,以便从任何目录方便地访问。
这种从源代码编译的过程是 Linux 用户的一项基本技能,它让你能够更灵活地控制软件安装。现在,你已准备好探索 John the Ripper 在密码安全审计方面的强大功能。


