使用John爆破
- 本文仅供技术分享、交流讨论,严禁用于非法用途
前言
由于Linux是Internet最流行的服务器操作系统,因此它的安全性备受关注。这种安全主要靠口令实现。
Linux使用一个单向函数crypt()来加密用户口令。单向函数crypt()从数学原理上保证了从加密的密文得到加密前的明文是不可能的或是非常困难的。当用户登录系统时,系统并不是去解密已加密的口令,而是将输入的口令明文字符串传给加密函数,将加密函数的输出与/etc/passwd文件中该用户的PASSWORD域进行比较,若匹配成功,则允许用户登录系统。
在目前多数Linux系统中,口令文件都做了shadow变换,即把/etc/passwd中的口令域分离出来,单独存在/etc/shadow文件中,并加强对shadow文件的保护,以增强口令安全。因此,在破解密码是,要先做UNshadow变换,将/etc/passwd文件与/etc/shadow文件合二为一。
John the ripper
简介
一款免费、开源的暴力密码破解器,它有多平台版本,支持目前大多数的加密算法,如DES、MD4、MD5等。该软件破解密码方式简单而粗暴,理论上只要时间上面允许,该软件可以破译绝大多数用户密码。John the Ripper免费的开源软件,支持目前大多数的加密算法,如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码。
破解模式
John支持四种密码破解模式:
1.字典模式:在这种模式下,用户只需要提供字典和密码列表用于破解。
2.单一破解模式:这是john作者推荐的首选模式。John会使用登录名、全名和家庭通讯录作为候选密码。
3.递增模式:在该模式下john会尝试所有可能的密码组合。这是最具威力的一种。
4.外部模式:在这种模式下,用户可以使用john的外部破解模式。使用之前,需要创建一个名为(list.external : mode)的配置文件,其中mode有用户分配。
命令参数
john命令的具体参数选项如下表:
选 项 | 描 述 |
---|---|
–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之间 |
英文可以的话,也可以在kali中使用
man john
查看详细参数选项。
环境
kali操作系统
可以装到虚拟机中,如果有条件的话,可以安装到实体机中。具体安装步骤就不介绍了,网上有很多相关文章,如安装中遇到什么问题,也可以在评论区留言,很高兴为大家解决!
破解步骤:
创建test用户,并设置密码
将密码文件内容复制到家目录下
查看复制的内容
方法一:使用命令行模式
用字典破解
john --wordlist=/usr/share/john/password.lst shadow0
可以看到,已经破解了密码
也可以输入
john --show shadow0
进行查看
方法二:使用GUI界面
kali中一般自带图形化界面的john,若没有可以用以下命令安装
apt install johnny
首先将密码文件写入passwd.txt
unshadow /etc/passwd /etc/shadow > passwd.txt
unshadow命令会结合/etc/passwd的数据和/etc/shadow的数据,创建一个含有用户名和密码详细信息的文件。
打开johnny
选择要刚才创建的密码文件passwd.txt
点击开始攻击
稍等片刻后,密码就被破解出来了
小结
在口令设置过程中,因许多个人因素,可以利用这些因素来帮助解密。由于对口令安全性的考虑,一般不会把口令写在纸上,因此很多人都设法使自己的口令容易记忆,这反而给黑客提供了可乘之机。
了解黑客的攻击手段,可以使我们更好的防御黑客入侵。在我们设置密码时,应尽量不在密码中包含生日、姓名、手机号等个人信息,因为黑客很有可能收集这些信息来破解密码。
如果破解过程中遇到什么问题,可以在评论区留言,很高兴为大家解决!