破解原理:john 工具通过扫描 shadow 文件,对用户的密码进行反向推算,得到的值与密码字典 中的值相同时,则表示改密码对应成功,如果不对,则对比字典中的下一条密码,直到全部对比完 密码字典中的密码,或找到相同密码位置。
密码破解的三种方式:
1.暴力破解:使用密码破解软件,对指定范围的密码进行逐个对应计算。
2.密码字典破解:用户通过一个现有的密码字典,进行密码匹配,是否能够破解,取决于密码 字典中的密码数量。
3.掩码破解:基于暴力破解的一种指定范围的方式。
1、解压 john 工具
[root@localhost ~]# tar -zxvf john-1.8.0.tar.gz -C /usr/src/
2、转入到 john 软件目录的 src 子目录中:
[root@localhost ~]# cd /usr/src/john-1.8.0/src/
3、编译内核版本到软件中:
[root@localhost src]# make clean linux-x86-64
//老样子,如果报错是没有开发者工具,需要安装gcc和c++编译工具
[root@localhost ~]# mount /dev/cdrom /media/
[root@localhost ~]# rm -rf /etc/yum.repos.d/*
[root@localhost ~]# vim /etc/yum.repos.d/yum.repo
[root@localhost ~]# yum -y install gcc*
安装完gcc和c++再去编译内核版本
[root@localhost ~]# cd /usr/src/john-1.8.0/src/
[root@localhost src]# make clean linux-x86-64
4、优化命令路径:
[root@localhost ~]# ln -s /usr/src/john-1.8.0/run/john /usr/bin
5、创建测试用户:
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# useradd lisi
[root@localhost ~]# useradd wangwu
6、给用户设置不同的密码:
[root@localhost ~]# echo "123.com" | passwd zhangsan --stdin
[root@localhost ~]# echo "1234.com" | passwd lisi --stdin
[root@localhost ~]# echo "12345.com" | passwd wangwu --stdin
7、修改 john 的密码字典文件:
[root@localhost ~]# vim /usr/src/john-1.8.0/run/password.lst
//随便找的地方添加,将刚才设置的密码添加进去
8、复制 shadow 文件到/tmp,编辑 shadow 文件,将多余的用户删除。
[root@localhost ~]# cp /etc/shadow /tmp
//复制shadow文件是以防出错,不会损坏源文件
[root@localhost ~]# vim /tmp/shadow
删除多余用户是方便破解,否则破解时间太久
删除:
除了root和刚添加的用户以外所有用户,方便验证,否则等待时间太久
修改完后保存文件需要加感叹号!因为是只读文件
//可以看到已经将密码破解出来