8.2 密码破解
我最新的密码字典是最近的 41GB 密码转储,其中包含 14 亿用户名及其密码。现在,我不想直接提供 torrent 链接,因为其中包含很多敏感的用户名(或电子邮件)和相关密码,您可以搜索 BreachCompilation.tar.bz2 查找更多的相关信息。在下载这些非常敏感的信息之前,请查阅当地的法律条款。我建议您不要下载原始转储,而只是下载密码列表。我已经下载了 41 GB 转储,删除了所有用户名/电子邮件,只获取了密码字典。在我的个人主机上,使用 8x Gigabyte GV-N108TTURBO-11GD AORUS GeForce GTX 1080 Ti Turbo 11G 显卡。您可以自己搭建一个硬件,包括机箱、内存、电源、SSD 硬盘和 GPU 显卡。当然,机箱至少需要 4U 机架(例如,SYS-4028GR-TR2)和功率足够大的电源。虽然价格不菲,但我们可以每秒大约计算 472 000 000 000 个散列值,暴力破解 NTLM(Windows)散列值。这是 8 个 GPU 的 hashcat 基准测试,散列模式为 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 更强。在 Medium 上有一篇很棒的文章介绍如何基于这些 GPU 搭建破解服务器。
来自 Iraklis Mathiopoulos 论文的统计数据,散列模式为 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 大约快 34%。运行 AWS 云的总成本约为每小时 25 美元。因此,您需要统筹规划自己的预算、要求和目标。
实验
最近,Troy Hunt 在“Have I Been Pwned”网站上发布了一个密码散列的 SHA1 列表,压缩文件大小约为 5.3 GB。这是由以前泄露的数据生成的大字典,可以作为一份测试密码破解能力的实验数据。
随着这些 GPU 变得越来越快,10 个字符以下的密码可以在相对合理的时间范围内进行智能破解。其中一些使用设置合理的密码掩码可以实现破解,但在大多数情况下,需要使用密码字典破解。使用真实漏洞的密码字典是破解大于 12 个字符密码的一种极快的方法。查看过去所有的泄露数据,我们可以很快地了解人类如何创建密码、混淆密码的常用技巧以及常用的单词。
使用具有复杂规则集的这些密码字典,我们将能够快速破解密码(有时超过 25 个字符)。但是请记住,密码字典取决于构建方式和更新方式。作为红队,我们定期跟踪破解的所有账户,分析它们,并将它们添加到密码字典中。我们还需要不断监控新的数据泄露、pastebin/pastie 类型的网站等,查找新的密码。
常用的密码字典
- berzerk0 Real-Password-WPA 密码字典。
- 18.6 GB Uncompressed。
- http://bit.ly/2EMs6am
- berzerk0 Dictionary-Style 字典。
- 1 GB Uncompressed
- http://bit.ly/2GXRNus
- Xato Million Passwords。
- magnet:?xt=urn:btih:32E50D9656E101F54120ADA3CE73F7A65EC9D5CB
- Hashes.org。
- http://hashes.org/left.php
- Multiple Gigabytes and growing daily
- Crackstation。
- 15 GB Uncompressed
- Weakpass。
- Tons of password lists
- First20Hours。
- 这个库包含按频率顺序排列的 10 000 个常见的英语单词列表,由 Google 的 Trillion Word Corpus 的 N-Gram 频率分析生成
- SkullSecurity.org。
- 很多老的字典库,例如 rockyou、myspace 和 phpbb
- Daniel Miessler's Password Compilation。
- Adeptus-mechanicus Hash dumps。
将好的密码字典进行组合,我们可以在这些密码字典之上,添加规则,查找更多密码。就 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 规则。
- Kore 规则。
- NSAKEY Rules (One of my favorite) *Forked。
- Praetorian-inc Hob0Rules *Forked。
- NotSoSecure - One Rule to Rule Them All *Forked。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论