
John the Ripper jumbo - 高级离线密码破解器,支持数百种哈希和加密算法类型,可在许多操作系统、CPU、GPU甚至部分FPGA上运行
这是 John the Ripper 的社区增强版,即“jumbo”版本。它包含了大量由 jumbo 开发者和用户社区贡献的代码、文档和数据。向 jumbo 添加新代码很容易,质量要求也不高,不过最近我们开始对所有贡献进行相当多的自动化测试。这意味着你会获得大量不一定“成熟”的功能,也就是说,这段代码中可能存在 bug。
John the Ripper 的主页是:
https://www.openwall.com/john/
如果你对这个版本或 JtR 有任何评论,请加入 john-users 邮件列表并在其中发帖:
https://www.openwall.com/lists/john-users/
若要为 John the Ripper jumbo 做出贡献,请使用 GitHub 上的 pull request:
https://github.com/openwall/john/blob/bleeding-jumbo/CONTRIBUTING.md
下面包含的是 John the Ripper 核心的基础文档。
John the Ripper 是一款快速的密码破解器,目前可用于多种 Unix 变体、macOS、Windows、DOS、BeOS 和 OpenVMS(后者需要补丁)。它的主要用途是检测弱 Unix 密码。除了各种 Unix 变体中最常见的几种 crypt(3) 密码哈希类型外,它还开箱即用地支持 Kerberos/AFS 和 Windows LM 哈希,以及基于 DES 的 tripcode,此外“-jumbo”版本还支持数百种额外的哈希和密码算法。
有关在系统上安装 John 的信息,请参阅 INSTALL。
要运行 John,你需要为其提供一些密码文件,并可选地指定一种破解模式,像这样,使用默认的模式顺序并假设“passwd”是你的密码文件的副本:
john passwd
或者,将其限制为仅使用字典模式,但允许使用单词变形规则:
john --wordlist=password.lst --rules passwd
破解出的密码将打印到终端并保存在名为 $JOHN/john.pot 的文件中(在 John 的文档和配置文件中,“$JOHN”指的是 John 的“主目录”;它实际是哪个目录取决于你如何安装 John)。$JOHN/john.pot 文件还用于在下次运行 John 时,不加载你已经破解过的密码哈希。
要获取破解出的密码,请运行:
john --show passwd
在破解过程中,你可以按任意键查看状态,或按 'q' 或 Ctrl-C 中止会话并将其状态保存到文件中(默认是 $JOHN/john.rec)。如果在 John 有机会处理完你的第一次 Ctrl-C 之前再次按下 Ctrl-C,John 将立即中止而不保存。默认情况下,状态也会每 10 分钟保存一次,以便在崩溃时进行恢复。
要继续被中断的会话,请运行:
john --restore
这些只是你用 John 能做的最基本的事情。有关命令行选项的完整列表和更复杂的使用示例,请分别参阅 OPTIONS 和 EXAMPLES。
请注意,John 的“二进制”(预编译)发行版可能包含其他可执行文件,而不仅仅是“john”。你可能需要选择最适合你的系统的可执行文件,例如“john-omp”以利用多个 CPU 和/或 CPU 核心。
John the Ripper 的设计目标是功能丰富且快速。它将多种破解模式结合在一个程序中,并且可以针对你的特定需求进行完全配置(你甚至可以使用内置的、支持 C 语言子集的编译器来定义自定义破解模式)。此外,John 可用于多个不同平台,这使你可以在任何地方使用同一个破解器(你甚至可以继续在另一个平台上开始的破解会话)。
开箱即用,John 支持(并自动检测)以下 Unix crypt(3) 哈希类型:传统的基于 DES 的、"bigcrypt"、BSDI 扩展的基于 DES 的、FreeBSD 基于 MD5 的(也用于 Linux 和 Cisco IOS)、以及 OpenBSD 基于 Blowfish 的(现在也用于某些 Linux 发行版,并受最新版本的 Solaris 支持)。此外,开箱即用地支持 Kerberos/AFS 和 Windows LM(基于 DES)哈希,以及基于 DES 的 tripcode。
在运行带有 glibc 2.7+ 的 Linux 发行版时,John 1.7.6+ 还额外支持(并自动检测)SHA-crypt 哈希(实际上被最新版本的 Fedora 和 Ubuntu 使用),并支持可选的 OpenMP 并行化(需要 GCC 4.2+,需要在编译时通过取消 Makefile 开头附近的相应 OMPFLAGS 行来显式启用)。
类似地,在运行最新版本的 Solaris 时,John 1.7.6+ 支持并自动检测 SHA-crypt 和 SunMD5 哈希,同样支持可选的 OpenMP 并行化(需要 GCC 4.2+ 或最新的 Sun Studio,需要在编译时通过取消 Makefile 开头附近的相应 OMPFLAGS 行来显式启用,并在运行时通过将 OMP_NUM_THREADS 环境变量设置为所需的线程数来启用)。
“-jumbo”版本增加对数百种额外哈希和密码类型的支持,包括快速内置的 SHA-crypt 和 SunMD5 实现、Windows NTLM(基于 MD4)密码哈希、各种 macOS 和 Mac OS X 用户密码哈希、快速哈希(如原始 MD5、SHA-1、SHA-256 和 SHA-512——许多“web 应用程序”历史上曾将其误用于密码),以及其他各种“web 应用程序”密码哈希、各种 SQL 和 LDAP 服务器密码哈希,以及许多其他哈希类型,还有很多非哈希类型,如 SSH 私钥、S/Key skeykeys 文件、Kerberos TGT、加密文件系统(如 macOS .dmg 文件和“sparse bundles”)、加密归档(如 ZIP(经典 PKZIP 和 WinZip/AES)、RAR 和 7z)、加密文档文件(如 PDF 和 Microsoft Office 文件)——这些仅仅是一些例子。要加载其中一些较大的文件进行破解,应首先使用相应的捆绑 *2john 程序,然后将其输出输入 JtR -jumbo。
John the Ripper 有一个官方 GUI:Johnny。
尽管 Johnny 面向 JtR 核心,但所有基本功能都应该在所有版本中正常工作,包括 jumbo。
Johnny 是一个独立的程序,因此你需要安装 John the Ripper 才能使用它。
有关 Johnny 及其版本的更多信息,请参阅 wiki:
https://openwall.info/wiki/john/johnny
其余文档位于单独的文件中,按推荐的阅读顺序列在下面:
(*) 大多数用户可以安全地跳过这些。
在 jumbo 的“doc”目录中还有大量额外的文档文件,你也会想要探索一下。
祝阅读愉快!