引言
John the Ripper (JtR) 是一个流行的开源密码破解工具。虽然标准版本功能强大,但“Jumbo”版本通过增加对更多哈希类型、破解模式和实用工具的支持,极大地扩展了其功能。本实验将指导你安装 John the Ripper Jumbo 并探索其增强功能。你将学习如何识别新支持的哈希格式、使用高级破解模式以及发现 Jumbo 包附带的其他工具。通过本实验,你将对如何使用 John the Ripper Jumbo 进行更全面的密码审计和恢复任务有扎实的理解。
安装 John the Ripper Jumbo
在此步骤中,你将从其官方 GitHub 仓库安装 John the Ripper Jumbo。这包括克隆仓库、进入源目录以及编译软件。
首先,打开你的终端。确保你位于 ~/project 目录。
cd ~/project
现在,克隆 John the Ripper Jumbo 仓库:
git clone https://github.com/openwall/john-the-ripper.git
进入 john-the-ripper/src 目录:
cd john-the-ripper/src
编译 John the Ripper Jumbo。我们将使用 make clean && make -s 来确保干净的构建并抑制详细输出,以获得更整洁的终端。
make clean && make -s
编译完成后,john 可执行文件将位于 ~/project/john-the-ripper/run 目录中。你可以通过检查其版本来验证安装。
~/project/john-the-ripper/run/john --version
你应该会看到类似以下的输出,表明是 Jumbo 版本:
John the Ripper 1.9.0-jumbo-1 (linux-gnu 64-bit x86_64 AVX2)
Copyright (c) 1996-2023 by Solar Designer and others
...
识别 Jumbo 支持的新哈希格式
在此步骤中,你将探索 John the Ripper Jumbo 支持的广泛哈希格式列表。与标准版本相比,Jumbo 版本显著增加了可破解的哈希类型数量。
要列出所有支持的哈希格式,请在 john 可执行文件上使用 --list=formats 选项。由于输出内容非常长,我们将使用 less 进行管道传输,以便于查看。
~/project/john-the-ripper/run/john --list=formats | less
查看列表后,按 q 退出 less。
你还可以过滤列表以查找特定的哈希类型。例如,要查看与 bcrypt 相关的格式,你可以使用 grep:
~/project/john-the-ripper/run/john --list=formats | grep -i bcrypt
你应该会看到类似以下的输出,显示各种 bcrypt 格式:
bcrypt, bcrypt-opencl, bcrypt-cuda
这表明 Jumbo 支持更多种类的现代和复杂哈希类型,使其在密码审计方面更加通用。
使用 Jumbo 中的新破解模式
在此步骤中,你将了解 John the Ripper Jumbo 中提供的一些新破解模式。Jumbo 引入了先进的破解技术和优化,可以提高破解效率。
强大的功能之一是能够使用带规则的字典(wordlists)。让我们创建一个简单的密码文件和一个字典来演示基本的破解尝试。
首先,创建一个名为 passwords.txt 的文件,其中包含一个示例哈希。我们将使用一个简单的 MD5 哈希作为演示。
echo "user1:21232f297a57a5a743894a0e4a801fc3" > ~/project/passwords.txt
哈希 21232f297a57a5a743894a0e4a801fc3 对应密码 admin。
接下来,创建一个名为 wordlist.txt 的简单字典:
echo -e "password\nadmin\n123456" > ~/project/wordlist.txt
现在,尝试使用字典模式破解哈希。
~/project/john-the-ripper/run/john ~/project/passwords.txt --wordlist=~/project/wordlist.txt
你应该会看到表明密码已被破解的输出:
Using default input encoding: UTF-8
Loaded 1 password hash (Raw-MD5 [MD5])
Cost 1 (iteration count) is not supported for this hash type.
Will run 4 OpenMP threads
Press 'q' or Ctrl-C to abort, almost any other key for status
admin (user1)
1g 0:00:00:00 DONE (2023-10-27 08:00) 100.0g/s 100.0p/s 100.0c/s 100.0C/s admin
Session completed.
要显示已破解的密码,请使用 --show 选项:
~/project/john-the-ripper/run/john ~/project/passwords.txt --show
输出:
user1:admin
1 password hash cracked, 0 left
这个基本示例演示了字典模式。Jumbo 还支持更复杂的模式,如带有字符集的增量模式(incremental mode)、外部模式(external modes)等,你可以在文档中进一步探索。
探索 Jumbo 中的附加实用工具
在此步骤中,你将探索 John the Ripper Jumbo 捆绑的一些附加实用工具。这些实用工具旨在协助密码审计的各个方面,例如准备密码文件或生成字典。
一个有用的实用工具是 unshadow,它将 /etc/passwd 和 /etc/shadow 文件合并为 John the Ripper 可以处理的格式。虽然我们不会修改系统文件,但我们可以模拟其用法。
另一个重要的实用工具是 unique,它可以从字典中过滤掉重复的条目。让我们创建一个包含重复项的字典,然后使用 unique 进行清理。
创建一个名为 duplicate_wordlist.txt 的文件:
echo -e "apple\nbanana\napple\norange\nbanana" > ~/project/duplicate_wordlist.txt
现在,使用位于 run 目录中的 unique 实用工具删除重复项:
~/project/john-the-ripper/run/unique ~/project/duplicate_wordlist.txt
输出应仅显示唯一的单词:
apple
banana
orange
这演示了如何使用 unique 来优化字典,这对于高效破解至关重要。你可以在 ~/project/john-the-ripper/run 目录中找到其他实用工具。
比较 Jumbo 与标准版 John the Ripper
在此步骤中,你将了解 John the Ripper Jumbo 相较于标准版本的主要区别和优势。虽然标准版本是一个强大的工具,但 Jumbo 提供了显著的增强。
Jumbo 的主要优势包括:
- 扩展的哈希支持:Jumbo 支持更多种类的哈希类型,包括许多标准版本不支持的现代和特定应用程序的哈希。这在步骤 2 中已有所演示。
- 优化性能:Jumbo 通常包含优化的破解算法,并能更好地利用硬件(如通过 OpenCL/CUDA 的 GPU,本实验未涵盖)以实现更快的破解速度。
- 附加实用工具:如步骤 4 所见,Jumbo 捆绑了几个辅助实用工具,可以简化密码审计过程。
- 活跃的开发:Jumbo 版本通常会收到社区更频繁的更新和新功能。
总而言之,如果你认真对待密码审计或恢复,John the Ripper 的 Jumbo 版本几乎总是首选,因为它具有更广泛的功能和活跃的开发。标准版本可能足以完成基本任务,但 Jumbo 提供了一个更全面和最新的工具集。
你已成功安装 John the Ripper Jumbo,探索了其新的哈希格式支持,使用了基本的破解模式,并发现了一个附加实用工具。本实验为你提供了对 Jumbo 版本所提供增强功能的初步了解。
总结
在本实验中,你成功地从源代码安装了 John the Ripper Jumbo,演示了编译强大安全工具的过程。然后,你探索了它对各种哈希格式的广泛支持,突显了 Jumbo 在处理不同类型密码哈希方面的多功能性。你还通过使用字典破解了一个 MD5 哈希样本,获得了使用其破解模式的实践经验。此外,你还发现并使用了一个附加实用工具 unique,该工具有助于准备字典以实现更高效的破解。最后,你了解了 Jumbo 版本相对于标准版 John the Ripper 的关键优势,强调了其更广泛的哈希支持、性能优化和捆绑的实用工具。本实验为你提供了实用技能和知识,以便利用 John the Ripper Jumbo 进行高级密码审计和恢复任务。


