2010-06 from–https://mysock.net/index.php/archives/724
准备工作
rar2john 工具下载地址:http://openwall.info/wiki/_media/john/johntheripper-v1.8.0.12-jumbo-1-bleeding-e6214ceab-2018-02-07-win-x64.7z
hashcat 下载地址:https://hashcat.net/files/hashcat-4.1.0.7z
下载并解压这两个工具,放到同级目录,方便以后使用,目录结构如下所示:
D:Tool
├─hashcat
│ ├─MyCrackRAR.bat
│ ├─testfile.rar
├─JohnTheRipper
过程
testfile.rar 是测试用的文件,密码为1234。示例中的 hash 值仅演示用,并非真正的 hash。
1. 用 rar2john.exe 获取 rar 压缩文件的 hash 值:
D:\Tool\JohnTheRipper\run>rar2john.exe testfile.rar
testfile.rar:$RAR3$*0*5ba3dd697a8706fa*919ad1d7a1c42bae4a8d462c8537c9cb:0::::testfile.rar
2. 用 hashcat 破解:
hashcat64.exe -m 12500 -a3 $RAR3$*0*5ba3dd697a8706fa*919ad1d7a1c42bae4a8d462c8537c9cb ?d?d?d?d
3. 方便起见,写一个 MyCrackRAR.bat 脚本,放在 hashcat 目录中,内容如下:
@echo off
rem szRarFile rar文件名
set szRarFile="testfile.rar"
echo RAR文件:[%szRarFile%]
rem for 循环作用为截取两个冒号中的内容
for /f "delims=:, tokens=2" %%i in ('..\JohnTheRipper\run\rar2john.exe %szRarFile%') do (
set szHash="%%i"
)
rem 去掉字符串的前后双引号
set szHash=%szHash:~1,-1%
echo RAR文件hash值为[%szHash%]
@echo on
hashcat64.exe -m 12500 -a3 %szHash% ?d?d?d?d
pause
注意事项
hashcat 支持 RAR3-hp 和 RAR5,官方示例如下:
-m 参数 | 类型 | 示例 hash |
---|---|---|
12500 | RAR3-hp | $RAR3$*0*45109af8ab5f297a*adbf6c5385d7a40373e8f77d7b89d317 |
13000 | RAR5 | $rar5$16$74575567518807622265582327032280$15$f8b4064de34ac02ecabfe9abdf93ed6a$8$9843834ed0f7c754 |
注意 hash 中,RAR3-hp 值为$RAR3$*0*xxx
,中间的数值是0(-hp
)而不是1(-p
),-p
尚未得到支持,只支持-hp
。
本例中使用的就是 RAR3-hp,因为没有新版 WinRAR 所以没测试 RAR5 类型。
关于 RAR 参数-p
和-hp
的区别
-p
:只对 RAR 文件加密,里面的目录和文件名没加密;
-hp
:对目录中的文件名和子目录都进行加密处理。