背景

昨天逛悬赏区,有一位福娃发帖说有个压缩包密码解不开。压缩包主人出了一道题,要猜出9位数字,这一串数字就是密码。

本来想用脑子解题的,可惜能力不足试了好几种结果都是错的,遂转向用电脑暴力破解。

一开始用python写了个遍历数字的小程序,但是速度太慢了。因为只能使用CPU,7线程1分钟大约只耐姊试1w组密码。要试9亿组密码需要2个多月。所以就在想有没有能用GPU的方法。搜了一圈,发现有现成的软件可以计算压缩包的哈希值,然后调用GPU去计算密码的哈希值从而找出密码。这种方法每秒平均可以计算1w组密码,同样9亿组密码只要25小时。

正文

前期准备

破解压缩包密码需要用到两个工就娆分别是John the Ripper jumbo和hashcat。这两款软件分别下载windows版和binaries版就可以在windows上运行了。两个软件都是开源软件,所以也不用担心病毒。

还需要准备一个有密码的压缩包,这里以rar压缩包为例。

最后因为要使用GPU来运算,可能需要预先安装cuda环境之类的,这点没有深入研究。

获取压缩包哈希值

在john的路径中打开cmd:打开john un文件夹,在地址栏中输入cmd然后回车就行。

获取压缩包的路径,shift+右键点开压缩包,选项里有复制文件路径。把压缩包拖进cmd窗口也可以。

在cmd中输入,如果是zip压缩包就要用zip2john,以此类推。

rar2john rar压缩包路径复制代码会看到以下输出:

压缩包路径:$rar5$哈希值复制代码

复制“$rar5$哈希值”以备用。

计算密码哈希值

以同样方法在hashcat的路径中打开cmd。

这里以64位电脑为例:

hashcat64 -m 13000 -a3 $rar5$哈希值 ?d?d?d?d?d?d?d?d?d复制代码说明:

-m是模式,后面的13000代表哈希值的种类,这里是rar5,可以看john算出的哈希值的第一段。如果是rar3就要用12500。可以在这里的Hash modes章节中看到相关代码。

-a3代表掩码破解,同样的还有-a0代表字典破解,字典破解时需要自备字典文件。

?d就是上面提到的掩码,代表数字。相同的还有?u、?l代表大小写字母。还有其他掩码,用法也和正则表达式差不多,有兴趣可以自己搜索。

按小写s查看进度,按小写p暂停。计算结束后会自动停止,并以“哈希值: 密码”的方式显示密码。

结语

还好密码还比较靠前,算了6个多小时就出结果了。

用户评论 0

暂无评论