简介:John the Ripper,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法。
John the Ripper免费的开源软件,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持大多数的加密算法,如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码。最新版本是John the Ripper 1.8.0版,针对Windows平台的最新免费版为John the Ripper 1.7.9版。
John支持四种密码破解模式:1.字典模式:在这种模式下,用户只需要提供字典和密码列表用于破解。
2.单一破解模式:这是john作者推荐的首选模式。John会使用登录名、全名和家庭通讯录作为候选密码。
3.递增模式:在该模式下john会尝试所有可能的密码组合。这是最具威力的一种。
4.外部模式:在这种模式下,用户可以使用john的外部破解模式。使用之前,需要创建一个名为(list.external : mode)的配置文件,其中mode有用户分配。
john命令的具体参数选项如下表:
[td]选 项 | 描 述 |
--single | single crack模式,使用配置文件中的规则进行破解 |
--wordlist=FILE--stdin | 字典模式,从 FILE或标准输入中读取词汇 |
--rules | 打开字典模式的词汇表切分规则 |
--incremental[=MODE] | 使用增量模式 |
--external=MODE | 打开外部模式或单词过滤,使用 [List.External:MODE]节中定义的外部函数 |
--stdout[=LENGTH] | 不进行破解,仅仅把生成的、要测试是否为口令的词汇输出到标准输出上 |
--restore[=NAME] | 恢复被中断的破解过程,从指定文件或默认为 $JOHN/john.rec的文件中读取破解过程的状态信息 |
--session=NAME | 将新的破解会话命名为 NAME,该选项用于会话中断恢复和同时运行多个破解实例的情况 |
--status[=NAME] | 显示会话状态 |
--make-charset=FILE | 生成一个字符集文件,覆盖 FILE文件,用于增量模式 |
--show | 显示已破解口令 |
--test | 进行基准测试 |
--users=[-]LOGIN|UID[,..] | 选择指定的一个或多个账户进行破解或其他操作,列表前的减号表示反向操作,说明对列出账户之外的账户进行破解或其他操作 |
--groups=[-]GID[,..] | 对指定用户组的账户进行破解,减号表示反向操作,说明对列出组之外的账户进行破解。 |
--shells=[-]SHELL[,..] | 对使用指定 shell的账户进行操作,减号表示反向操作 |
--salts=[-]COUNT | 至少对 COUNT口令加载加盐,减号表示反向操作 |
--format=NAME | 指定密文格式名称,为 DES/BSDI/MD5/BF/AFS/LM之一 |
--save-memory=LEVEL | 设置内存节省模式,当内存不多时选用这个选项。 LEVEL取值在 1~3之间 |
使用方法:破解Linux用户密码:kali2020模式
创建test用户,设置密码为123456
将密码本复制到/home/shadow0
并进入查看

方法一:使用命令行模式
以字典的形式破解
john --wordlist=/usr/share/john/password.lst shadow0
输入john --show shadow0 进行查看

方法二:使用图形化界面
有些kali虚拟机没有图形化界面的john
我们可以输入apt-get install johnny 对其进行下载

1.将密码文件写入pass.txt
unshadow /etc/passwd /etc/shadow > pass.txt
2.打开john图形化界面

3.选择要破解文件

4.选择刚刚创建好的密码本

5.点击攻击(密码也破解出来了)

注:如果密码太复杂,破解不出来,原因就是密码本中无该密码,可以在密码本中添加该密码再进行破解
我们也可以选择其他参数进行破解(这里就不多演示了)
