Hashcat破解RAR加密文件

网上有些压缩文件,是加了密的,不付费就不给密码,这就很烦。我白嫖惯了,付个锤子。

直接上教程。

总体步骤如下:

  • 获取RAR文件的hash值(检测此文件是用的哪种加密方式,分为rar3和rar5).
  • 暴力破解.

1. 获取Hash值

johntheripper-v1.8.0.12-jumbo-1-bleeding-e6214ceab-2018-02-07-win-x64.7z

下载上面的附件,然后解压缩,找到run文件夹并进入,然后在此文件夹中打开cmd命令行。

输入:

rar2john.exe 你的rar文件路径

执行上面的命令,就能看到输出了该文件的hash值,如下:

test.rar:$rar5$16$5c97a141602331834e839d62658b75de$15$3b48da23f1362f86086ae90ada12d669$8$db1d7aa9faff2e04

test.rar是文件名,:后面是hash值。

:后面的$rar5表示使用的是rar5加密方式。

真正需要的是hash值,但hash值太长了,手动复制粘贴容易出错,所以直接把hash值保存到文件中是最好的选择。

 

重新执行命令:

rar2john.exe 你的rar文件路径 > hash.txt

然后就能在run目录下看到生成了一个hash.txt文件了,打开这个文件,然后把文件名和:号去掉,只保留hash值。然后ctrl + s保存txt。

注意:上面获取压缩文件的hash值时,如果获取不到,那就说明你的文件不是通过rar来压缩的。如果是7z或者其他压缩软件压缩的,必须要安装对应的压缩模块后,才能正确获取hash值。

2. 暴力破解

hashcat-6.2.6.7z 

下载上面的附件,然后解压缩,进入根目录即可。

2.1 掩码遮蔽破解

什么是掩码遮蔽破解?

说人话就是,你知道部分密码,比如说开头几个密码、结尾几个密码、中间几个密码。

假设你的密码是test%1548797651..

你最后只记得开头是test、结尾是..,那就可以用掩码遮蔽的方式进行破解。

 

在 Hashcat 里:

  • RAR3(老版本) 使用模式 -m 12500
  • RAR5(新版本) 使用模式 -m 13000

你需要确定你的 RAR 文件是哪种加密方式,所以第一步就已经完成了这个确认。

然后把第一步保存的hash.txt文件复制到根目录下。

2.1.1 掩码示例

Hashcat 支持多种掩码符号:

掩码代表的字符
?d0-9(数字)
?la-z(小写字母)
?uA-Z(大写字母)
?s!@#$%^&*()(特殊字符)
?a?d?l?u?s(所有字符)

2.1.2 运行hashcat

在上面附件根目录下打开cmd,然后运行命令:

hashcat -m 13000 -a 3 hash.txt "abc?d?d?d?d"

这个命令的含义:

  • -m 13000 :RAR5 加密
  • -a 3 :使用掩码攻击(Mask Attack)
  • "abc?d?d?d?d":密码前 3 位是 abc,后 4 位是未知的数字(0-9)

2.1.3 如果密码长度未知

如果你只知道密码是 6~8 位的数字,可以用:

hashcat -m 13000 -a 3 hash.txt "?d?d?d?d?d?d"
hashcat -m 13000 -a 3 hash.txt "?d?d?d?d?d?d?d"
hashcat -m 13000 -a 3 hash.txt “?d?d?d?d?d?d?d?d”

你可以同时运行多个命令,以测试不同长度的密码。

2.2 优化破解速度

2.2.1 开启 GPU 加速

如果你有 NVIDIA/AMD 显卡,可以用:

hashcat -m 13000 -a 3 hash.txt "abc?d?d?d?d" --force --optimized-kernel-enable

这样 Hashcat 会自动优化计算,提高速度。

2.2.2 限制最大运行时间

如果你想限制运行时间,比如最多运行 30 分钟:

hashcat -m 13000 -a 3 hash.txt "abc?d?d?d?d" --runtime=1800

这样 Hashcat 会在 30 分钟(1800秒)后自动停止。

2.3 破解进度

hashcat运行后,会一直运行到结束,cmd窗口会显示操作项:

选项功能
s显示当前状态(破解速度、已尝试密码数等)
p暂停破解(可恢复)
b跳过当前任务,继续下一个任务
c设置恢复点(如果中断可以从此继续)
f立即结束破解任务
q退出 Hashcat

如果你只是想查看进度,按 s(status)。

3. 查看破解结果

如果 Hashcat 成功破解密码,你会看到输出:

Session..........: hashcat
Status...........: Cracked
Hash.Type........: RAR5
Hash.Target......: hash.txt
Time.Started.....: Mon Feb 13 10:30:00 2025 (1 sec)
Time.Estimated...: Mon Feb 13 10:30:01 2025 (0 sec)
Recovered........: 1/1 (100.00%) Digests
Password.........: abc1234

到此破解成功!

4. 破解ZIP加密文件

和 rar 破解过程一样,我们需要先提取 zip 文件的哈希值,这里可以使用 zip2john 进行获取,zip2john.exe 在上面下载的 rar2john.exe 的同级目录下。

zip2john.exe 1.zip

然后使用hashcat进行破解:

hashcat -m 13600 -a 3 hash.txt --force ?d?d?d?d?d?d

5. 破解office文件

和 rar 与 zip 破解过程一样,我们需要先提取 office 文件的哈希值,这里可以使用 office2john.py 进行获取,office2john.py 在上面下载的 rar2john.exe 和 zip2john.exe 的同级目录下。

python office2john.py 1.docx

hashcat -m 9600 -a 3 hash.txt --force ?d?d?d?d?d?d

这里哈希头为 2013 所以使用 9600 破解模式,如果是 2010 则要使用 9500 破解模式,2007 则使用 9400 破解模式。

6. 破解进度暂存/恢复

当破解某个文件需要很长时间时,中途又不得不关闭hashcat窗口时,可以在窗口中按下c键来暂存进度。暂存的进度会保存在hashcat文件夹中hashcat.restore文件中。

这个hashcat.restore是在你开始执行破解命令时默认指定的存储文件,如果有破解多个文件的需求,那可以自己指定名称来暂存,比如破解文件1时暂存为file1,破解文件2时暂存为file2。可通过以下命令来实现:

hashcat -m 13000 -a 3 hash.txt "?d?d?d?d?d?d" --session file1

其中,--session file1就是要把破解进度暂存到哪个文件,当按下c键时,就可以暂存了。

 

恢复破解的话,执行:

hashcat.exe --session file1 --restore

窗口打开后,就能看到继续之前退出时的进度了。