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

看到这个标题,你肯定抱着怀疑的态度。破解 12+ 字符的密码,在理论上这是不可能的。因为按照安全专家的说法,想要破解一个 12+ 字符的高强度密码,大概需要 17134 年。这里我只是说,如果我们利用一些现代硬件设备,如“预算”裂解装置,我们就能在一个相对合理的时间范围内,穷举出像 MD5,NTLM,SHA1等,这些标准快速散列算法。通常,暴力破解这种方式,对于超过 8 个字符的标准快速散列算法加密的密码,一般被认为是无法破解的。

例如当我们对一种语言的特点,和不同人的不同习惯上分析发现,英语单词平均有 4.79 个字符长度,而一般情况下,人们会习惯性的使用多个单词组合来构建密码。

一、那么为什么12+字符的超强密码,容易受到攻击呢?

事实上,通常人们在创建大于10个字符以上的密码时,都会习惯性的使用一些常见的单词或短语组合来构建。之所以这样做,其实也很容易理解。例如“horsebattery123”比“GFj27ef8%k $ 39” 这个密码记起来会更加容易。这已经不是一个“漏洞”的问题,而是人类的思维本能和行为习惯形成的。因此,这个问题也会一直存在我们的周围。我当然赞同,使用XKCD那种漫画随机产生的四个单词作为密码。但是那只适用于非快速散列算法,如bcrypt。在这篇文章,我将演示 Hashcat的组合及混合 两种攻击方式。这些例子将让你看到,攻击者是如何利用那些硬件设备,来对那些所谓的高强度密码,进行有效攻击的。

二、组合&混合 攻击背景

首先快速介绍一下这些攻击方法:

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

例如:

  1. dictionary1.txt dictionary2.txt 
  2.  
  3. pass => password, passpass, passlion 
  4.  
  5. word => wordpass, wordword, wordlion 
  6.  
  7. lion => lionpass, lionword, lionlion 

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

例如:

  1. dictionary.txt ?u?l?l 
  2.  
  3. pass => passAbc, passBcd, passCde 
  4.  
  5. word => wordAbc, wordBcd, wordCde 
  6.  
  7. lion => lionAbc, lionBcd, lionCde 
  8.  
  9. **进一步的解释可以在 Hashcat 的网站上找到。 

**进一步的解释可以在 Hashcat 的网站上找到。

三、组合攻击

让我们来看看组合攻击这种方式,是如何帮助我们组合英语单词的密码的。在这里,我推荐大家使用Google的10,000 个最常见的单词列表,作为我们组合的字典。这10000个最常见的单词列表,是由Google的Trillion单词库的n-gram 频率分析而确定。 现在让我们使用两个随机选择的英语单词,组合形成一个16个字符的密码,如shippingnovember。

如果这是一个通过 MD5 加密的密码,那么我们该如何使用 Hashcat 的组合攻击这个密码:

例如:

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

通过使 Hashcat 将该列表中的每个字词彼此组合,并结合一些性能较好的硬件设备,密码在不到 1 秒内就被破解出来。目前这种破解方法并不过时,它对那些中等较慢的哈希类型效果依然不错。

在这里也许有人会说,“我用的shippingnovember全部为小写字母,因此能成功破解出来,但是如果随意做个改动,例如增加特殊字符,字母大小写变化等,如:ShippingNovember这个形式就不一定能成功。那么,就让我们来快速测试一下吧。首先我使用Hashcat的“combinator.bin” 将google的字典列表合并成一个单独的字典。

例如:

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

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

例如:

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

这里我们用时 28 秒,成功爆破!

1. 3个单词

现在让我们来看看,由三个单词随机组成的短语密码,如“securityobjectivesbulletin”…看起来不错吧? 上面我们刚刚创建了新的 “google-10000-combined.txt” 字典文件,下面我们可以继续使用上面的方式,将由两个单词组合的字典同单个单词的字典列表进行组合:

例如:

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

如果添加了一些字符变体,但是因为你可以看到直接的随机英语单词落在2秒钟,这可能会有点更困难。 你在这里看到一个趋势吗?

理论上来说我们添加了字符数量,破解起来也应该会更加困难耗时,但这里我们只用了2秒左右时间,就成功破解出来了!在这里,你看到什么趋势了吗?

2. 4个单词

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

例如:

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

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

四、混合攻击

1. Google-10000 + 掩码

对于第一个示例,我将使用之前在组合攻击演示中的 google-10000.txt 字典表,来作为我们爆破的基本单词列表。然后我将使用 PACK(密码分析和破解工具包)和来自weakpass.com网站上的hashesorg251015.txt字典做演示。

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

2. PACK 示例

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

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

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

3. PACK 示例

  1. python maskgen.py hashesorg_5or6.masks –optindex -o hashesorg_5or6.hcmask 

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

例如:

  1. hashcat -a 6 -m 0 hash.txt google-1000.txt hashesorg_5or6.hcmask 

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

4. Rockyou + Rockyou-1-60.hcmask

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

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

例如:

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

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

5. Cut First 5 Chars + 掩码

让我们来创建一个自己的字典和掩码,来配合我们的混合攻击。在文章开头我们已经知道了,平均英语单词为 4.79 个字符 长。因此,我们创建的字典将最多包含 5 个字符长度。在这个例子中,我们将再次使用 rockyou.txt 字典。我们将使用 cut 命令,将截取字典中的前 5 个字符,并按顺序将其追加到一个名为 first5_dict.txt 的文件内。根据你硬件的性能,将决定你字典的生成时间。你可能会注意到,这个新生成的字典文件体积非常的小,只有 18MB。但是对于非快速散列算法,这是一个非常完美的字典文件。

例如:

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

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

例如:

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

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

6. 直接通过掩码攻击 12+ 字符密码

让我们再次使用 rockyou.txt 字典,来作为例子生成这些掩码。但在此之前,先让我们先来测试下我们的机器,对 md5 哈希爆破的速度。

例如(MD5):

  1. hashcat -b -m 0 

 

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

例如:

  1. python statsgen.py rockyou.txt -o rockyou.masks 

下面我们就可以来生成我们的 Hashcat hcmask 文件了,我们设定攻击速度为 1 天(86400秒),攻击范围涵盖 12-15 的字符长度。

例如:

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

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

例如:

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

总结

通过以上的介绍及演示,相信你已经意识到,密码的安全与否,并不是单单取决于字符的长短的。如果想要更好的保护你的账户,不被他人窃取。那么,你必须摒弃一些你的坏习惯。例如:使用一些常见的单词或短语组合,或者全部采用小写字母或纯数字等来构建你的密码。这些都有可能,给你账号带来安全隐患!因此,在这里我强烈建议大家,尽可能的使用一些密码管理器,例如像 1Password 和 Keepass 这类的应用。

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/148428.html<

(0)
运维的头像运维
上一篇2025-03-12 03:49
下一篇 2025-03-12 03:50

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注