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

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

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

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

hashcat -a 1 -m 0 hash.txt google-10000.txt google-10000.txt

当你看到这个标题时,你可能会怀疑。在理论上,破解一个12个字符以上的密码是不可能的。根据安全专家的说法,要破解一个12个字符以上的高强度密码,可能需要17134年的时间。然而,如果我们利用一些现代硬件设备,如”预算”裂解装置,我们就能在相对合理的时间范围内,穷举出像MD5、NTLM、SHA1等这些标准快速散列算法。通常情况下,对于超过8个字符的标准快速散列算法加密的密码,采用暴力破解方式被认为是无法破解的。

例如,当我们分析一种语言的特点和不同人的习惯时,我们发现英语单词的平均长度为4.79个字符,而人们通常习惯于使用多个单词组合来构建密码。如果想了解更多关于破解工具及其使用的内容,请参考Amazon上的”Hash Crack”。

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

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

组合攻击:将两个字典中的所有单词相互附加。

例如:
dictionary1.txt dictionary2.txt
pass => password, passpass, passlion
word => wordpass, wordword, wordlion
lion => lionpass, lionword, lionlion

混合攻击:字典攻击,但具有附加/前置一个暴力掩码的能力。

例如:
dictionary.txt ?u?l?l
pass => passAbc, passBcd, passCde
word => wordAbc, wordBcd, wordCde
lion => lionAbc, lionBcd, lionCde

更详细的解释可以在Hashcat的网站上找到。

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

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

例如:

hashcat密码字典生成

combinator.bin google-10000.txt google-10000.txt > google-10000-combined.txt

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

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

例如:

hashcat -a 0 -m 0 hash.txt google-10000-combined.txt -r best64.rule

hashcat密码字典生成

hashcat -a 1 -m 0 hash.txt google-10000-combined.txt google-10000.txt

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

例如:
这次我们用了28秒,成功破解了密码。

3个单词
现在让我们来看看由三个随机组成的短语密码,比如”securityobjectivesbulletin”。看起来不错吧?我们刚刚创建了一个新的”google-10000-combined.txt”字典文件,现在我们可以继续使用之前的方法,将由两个单词组合的字典与单个单词的字典列表进行组合。

例如:

hashcat密码字典生成

hashcat -a 1 -m 0 hash.txt google-10000-combined.txt google-10000-combined.txt

如果添加了一些字符变体,由于直接的随机英语单词只需要2秒钟,这可能会更加困难。你注意到了一个趋势吗?

理论上来说,我们增加了字符的数量,破解的难度也应该增加,但是我们只用了2秒左右的时间就成功破解了密码!在这里,你注意到了什么趋势吗?

4个单词
接下来,让我们尝试攻击XKCD介绍的使用四个随机英语单词生成的新密码”sourceinterfacesgatheredartists”。在这里,我们增加了一个单词,这意味着我们的破解范围更大。它的组合大约有10,000,000,000,000,000种可能性。然而,即使如此,它的强度也会大打折扣,因为我们使用的是MD5散列函数。现在,我将使用Hashcat并结合新创建的”combined”字典,再次进行组合攻击。

例如:

hashcat密码字典生成

python statsgen.py hashesorg251015.txt –minlength=5 –maxlength=6 –hiderare -o hashesorg_5or6.masks

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

混合攻击
Google-10000 + 掩码
对于第一个示例,我将使用之前在组合攻击演示中的google-10000.txt字典作为我们爆破的基本单词列表。然后,我将使用PACK和来自weakpass.com网站上的hashesorg251015.txt字典进行演示。

我选择使用hashesorg字典,因为它的效率相对较高,评级为65.9,并且字典的体积相对较小。我们需要做的是分析hashesorg的数据集,并根据一定的字符长度创建基于最流行密码模式的掩码。这些掩码将与我们的google-10000.txt单词列表结合,并形成一个有效的混合攻击。

PACK示例
生成5-6个字符长度的混合掩码密码,并输出到掩码文件。(注意,这可能需要一些时间)

例如:

python maskgen.py hashesorg_5or6.masksoptindex -o hashesorg_5or6.hcmask
hashcat -a 6 -m 0 hash.txt google-1000.txt hashesorg_5or6.hcmask

接下来,让我们将生成的掩码文件格式转换为Hashcat可以无缝使用的.hcmasks格式文件。

PACK示例

现在,我们可以使用Hashcat中的攻击模式6,并结合新创建的hashesorg掩码文件进行混合攻击了。这将启动一个有序的攻击,从第一个掩码开始,逐一尝试。有些攻击可能会很快,有些则可能需要一段时间。为了达到我们的测试目的,我们将使用一个随机密码”environmentsqaz472″。我们知道最终我们将会成功破解!

例如:

hashcat密码字典生成

hashcat -a 7 -m 0 hash.txt rockyou-1-60.hcmask rockyou.txt

这次攻击花了将近20分钟的时间。前面的格式转换占用了大部分时间,而从攻击开始到成功破解只用了14秒。

Rockyou + Rockyou-1-60.hcmask
现在,让我们使用从Rockyou密码数据集派生的Hashcat的内置掩码。Hashcat中的rockyou掩码已经被分割成更小的块,其大小基于编号而不断增加。我将使用最小的.hcmask文件rockyou-1-60,因为它包含较高概率的掩码,非常适用于混合攻击模式。我们还将将其与实际的Rockyou密码配对,可以在Skullsecurity上找到。在配对掩码和字典时,请确保字典的大小不会过大,否则攻击将需要很长时间。个人而言,我喜欢将我的混合攻击字典大小控制在500M以内,甚至更小。

让我们从Rockyou字典中随机选择密码”sophia!”,然后我们再添加一个任意日期”1996″,这样就生成了一个密码1996sophia!前面好比是用户名,后面则是出生年份。现在,我们可以开始尝试攻击了。这次攻击中,我将把rockyou-1-60数据集中顺序包含的掩码列表附加到Rockyou字典中包含的所有密码。

例如:

hashcat密码字典生成

cut -c 1-5 rockyou.txt | sort -u > first5_dict.txt

这种攻击可能只需要几分钟就能命中一个”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。但对于非快速散列算法来说,这是一个非常理想的字典文件。

例如:

hashcat -a 6 -m 0 hash.txt first5_dict.txt rockyou-1-60.hcmask

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

例如:

hashcat密码字典生成

hashcat -b -m 0

这种攻击对于那些喜欢使用相同的基本单词或数字作为密码,并将账户作为附加或预置”随机”码的用户尤其有效!从结果中,我们可以看到,在30分钟内,我们成功破解了密码。

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

例如(MD5):

hashcat密码字典生成

python statsgen.py rockyou.txt -o rockyou.masks
pythong maskgen.py rockyou.masks –optindex –minlength=12 –maxlength=15 –targettime=86400 –pps=76000000000 -o rockyou_12-15.hcmask

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

例如:
下面,让我们生成Hashcat的hcmask文件,设定攻击速度为1天(86400秒),攻击范围涵盖12-15个字符长度。

例如:

hashcat密码字典生成

hashcat -a 3 -m 0 hash.txt rockyou_12-15.hcmask

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

例如:

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

赞(0)