密码破解
我了解的最新的和最喜欢的密码列表之一是来自最近发现的41 GB 大小的密码脱库,它包含14亿的用户名和密码( http://bit.ly/2HqbYk8 )。不过,我不想直接把下载链接展示出来,因为它包含很多敏感的用户名(或电子邮件)和相关密码,但你可以搜索 BreachCompilation.tar.bz2
以查找有关它的更多信息。在下载这些非常敏感的信息之前,请先查看你所在国家的法律。我建议你不要下载原始数据,只需下载密码列表即可。我已经下载了这个41GB 的字典,然后删除了所有用户名和电子邮件,并整理出了只是密码的数据。位于:http://thehackerplaybook.com/get.php?type=THP-password 。
在我的个人机器上,我使用8块技嘉 GV-N108TTURBO-11GD AORUS GeForce GTX 1080 Ti Turbo 11G 显卡,大约价值12,000美元,你也可以构建自己的一个机器,包括机箱、RAM、电源、SSD 和 GPU。当然,机箱至少需要一个4U机架(例如:SYS-4028GR-TR2)并且供应充足的电。虽然绝对不便宜,但我们每秒大约能枚举472,000,000,000个哈希值,可以爆破 Windows NTLM(Windows) 哈希。这是八个 GPU 的 hashcat 基准测试:
Hashmode: 1000 - NTLM
Speed.Dev.#1…..: 59436.3 MH/s (63.16ms)
Speed.Dev.#2…..: 58038.3 MH/s (64.70ms)
Speed.Dev.#3…..: 59104.4 MH/s (63.55ms)
Speed.Dev.#4…..: 59123.0 MH/s (63.52ms)
Speed.Dev.#5…..: 58899.7 MH/s (63.74ms)
Speed.Dev.#6…..: 59125.8 MH/s (63.51ms)
Speed.Dev.#7…..: 59256.3 MH/s (63.36ms)
Speed.Dev.#8…..: 59064.5 MH/s (63.56ms)
Speed.Dev.#*…..: 472.0 GH/s
对于那些买不起大型 GPU 设备的人来说,还有其他选择。你可以考虑在云服务器中进行密码破解的操作,虽然仍然不怎么便宜。最近,亚马逊已经集成了 TESLA GPU(不是特斯拉汽车),它们比1080Ti 更强大。关于如何使用这些 GPU 设置你自己的密码破解服务器,在 Medium 上有一篇很棒的文章:https://medium.com/@iraklis/running-hashcat-v4-0-0-in-amazons-aws-new-p3-16xlarge-instance-e8fab4541e9b 。
来自 Iraklis Mathiopoulos 的文章中的数据:
译者注:Iraklis Mathiopoulos 是上面这篇文章的作者。
Hashmode: 1000 - NTLM:
Speed.Dev.#1…..: 79294.4 MH/s (33.81ms)
Speed.Dev.#2…..: 79376.5 MH/s (33.79ms)
Speed.Dev.#3…..: 79135.5 MH/s (33.88ms)
Speed.Dev.#4…..: 79051.6 MH/s (33.84ms)
Speed.Dev.#5…..: 79030.6 MH/s (33.85ms)
Speed.Dev.#6…..: 79395.3 MH/s (33.81ms)
Speed.Dev.#7…..: 79079.5 MH/s (33.83ms)
Speed.Dev.#8…..: 79350.7 MH/s (33.83ms)
Speed.Dev.#*…..: 633.7 GH/s
对于同样的 NTLM 哈希值,使用 TESLA GPU 显卡破解的总速度比使用1080Ti GPU显卡大约快34%。但是运行 AWS 的总成本约为每小时25美元。因此,你需要根据自己的预算、需求和目标来选择。
实验:
最近,Have I Been Pwned 网站的创始人 Troy Hunt 发布了一个 SHA1 密码哈希列表,压缩之后的体积大约为5.3 GB。这是有史以来的数据泄露、脱库中一个非常大的列表了。这是一个测试你密码破解技巧的绝佳素材:
随着这些 GPU 的破解速度变得越来越快,10个字符以下的密码可以在相对合理的时间范围内进行智能化破解。其中一些可以通过使用高质量的密码掩码来破解,但是大多数情况下,主要取决于密码列表自身的复杂程度。破解大于12个字符的密码的最快方法之一就是使用来自于真实数据泄露事件的密码列表。回顾过去所有的数据泄露事件,我们可以很好地了解人类如何创建密码,混淆密码的常用技巧以及最常用的单词。使用复杂规则集配合这些密码字典,可以让我们以极快的速度破解密码(有时超过25个字符)。但请记住,你的密码列表取决于你构建和维护它的程度。作为红队队员,我们会定期跟踪我们破解的所有帐户,对其进行分析并将其添加到我们的密码字典中。我们还会不断监控新的数据泄露事件,访问 pastebin 和 pastie 网站等,以查找更新的密码。此处有一个很好的监控列表:https://inteltechniques.com/OSINT/pastebins.html 。
我最喜欢的密码列表:
- berzerk0的 Real-Password-WPA 密码列表:
- 18.6 GB 未压缩
- berzerk0 的字典风格的列表:
- 1 GB 未压缩
- http://bit.ly/2GXRNus
- Xato 的千万数量的密码
- magnet:?xt=urn:btih:32E50D9656E101F54120ADA3CE73F7A65EC9D5CB
- Hashes.org
- https://hashes.org/left.php
- 几千兆字节,而且每天都在增长
- Crackstation
- Weakpass(弱密码)
- First20Hours
- 该项目包含按频率顺序排列的10,000个最常见的英语单词列表,由 Google 的万亿字词数据库的 n-gram 频率分析确定。
- https://github.com/cyberspacekittens/google-10000-english
- SkullSecurity.org
- 优秀的旧密码列表,如 rockyou,myspace,phpbb
- https://wiki.skullsecurity.org/Passwords
- Daniel Miessler 的密码编译
- Adeptus-mechanicus 哈希脱库
通过优秀的密码列表组合,我们可以基于列表添加规则来找到更多密码。就 Hashcat 而言,规则会确定是否需要在词表中进行任何修改和扩展。描述规则的最佳方式是使用这一个易于理解的示例。我们可以使用 KoreLogicRulesAppendYears 规则集,如下所示:
- cAz”19[0-9][0-9]”
- Az”19[0-9][0-9]”
- cAz”20[01][0-9]”
- Az”20[01][0-9]”
它将在每个密码中添加1949年到2019年的年份字符串。比如,如果密码列表中包含单词 “hacker”,它就会使用 “hacker1949” 来尝试破解哈希值,一直试到 “hacker2019”。请记住,你拥有的密码规则越复杂,通过单词列表中的所有单词破解目标所需的时间就越长。
幸运的是,我们不需要创建自己的规则,因为网上已经有很多很好的规则。当然,还有默认的 Hashcat 规则,它来自许多较旧的数据泄露,以及常见的密码破解技术。这是一个很好的起点。Kore 规则来自 Korelogic 的密码竞赛,是其标准之一。另外的两个规则需要的时间更久,但也有非常详细的规则集,分别是 NSAKEY 和 Hob0Rules。在过去,我会采取所有的规则,将它们编入单个文件,并对文件去重。但是,现在,NotSoSecure
规则实际上已经为你做好了这些工作。
规则:
- Hashcat Rules
- Kore Rules
- NSAKEY Rules(我的最爱之一)
- Praetorian-inc Hob0Rules
- NotSoSecure —— 此规则包含上面全部规则
注:NSAKEY Rules、Praetorian-inc Hob0Rules 和 NotSoSecure 是原仓库的 Fork 版本。