如何使用 hashcat 破解 RAR、ZIP 压缩包密码

参考链接:

轻松搞定 RAR、Zip 压缩包密码!Hashcat +john the ripper 亲测好用!:https://www.freedidi.com/2655.html

John the Ripper:https://www.openwall.com/john/

hashcat:https://hashcat.net/hashcat/

免责声明:本文所讲内容仅供学习使用,请勿用于违法用途!如用于违法用途,请自行承担后果,与本文、本人无关!

前言

最近在网上找资源的时候下载到一份加密的 RAR 压缩包,看到无良搬运工加个密就开始捞钱,作为一个程序猿,这怎么能忍?

既然不想掏钱,那当然要用程序猿的办法——暴力破解了。

而本文要讲述的 hashcat ,就是这样一个密码破解工具。

安装

1.安装 hashcat

首先,从 hashcat 官网下载安装包,解压缩后放在合适的文件夹下。

这里直接下载二进制版就可以了。

image-20230529232611438

这里以 D 盘为例。

image-20230529232656206

调起命令行控制台,切换到该目录,运行

hashcat --version

能正确输出版本即为安装成功。

image-20230529232810493

接下来从官网找个例子,测试一下是否能正确运行。

这里以 MD5 为例。

image-20230529232953073

在控制台中输入

hashcat -m 0 -w 4 -a 3 8743b52063cd84097a65d1633f5c74f5

如果一切正常,你将在控制台看到

image-20230529235206797

冒号后面的就是破解结果,是hashcat,和官网给出的答案一致。

注意:

  • 如果你再次执行该命令,会得到如下结果:INFO: All hashes found as potfile and/or empty entries! Use --show to display them.

image-20230529235310055

此时将命令改为:

hashcat -m 0 -w 4 -a 3 8743b52063cd84097a65d1633f5c74f5 --show

就能看到曾经破解过的 hash 了。

image-20230529235405697

  • 如果你在 PowerShell 或 Shell 中执行命令,需要注意$的转义,在默认情况下,$符号被用于引用环境变量,可能会造成执行结果错误,如图所示:

image-20230529235640139

此时只需要用单引号''将 hash 括起来即可。

hashcat.exe -m 13000 -w 4 -a 3 '$rar5$16$b88c1d7d2c96dc9d1b1a5ccdc5c25d50$15$8f0b287c982535c868bbff486ee9acd2$8$43907bfa03430471'

可以看到,执行成功了。

image-20230530000021240

2.安装 John the Ripper

看完上面的例子,读者朋友肯定会有个问题,那就是用来破解的 hash 是从哪来的?

如果是类似 MD5、SHA1 这类纯文本,那么算法的结果直接就是用来破解的 hash,而如果是 RAR、ZIP 等压缩包,就需要借助 John the Ripper这个工具来获取 hash 了。

同样是通过官网获取到安装压缩包:https://www.openwall.com/john/

image-20230530000635380

解压到合适目录,这里同样以 D 盘为例

image-20230530000711229

注意,可执行文件在 run目录下。可考虑将该目录加入环境变量,方便后续操作。

image-20230530000738642

然后,将需要破解的 RAR 压缩包放在没有空格的路径下(包括文件名),经过实际测试,John the Ripper是支持路径中有中文字符的,但不支持有空格,所以可以把要破解的压缩包改个名字,然后再破解。

实战演示

这里以 E 盘下面的TEST.rar文件为例,我设置了密码为1234,稍后来演示如何破解。

image-20230530001124237

首先执行如下命令来获取到 hash 值

rar2john 'E:\Downloads\TEST.rar'

如果你的John the Ripper没有加到环境变量中,请cd到对应的目录再执行。

获取到如下结果:

image-20230530002704049

冒号后面的$rar5$16$34a40031e247afdee2660ff23e1c0d64$15$5dce796f02396b7f612b19962aa09b01$8$b86700a53c877894就是我们需要的 hash 值。

接下来执行

hashcat -m 13000 -w 4 -a 3 '$rar5$16$34a40031e247afdee2660ff23e1c0d64$15$5dce796f02396b7f612b19962aa09b01$8$b86700a53c877894'

这里逐一为大家解释参数的作用。

  • -m 是设置 hash 类型,具体可参考https://hashcat.net/wiki/doku.php?id=example_hashes,其中 RAR 对应的就是 13000,相应的,ZIP 对应的就是 17210,MD5 是 0。
  • -a 是设置攻击模式,具体可参考https://hashcat.net/wiki/doku.php?id=mask_attack,从 0 到 9,用于破解的字符、单词数会逐渐增加。
  • -w 是设置工作负载配置,从 1 到 3,对电脑要求越高。高配电脑设置为 3,低配电脑设置为 1
  • -o 是设置输出路径,默认为在控制台输出,如果设置了则会输出到文件,例如设置-o password.txt就会输出到password.txt文件中。

稍微等待一段时间后,可以看到破解结果,是1234,与前文设置的一致。

image-20230530002941830

破解的时间与密码的复杂程度成正比,简单的密码还是破解的非常快的,如果很长时间没有破解成功,那么就说明这个密码非常复杂,还是直接放弃暴力破解的方法吧。

仅仅是破解四位数字的密码以本人RTX 3060 Laptop的 GPU 也需要跑一分钟,所以更长的密码需要的时间也可想而知,故能不暴力破解就还是不暴力破解了,节约点 GPU 寿命。

总结

以后再遇到加密了的 RAR、ZIP 压缩包,可就不能再忍着它了,直接用 Hashcat 和 John the Ripper 这两个工具破解,给它来点教训!

当然了,最后还是要提醒一句,本工具仅供个人学习使用,如用于违法用途,请自行承担后果,与本文、本人无关