返回介绍

8.3 彻底破解全部 - 尽您所能快速破解

发布于 2024-10-13 11:41:10 字数 4121 浏览 0 评论 0 收藏 0

您突破 CSK 公司,获取了大量的密码。在有限的时间内,您如何取得最好的“收益”?以下演练将指导您完成初始步骤,我们需要尽可能多地破解密码。虽然,我们通常只需要几个域管理员、LDAP 管理员和公司管理员账户,但我的强迫症倾向驱使我破解所有密码。

在开始之前,您确实需要了解散列的密码格式。一旦理解了散列类型,最好先进行一些初始测试,确定密码散列算法的速度。这将对您的密码破解方法产生巨大影响。例如,在查看 Windows 散列时,我们看到 NTLM(Windows)的执行速度大约是 5 000 MH/s。常见的 Linux 散列值 SHA-256 的执行速度约为 5 000 MH/s。

这意味着对于 SHA-256 散列,您的 GPU 可以每秒猜测 5 000 000 000 次。这可能看起来很多,但是当您有大量的单词字典和复杂规则集时,它可能不够强大。这是因为与 NTLM 相比,SHA-256 算法的计算速度非常慢且成本高,NTLM 可以达到每秒 75 000 000 000 个散列值。在例子中,我们将使用 8 个 1080Ti GPU,通过 NTLM 的快速散列转储。

破解 Cyber SpaceKittens NTLM 散列

在获得域管理员访问权限后,您可以使用 DCSync 攻击方法,从域控制器转储所有散列值。您现在的目标是尽可能多地尝试破解散列。您能够在以后的行动中使用这些账户,并向被攻击者公司展示员工密码使用方面的问题。

我们在名为 cat.txt 的文件中保存所有 NTLM Windows 散列值。为了使读者更容易理解,我们将省略初始的 hashcat 执行命令。每个命令执行都将以“hashcat -w 3 -m 1000 -o hashes.cracked ./hashes/cat.txt”开头。

  • hashcat:运行 hashcat 工具。
  • -w 3:使用固定的配置。
  • -m 1000:散列值的格式为 NTLM。
  • -o hashes.cracked:结果输出到文件中。
  • ./hashes/cat.txt:散列值存储的位置。

因此,每当您看到“[hashcat]”字符串时,可使用以下命令替换它:“hashcat -w 3 -m 1000 -o hashes.cracked ./hashes/cat.txt”。现在,快速破解 NTLM 散列值,我们可以在 8 个 GPU 1080Ti 平台上高效工作。

  • 对于长度为 1~7 个字符的任何字母、数字或特殊字符(?a),使用攻击模式“brute-force”(-a 3)破解所有 7 个字符或更少的密码(增量)。
    • [hashcat] -a 3 ?a?a?a?a?a?a?a --increment
    • 7 个字符 alpha/num/special 破解总时间约为 5min。8 个字符需要运行 9h。
    • 您还可以限制特殊字符为少数(!@#$%^),这将显著减少破解时间和复杂度。
  • 接下来,将所有常见密码字典转储与散列值进行比较。第一个文件(40GB_ Unique_File.txt)是一个 3.2 GB 大小的密码文件,运行大约需要 9s。
    • [hashcat] ./lists/40GB_Unique_File.txt
  • 正如我们所看到的,即使是最大的文件,计算的时间也只需要几秒。为了提高效率,我们实际上可以使用“*”运算符,与./lists/文件夹中的每个密码字典进行比较。
    • [hashcat] ./lists/*
  • 接下来,基于散列算法的速度,可以在单个密码字典文件上尝试不同的规则集。我们将从 rockyou 规则集开始,这些 NTLM 散列值大约需要 2min9s。
    • [hashcat] ./lists/40GB_Unique_File.txt -r ./rules/rockyou-30000.rule
    • 注意:使用 3 GB 大小文件设置 NSAKEY 规则,大约需要 7min,而 NotSoSecure 的“The one rule to rule them all”规则集大约需要 20min
  • 我重新使用其他密码字典和规则集组合。所有大型规则集和大型密码字典组合的第一轮,我们至少可以提高 30%的破解率。
  • 接下来,我们开始在密码字典的右侧添加字符,满足更长密码破解需求。下面显示的-a 6 开关命令,将每个字母/数字/特殊字符添加到密码右侧,从 1 个字符开始一直到 4 个字符。
    • [hashcat] -i -a 6 ./lists/found.2015.txt ?a?a?a?a
    • 需要花费大约 30min 时间完成 4 个字符的尝试
  • 我们还可以在密码列表的左侧添加字符。以下命令将每个字母/数字/特殊字符添加到密码的左侧,从 1 个字符开始一直到 4 个字符。
    • [hashcat] -i -a 7 ?a?a?a?a ./lists/40GB_Unique_File.txt
    • 需要花费大约 30min 时间完成 4 个字符的尝试
  • hashcat 应用:hashcat 包括很多工具,可以帮助构建更好的密码字典。一个例子是组合器,它可以采用两个或 3 个不同的密码字典进行组合。使用小的字典速度相对较快。把我们的 shortKrak 字典与它自身结合,就会产生一个非常好的结果。
    • ./hashcat-utils-1.8/bin/combinator.bin lists/shortKrak.txt lists/shortKrak.txt > lists/ comboshortKrak.txt
  • 使用排名靠前的 Google 1 000 字的列表会产生大约 1.4 GB 大小的字典文件,因此您必须小心地选择文件的大小。
    • ./hashcat-utils-1.8/bin/combinator.bin lists/google_top_1000.txt lists/google_top_ 1000.txt > lists/google_top_1000_combo.txt
    • 输入 4MB 文件,运行 combinator,生成的文件大于 25 GB 的存储空间。因此,要注意这些文件的大小
  • 很多时候,人们使用的密码不是常见的字典单词,而是基于公司、产品或服务的单词。我们可以使用客户端网站创建自定义密码字典。实现这个功能的两个工具如下。
    • Brutescrape - https://github.com/cheetz/brutescrape
    • Burp Word List Extractor -https://portswigger.net/bappstore/21df56baa03d499c 8439018fe075d3d7
  • 接下来,输入所有破解的密码,分析它们并用来创建掩码 https://thesprawl.org/ projects/pack/。
    • python ./PACK-0.0.4/statsgen.py hashes.password
    • python ./PACK-0.0.4/statsgen.py hashes.password --minlength=10 -o hashes.masks
    • python ./PACK-0.0.4/maskgen.py hashes.masks --optindex -q –o custom-optindex. hcmask
  • 使用新创建的掩码,运行密码破解。
    • [hashcat] -a 3 ./custom-optindex.hcmask
  • 通过 Pipal 获取密码字典,从而更好地理解基本单词,如图 8.2 所示。

0802

图 8.2

  • cd /opt/pipal
  • ./pipal.rb hashes.password
  • 查看密码字典,您可能会发现该公司使用 resetme12345 作为默认密码,公司可能位于密歇根州(底特律、老虎、足球)。

您的最终目标是什么?通过对不同的密码生成工具、分析技术和其他技术进行大量研究,可以找到更快的破解密码的方法。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文