常用使用环境:
1.破解Kali系统中的用户密码
首先需要使用John提供的的unshadow命令,因为john 对于需要使用的数据格式有一定要求,所以我们需要使用unshadow指令,合并/etc/passwd的数据和/etc/shadow的数据,然后使用> passwd.txt 指定生成的文件名称;
sudo unshadow /etc/passwd /etc/shadow > passwd.txt
然后使用Kali中的john工具对生成的passwd.txt文件使用默认顺序破解模式(Wordlist mode)进行破解,但是此时可能出现报错提示如下:此时提示“No password hashes loaded (未加载密码哈希)”
john passwd.txt
出错原因:John无法识别当前加密方式(在编译过程中,没有指定合适的系统版本;导致编译出来的 john 文件不能识别64位机器的hash密码.)
解决方法:更换编译指令/指定加密算法
这里更换编译指令比较麻烦,因此我们通常进行手动指定加密算法,我们可以了解从Debian 11 / bullseye 系统 (适用于Kali)开始中的/etc/shadow文件中默认使用的密码哈希函数为:yescrypt
因此在Kali系统中我们只需要添加--format=[xxx]参数,即可指定John使用指定算法破解密码:
john --format=crypt passwd.txt
破解结束后无需再次对相同密文进行破解通常会提示:
Loaded [number] password hashes with [number] different salts (crypt, generic crypt([number]) [?/64])
No password hashes left to crack (see FAQ)
如果我们需要再次查看破解后的密码只需执行如下命令:
john --show passwd.txt
上面我们了解了如何使用John快速的对Linux系统进行破解,但是读者可能还会存在一些疑问,下面对相关知识点进行补充.
(1)John的其他常用命令和参数解析
官方Wiki:开膛手约翰用户社区资源 [Openwall 社区维基]
john --format=[加密方式] --wordlist=[字典路径] [待解密密文文件]
John 自带的密码字典,位于 /usr/share/john/password.lst
(2)如何识别常见的密码加密类型(如何选择--format=[]参数)
密码的加密算法可以通过观察/etc/shadow文件得到,有时候 John 无法很好地自动识别和加载哈希,此时我们可以使用其他工具来识别哈希类型,然后再将 john 设置为使用特定的哈希格式进行破解,有多种方法可以做到对哈希类型进行识别,下面给出四种解决方法:
2.1在线哈希识别器:
https://hashes.com/en/tools/hash_identifier
2.2 Hash-identifie:
https://gitlab.com/kalilinux/packages/hash-identifier/-/tree/kali/master
安装:
wget https://gitlab.com/kalilinux/packages/hash-identifier/-/raw/kali/master/hash-id.py
使用命令:
python3 hash-id.py
简单地启动它,输入你想要识别的hash值,它就会给出这个hash值可能对应的hash类型
2.3通过/etc/shadow文件识别加密类型:
/etc/shadow文件格式解析:
用户名:加密密码:最后一次修改时间:最小修改时间间隔:密码有效期:密码需要变更前的警告天数:密码过期后的宽限时间:账号失效时间:保留字段
可以通过加密密码中的$[XX]特征识别当前加密密码的加密算法类型
2.4官方文档:
示例密码哈希编码字符串 [Openwall 社区维基]
如何生成各种格式的测试哈希 [Openwall 社区维基]
(3)示例
情景:我们有一台云服务器,使用Root账户登录后,查看/etc/shadow文件后,对应root用户的哈希值为,下图中的选中值:
$6$xaP5JVlQwY/Q7$cG.yPaQVnwY/Sdj9VMUz3fOtRejMtCrV3j6JLY2oI.Gp4VQiam.0hJik6nq7dKD60.C1MYDwP2qCywKC1Hz4w/
然后我们可以使用上面提到的几种方式对其进行加密方式进行识别,在这里我们使用在线识别的方式进行识别,可以看到能够成功识别
接下来我们使用John对其进行解密即可;
john --format=sha512crypt [待解密文件]
2.破解受密码保护的Zip压缩文件
理论:
我们可以用 John 破解密码保护的 Zip 文件:首先使用 John 工具套件的一个独立部分能将 zip 文件转换成 John 能够理解的格式(提取hash值),然后再进行破解;与我们之前使用的 unshadow 工具类似,我们将使用 zip2john 工具将 zip 文件转换为 John 能够理解的哈希格式(提取hash值),zip2john 的基本用法是这样的:
zip2john [options] [zip file] > [output file]
[options] 允许你向 zip2john 传递特定的校验和选项,这通常是不必要的
[zip file] 希望提取hash值的zip文件的路径
> 这是输出指示器,我们用它来将这个文件的输出发送到..。
[output file] 这个文件将存储输出结果
示例用法
zip2john zipfile.zip > zip_hash.txt
开始破解:
使用了zip2john之后,我们就能够在示例中获取从 zip2john 输出的名为“ zip _ hash.txt”的文件,正如我们使用 unshadow 所做的那样,我们将“ zip _ hash.txt”直接提供给 john,因为我们已经为该文件做了输入格式的处理:
john --wordlist=/usr/share/john/password.lst zip_hash.txt
版权归原作者 SlackMoon 所有, 如有侵权,请联系我们删除。