一、介绍

一个基于字典的快速破解密码工具,是一款用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法,如 DES 、 MD4 、 MD5 等。
John the Ripper 支持字典破解方式暴力破解方式。它支持多种不同类型的系统架构,包括 Unix 、 Linux 、 Windows 、 DOS 模式、 BeOS 和 OpenVMS ,
主要目的是破解不够牢固的 Unix/Linux 系统密码
属于离线破解:破解过程中,已经获得加密密文,在不与目标服务器交互的情况下,利用在线网站或本地程序对密文进行破解。
离线不会触发密码锁定机制。

二、安装

apt install john

三、破解Linux用户登录密码

/etc/passwd 和 /etc/shadow 两个文件包含了用户的信息和密码 hash 值

3.1、创建一个测试用户 test/12345

root@node2:~# useradd test
root@node2:~# passwd test

3.2、利用 unshadow 组合 /etc/passwd 和 /etc/shadow 两个文件

需要将用户/组及密码配置文件合并成一个另一个文件:
unshadow /etc/passwd /etc/shadow > hash.txt
unshadow /etc/group /etc/gshadow >> gshash.txt

3.3、默认模式

实际破解中推荐的爆破顺序,为了尽量节省爆破时间,可以自行尝试:  single模式 -> wordlist模式 -> incremental模式 -> 默认模式。
默认模式是先尝试single然后是incremental,直到所有的规则都结束。
命令:
    john --user=test hash.txt gshash.txt 

3.4、粗暴简单的爆破模式-single

命令:
    john --single --user=test hash.txt, gshash.txt

3.5、基于字典的爆破模式-wordlist

这时候还需要一个字典,由于 John 自带了一个字典,字典位于 /usr/share/john/password.lst 。当然你也可以自行去网上选择适合你的字典。
命令
    john --wordlist=/usr/share/john/password.lst --user=test hash.txt  gshash.txt
再次执行上述命令,不会再有结果,因为/root/john.pot中已存在破解的用户
可以看到,test_passwd中的用户test的密码被破解,密码是12345。
/root/john.pot文件中存放的是已破解的用户名与密码。
查看破解信息:john --show hash.txt  gshash.txt

3.6、逐个遍历的爆破模式-incremental

# 以数字类型举例:
    john --incremental:digits --users=test hash.txt gshash.txt
# 破解特定哈希密码、多个文件
    john -fromat=raw-md5 pass.txt pass1.txt

四、参考

Logo

开源、云原生的融合云平台

更多推荐