如何破解12位+字符的高强度密码?

在线wifi跑包 金刚包跑包 cap跑包 hccapx ewsa在线 就来 握手包跑包

各位好 又见面了 我是曹操 今天给大家带来一篇新的教程

希望各位细心学习 低调用网

hashcat

当你看到这个标题时,你可能会怀疑。破解一个12+字符的密码,在理论上是不可能的。根据安全专家的说法,要破解一个12+字符的高强度密码,可能需要17134年的时间。然而,如果我们利用一些现代硬件设备,如”预算”裂解装置,我们可以在相对合理的时间范围内,穷举出像MD5、NTLM、SHA1等标准快速散列算法的密码。通常情况下,对于超过8个字符的标准快速散列算法加密的密码,暴力破解被认为是不可能的。这是因为英语单词的平均长度约为4.79个字符,人们通常习惯于使用多个单词组合来构建密码。如果您想了解更多关于破解工具及其使用的内容,请参考Amazon上的Hash Crack。

那么为什么12+字符的超强密码容易受到攻击呢?事实上,通常人们在创建大于10个字符以上的密码时,会习惯性地使用一些常见的单词或短语组合来构建。这并不是一个”漏洞”,而是人类思维和行为习惯的结果。因此,这个问题将一直存在于我们周围。当然,我赞同使用XKCD那种漫画随机产生的四个单词作为密码。但是这只适用于非快速散列算法,如bcrypt。在本文中,我将演示Hashcat的组合和混合两种攻击方式,让您看到攻击者如何利用硬件设备对所谓的高强度密码进行有效攻击。

组合和混合攻击背景
首先,让我快速介绍一下这两种攻击方法:

  • 组合攻击:将两个字典中的所有单词相互附加。
  • 混合攻击:字典攻击,但具有附加/前置一个暴力掩码的能力。

组合攻击
让我们看看组合攻击如何帮助我们破解由英语单词组成的密码。我建议使用Google的”10,000个最常见的单词列表”作为我们的组合字典。这个列表是根据Google的Trillion单词库的n-gram频率分析确定的。

现在,让我们以两个随机选择的英语单词组合成一个16个字符的密码,比如”shippingnovember”。如果这是一个使用MD5加密的密码,我们可以如何使用Hashcat的组合攻击来破解它呢?

通过让Hashcat将字典中的每个单词彼此组合,并结合一些性能较好的硬件设备,我们可以在不到1秒的时间内破解密码。这种破解方法仍然有效,尤其对于那些中等较慢的哈希类型。

也许有人会说,”如果我使用的是全小写的shippingnovember,那么就可以成功破解,但如果我稍作修改,比如添加特殊字符或改变字母大小写,比如ShippingNovember,就不一定能成功了。”让我们快速测试一下吧。首先,我使用Hashcat的”combinator.bin”将Google的字典列表合并成一个单独的字典。

接下来,我们可以使用Hashcat结合这个新生成的基于规则的字典文件,对大小写修改后的密码ShippingNovember进行爆破。

这次攻击花费了28秒,成功破解了密码。从这个例子中,我们可以看到,即使稍作修改,也可以成功破解密码。

3个单词
现在,让我们来看看由三个随机单词组成的短语密码,比如”securityobjectivesbulletin”。这看起来不错吧?

我们刚刚创建了一个新的”google-10000-combined.txt”字典文件。现在,我们可以继续使用之前的方法,将由两个单词组合的字典与单个单词的字典列表进行组合。

如果添加了一些字符变体,破解就会变得更加困难。但是,你是否注意到了一个趋势?

4个单词
接下来,让我们尝试攻击XKCD介绍的使用四个随机英语单词生成的密码,比如”sourceinterfacesgatheredartists”。在这个例子中,我们增加了一个单词,这意味着我们的破解范围更大。它的组合大约有10,000,000,000,000,000种可能性。然而,即使如此,它的强度也会大打折扣,因为我们使用的是MD5散列函数。

现在,我将使用Hashcat结合新创建的”combined”字典文件,再次执行组合攻击。

这次攻击可能需要4天左右的时间才能完成。但幸运的是,我们只用了5小时35分钟就成功破解了密码。如果对这个密码做简单的修改,比如添加数字或特殊字符,就会超出我们的范围,但再次随机选择通用词是不匹配的。

混合攻击
现在,让我们来介绍一下混合攻击。我们将使用Hashcat中的rockyou-1-60.hcmask掩码,这是从Rockyou密码数据集派生出来的。我们还将使用Skullsecurity网站上的实际Rockyou密码。

让我们从Rockyou字典中随机选择一个密码,比如”sophia!”,然后我们再添加一个任意日期”1996″,这样就生成了一个密码1996sophia!。前面的部分可以看作是用户名,后面的部分是出生年份。

下面,我们可以开始尝试攻击了。这次攻击中,我将把rockyou-1-60数据集中顺序包含的掩码列表附加到Rockyou字典中的所有密码。

这种攻击只用了几分钟就命中了一个”d?d?d?d”的掩码。这是为了演示目的,但充分展示了混合攻击的过程和威力。rockyou-1-60.hcmask中共包含了836个不同的掩码,如果你觉得不够,Hashcat将自动包含rockyou数据集中的所有掩码。

Cut First 5 Chars + 掩码
让我们创建一个自己的字典和掩码,配合混合攻击。根据之前的分析,我们知道平均英语单词长度为4.79个字符。因此,我们创建的字典将最多包含5个字符长度。

在这个例子中,我们将再次使用rockyou.txt字典。我们将使用cut命令从字典中截取前5个字符,并按顺序将它们追加到一个名为first5_dict.txt的文件中。根据您的硬件性能,生成字典的时间可能会有所不同。新生成的字典文件非常小,只有18MB,但对于非快速散列算法来说,这是一个非常完美的字典文件。

接下来,让我们将新生成的first5dict.txt字典与Hashcat中的rockyou-1-60掩码配对。现在,让我们随机生成一个密码。在first5dict.txt字典文件中,我随机选择了Alty5和随机数字9402847的组合作为我的密码,即Alty59402847。

这种攻击只用了30分钟就成功破解了密码。

直接通过掩码攻击12+字符密码
让我们再次使用rockyou.txt字典作为例子生成这些掩码。但在此之前,让我们先测试一下我们的机器对MD5哈希爆破的速度。

从以上测试结果可以看出,我们的机器破解速度为760亿次每秒(76,000,000,000 c/s)。让我们使用PACK从rockyou.txt字典创建新的掩码。

当成功生成掩码文件后,我们可以使用rockyou_12-15.hcmask文件对MD5哈希进行爆破。如果一切顺利,我们将在一天内破解出结果。

总结
通过以上的介绍和演示,相信您已经意识到,密码的安全性并不仅仅取决于字符的长度。如果您想更好地保护您的账户,避免被他人窃取,您必须摒弃一些坏习惯,例如使用常见的单词或短语组合,或者全部使用小写字母或纯数字来构建密码。这些都可能给您的账户带来安全隐患。因此,我强烈建议您尽可能使用密码管理器,如1Password和Keepass等应用程序。

赞(6)