在 Linux 上安装 John the Ripper

Kali LinuxBeginner
立即练习

引言

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 的源代码。编译过程通常涉及两个主要命令:./configuremake

首先,导航到解压后的源代码文件夹中的 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 安装必要的构建依赖项。
  • 使用 ./configuremake 配置和编译源代码。
  • 通过运行程序及其内置测试来验证编译是否成功。
  • 将程序的安装位置添加到你的系统 PATH,以便从任何目录方便地访问。

这种从源代码编译的过程是 Linux 用户的一项基本技能,它让你能够更灵活地控制软件安装。现在,你已准备好探索 John the Ripper 在密码安全审计方面的强大功能。