John The Ripper是一个免费的密码破解工具。它最初为Unix操作系统开发,但可以在十五种不同的平台上运行(其中十一种是特殊体系结构的Unix,以及DOS,Win32,BeOS和OpenVMS版本)。它是最常用的密码测试和破解程序之一,因为它将许多密码破解程序组合到一个软件包中,可以自动检测密码的哈希类型,并包括可自定义的破解程序。它可以针对各种加密的密码格式运行(这包括了各种基于DES,MD5或Blowfish加密的Unix版本,Kerberos AFS和Windows NT/2000/XP/2003中最常见的几种加密密码哈希类型)。其他模块扩展了其功能,以包括基于MD4的密码哈希和存储在LDAP,MySQL等中的密码破解。
这是在Debian Linux环境下的样本输出:
# cat pass.txtuser:AZl.zWwxIh15Q# john -w:password.lst pass.txtLoaded 1 password hash (Traditional DES )example (user)guesses: 1 time: 0:00:00:00 100% c/s: 752 trying: 12345 - pookie
第一行的命令是显示pass.txt
中的内容。下一行是这个文件的内容,即用户AZl
和用户关联的哈希值zWwxIh15Q
。第三行使用了-w
参数运行John The Ripper的命令。password.lst
是一个文本文件的名称,该文件充满了程序将对哈希进行处理的单词,pass.txt
是我们希望John处理的文件。
然后我们看到了John The Ripper的输出结果。加载了1个密码哈希(我们在cat命令中看到的密码)以及John The Ripprt猜测的哈希类型(为传统DES)。 我们还看到,尝试需要在0的时间进行一次猜测,猜测率为100%。
John The Ripper可以使用的模式中,其中一种是字典攻击。它通常从文件获取文本字符串样本通常从文件(称为单词列表,其中包含在词典中找到的单词或之前破解的真实密码),以与检查的密码相同的格式对其进行加密(包括加密算法和密钥),并将输出与加密的字符串进行比较。它还可以对字典单词进行各种修改,并尝试这些修改。这些更改中的许多更改也用在John The Ripper的单一攻击模式中,该模式修改了关联的纯文本(例如带有加密密码的用户名),并根据哈希值检查了变化。
John The Ripper还提供了暴力模式。在这种模式的攻击中,程序将遍历所有可能是密钥的纯文本,对每个纯文本进行哈希加密,然后将其与输入哈希进行比较。John The Ripper使用字符频率表来尝试首先包含较为常用的字符纯文本。此方法对于破解未出现在词典单词列表中的密码很有用,但运行时间较长。