Hashcat面具

th.jpg

本文介绍了建议密码建议规则中介绍的技术的替代工具它使用Hashcat代替开源的John the Ripper。Hashcat可以免费使用,但它的源代码不可用。

首先查看上一篇文章。您需要它包含的四个示例哈希文件。然后返回此处使用Hashcat运行相同的蛮力。

定义自定义字符集

我们将使用三个Hashcat预定义的字符集来为我们的猜测构建字母数字种子。它们是小写(?l),大写(?u)和数字(?d)。

我们只需要一个自定义字符集,我们将使用该-1选项指定(选项的长名称--custom-charset1)。确保用单引号括起charset字符串,否则shell可能会误解问号。此示例使用64位hashcat-cli64.app用于OS X; Linux或Windows二进制文件的选项相同。

-1 '?l?u?d'

定义一个面具

您可以通过命令行选项创建掩码。自定义字符集是第一个,即?1?l在这种情况下不要与小写混淆。)我们希望建立三元组。所以第一步是根据charset 1创建一个包含三个字符的掩码,如下所示:

‘?1?1?1’

实际上,该掩码将产生长度为一,二和三个字符的猜测。我们只关心字母数字三元组,因此我们将使用该--pw-min选项指定最小密码长度为3。

使用--stdout选项验证输出

$ ./hashcat-cli64.app --stdout -m0 -a 3 -1 '?l?u?d' --pw-min=3 '?1?1?1' | less
aaa
baa
caa
daa
eaa
faa
gaa
haa
iaa

现在为完整格式创建一个掩码。它应该是由破折号分隔的四组字母数字三元组。使用?1占位符引用-1选项中定义的自定义字符集

'?1?1?1-?1?1?1-?1?1?1-?1?1?1'

验证面具。

$ ./hashcat-cli64.app --stdout -m0 -a 3 -1 '?l?u?d' --pw-min=15 '?1?1?1-?1?1?1-?1?1?1-?1?1?1' | less
aaa-aaa-aaa-aaa
baa-aaa-aaa-aaa
caa-aaa-aaa-aaa

开始猜测

使用该-m选项选择散列算法。到目前为止,我们一直在使用类型0,它对应于MD5。

$ ./hashcat-cli64.app -m0 -a 3 -1 '?l?u?d' --pw-min=15 safari_md5.txt '?1?1?1-?1?1?1-?1?1?1-?1?1?1'
Initializing hashcat v0.47 by atom with 8 threads and 32mb segment-size...
 
Added hashes from file safari_md5.txt: 8 (1 salts)

现在尝试使用SHA-256哈希函数,即模式1400

$ ./hashcat-cli64.app -m1400 -a 3 -1 '?l?u?d' --pw-min=15 safari_sha256.txt ‘?1?1?1-?1?1?1-?1?1?1-?1?1?1'
Initializing hashcat v0.47 by atom with 8 threads and 32mb segment-size...
 
Added hashes from file safari_sha256.txt: 8 (1 salts)

注意由于目标散列方法导致的破解速度的差异。具体数字因系统而异,但您可能会看到单词/秒。从MD5切换到SHA-256时,降为一半。这种丢弃是理想的,因为它会影响攻击者迭代猜测所需的工作因素(在时间和计算资源上测量的工作量)。

如果密码哈希列表被盗,您希望哈希算法具有较高的工作因子。还有其他方法,如盐析和像PBKDF2这样的算法,也可能会增加工作因素。

散列算法的选择不能有效地保护弱密码,无论它们是短密码(squ!d),使用小字符集(8675309),还是基于常用单词或短语(221bBakerStreet)的较长密码换句话说,最好的安全性是防止密码的散列版本首先被盗。

发表评论 / Comment

用心评论~