网上有些压缩文件,是加了密的,不付费就不给密码,这就很烦。我白嫖惯了,付个锤子。
直接上教程。
总体步骤如下:
- 获取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. 暴力破解
下载上面的附件,然后解压缩,进入根目录即可。
2.1 掩码遮蔽破解
什么是掩码遮蔽破解?
说人话就是,你知道部分密码,比如说开头几个密码、结尾几个密码、中间几个密码。
假设你的密码是test%1548797651..
你最后只记得开头是test、结尾是..,那就可以用掩码遮蔽的方式进行破解。
在 Hashcat 里:
- RAR3(老版本) 使用模式
-m 12500
- RAR5(新版本) 使用模式
-m 13000
你需要确定你的 RAR 文件是哪种加密方式,所以第一步就已经完成了这个确认。
然后把第一步保存的hash.txt文件复制到根目录下。
2.1.1 掩码示例
Hashcat 支持多种掩码符号:
掩码 | 代表的字符 |
---|---|
?d | 0-9(数字) |
?l | a-z(小写字母) |
?u | A-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
窗口打开后,就能看到继续之前退出时的进度了。