一、识别Hash类型

john会自动识别需要破解的hash,但是很多时候会识别错误。

二、John的基本语法

1
john [options] [path to file]

[path to file]这个路径包含了你要破解的hash文件。为了方便我们将需要破解的hash值直接存放在了txt文件中。

John的自动破解
John可以检测给出的hash类型,并为你选择合适的规则和格式来破解它,如果你不知道你的文件的加密类型。这将是最简单的选择!

1
john --wordlist=/usr/share/wordlists/mima.txt hash.txt

如上,我们只需要指定密码字典的位置和hash的位置即可。

John指定类型
如果你知道你的密码的加密类型。可以直接用—format参数来指定类型。

1
john --format=raw-md5 --wordlist=/usr/share/wordlists/mima.txt hash.txt

三、实战

利用john破解Linux密码

Linux的系统账户在/etc/passwd中,密码存于/etc/shadow中。将/etc/passwd文件和/etc/shadow文件合并成一个.txt文件

1
unshadow /etc/passwd /etc/shadow > mima.txt

破解密码

1
john mima.txt

如果出现Using default input encoding:UTF-8,这不是破解失败的意思,说明这个hash之前被破解过。使用john --format=crypt命令可以还原明文。

破解zip压缩包

这里,我们生成一个带有密码的zip压缩包。并在kali中获取对应的hash

1
zip2john aaa.zip > zip.txtjohn --wordlist=pass.txt zip.txt

破解rar压缩包

和破解rar一样。先使用命令转换rar文件格式(提取hash值):

1
rar2john kali.rar > kali.txtjohn --wordlist=pass.txt kali.txt