7.8、使用Hashcat进行密码哈希的暴力破解
。
环境准备
在开始之前,您需要确保正确安装了图形驱动程序,并且oclHashcat与其兼容。为此,请按照以下步骤进行操作:
-
运行Hashcat命令,它会告诉您是否存在任何问题:hashcat
-
在基准模式下测试每个算法的散列速率:hashcat –benchmark
-
根据您的安装情况,可能需要强制Hashcat使用您特定的显卡:hashcat –benchmark –force
实战演练
我们将使用上一章中的哈希文件进行演示:
- 首先,让我们尝试破解一个哈希值,比如管理员的哈希值:
结果应该很快出现。
正如您所看到的,我们可以直接从命令行设置哈希值,并且它将在不到一秒的时间内被破解。
- 现在,如果我们要破解整个文件,我们需要删除用户名,只保留哈希值,如下所示:
要破解文件中的哈希值,我们只需替换上一个命令中的文件名为哈希文件名:oclhashcat -m 0 -a 3 hashesonly6_7.txt。
正如下面的屏幕截图所示,使用旧的GPU,Hashcat可以在10分钟内涵盖从一个字符到七个字符的所有可能组合(以每秒6.885百万个哈希的速率),而测试八个字符的所有组合则需要超过两个小时。这对于暴力破解来说是相当不错的。
原理剖析
在本章中,我们使用了一些参数来运行Hashcat。这些参数用于定义要使用的散列算法。例如,-m 0告诉程序使用MD5算法进行散列,-a 3表示我们使用暴力攻击的级别,并尝试每个可能的字符组合,直到破解出密码为止。最后,我们在第一种情况下添加了要破解的哈希值,在第二种情况下添加了包含哈希集合的文件。
Hashcat还可以使用字典文件,并创建混合攻击(暴力破解加字典攻击),以定义要测试的字符集,并将结果保存到指定的文件中(默认情况下,它们保存在/usr/share/oclhashcat/Hashcat.pot中)。此外,它还可以应用规则到单词上,并使用统计模型(如马尔可夫链)来提高破解效率。
要查看所有选项,请使用–help选项,例如:oclhashcat –help。