针对NTLMv1的实用攻击

admin 2024年10月21日23:00:40评论17 views字数 2585阅读8分37秒阅读模式

支持 NTLMv1 身份验证协议的系统的实际利用指南。尽管几乎不再需要 NTLMv1,但仍有数量惊人的组织仍在使用它,也许是在不知不觉中。然而,有些 VPN 产品目前仍然指示用户将 NLTM 身份验证降级到最低安全级别。给出的原因是 NLTMv2 不能与 RADIUS 或 MS-CHAPv2 一起使用,但是其他 VPN 解决方案似乎可以在仍然使用 NTLMv2 的同时解决该问题。

将涵盖两种不同的攻击方法:

  • 认证降级->破解

  • LDAP 中继 -> 基于资源的约束委派 (RBCD)

当 LmCompatibilityLevel 注册表项设置为 0、1 或 2 时,可能会发生这些类型的攻击。这可以通过系统本身的注册表进行配置,也可以通过组策略强制执行。

针对NTLMv1的实用攻击

针对NTLMv1的实用攻击

攻击一:认证降级

我发现的第一个利用此问题的技术记录在Tim McGuffinNetNTLMtoSilverTicket Github 存储库中。在自述文件中,它记录了执行此攻击的几个步骤:

  • 配置响应程序以设置静态质询降级身份验证

  • 强制系统进行身份验证

  • 破解传入的哈希值

  • Sliver Ticket 和/或 DCSync

自述文件使用SpoolSampleDementor通过滥用 Print Spooler 服务来强制进行身份验证。尽管一些组织现在选择禁用打印假脱机服务,但这种强制技术仍然非常重要。许多其他强制身份验证的方法已经在Petit PotamDFSCoerceCoercer等工具中被发现并实现。

下面是完整攻击的演示:

首先,您想要配置响应者以使用静态质询。默认情况下,这设置为随机。为了能够使用彩虹表破解后续哈希,挑战应设置为1122334455667788。

针对NTLMv1的实用攻击

运行 Responder 时,您将需要使用类似于以下内容的命令:

Responder.py -I [接口] --lm

–lm 标志将允许您使用裂纹.sh的彩虹表几乎立即破解哈希值。如果这不起作用,您可以随时尝试 –disable-ess 标志。如果您无法删除 SSP,则将不再可能使用裂纹。sh 的彩虹表进行破解,尽管在使用 ntlmv1-multi 重新格式化后仍然可以使用 Hashcat 枚举它,或者使用assless chaps依赖于 pre - NT 哈希值的计算数据库。

为了进一步了解每种 NTLM 哈希类型的格式,我建议观看EvilMog的演讲– Anatomy of NTLMv1/NTLMv1-SSP

下一步是以您认为合适的任何方式强制进行身份验证。大多数这些技术至少需要某种级别的身份验证,但是如果尚未应用安全更新,Petit Potam 将在未经身份验证的情况下工作。每个工具都有自己的语法,通常需要一组有效的域凭据以及侦听器和目标的 IP。

针对NTLMv1的实用攻击

针对NTLMv1的实用攻击

一旦破解,您将恢复被强制的计算机帐户的 NT 哈希值。然后,该哈希值可用于制作银票,然后可用于获得对系统的管理访问权限。如果主机是域控制器,则可以直接通过 PtH 将其用于 DCSync,而无需模拟任何其他帐户。

针对NTLMv1的实用攻击

如果您想使用 Silver Ticket 路线,NetNTLMtoSilverTicket Github 存储库中对此进行了记录。我还推荐这篇博文,其中更详细地介绍了如何配置 Silver Ticket。

ticketer.py -nthash [DC HASH] -domain-sid [DOMAIN SID] -domain [DOMAIN] -spn cifs/[DC HOST NAME] -user-id [USER ID] -groups [DOMAIN GROUP ID] [USERNAME]br

针对NTLMv1的实用攻击

当然,您需要域的 SID 以及用户和组 ID。您可能想要制作模拟现有域管理员的票证。我通常从ldapdomaindump或BloodHound数据中获取这些值。您可以通过使用 LM:NT 格式的破解 NT 哈希来使用哈希传递身份验证。

针对NTLMv1的实用攻击

有时,crack.sh 会崩溃,因此破解哈希值并不是最佳选择,或者只是需要太长时间。虽然这种技术是最著名的,但还有一种同样有效的技术,根本不需要任何破解。

攻击2:LDAP中继

这通常会阻止通过PrinterBug或Petit Potam强制进行的身份验证被中继。由于 NTLM 包含用于完整 NTLM 协商的消息完整性代码 (MIC),因此无法在传输过程中删除签名。

NTLMv1 提供了一个例外,因为 NTLMv1 不支持计算 MIC。使用 Impacket 的ntlmrelayx .py,可以指定 –remove-mic 标志。这最初是为了利用 CVE-2019-1040,也称为“删除 MIC”。

利用 NTLMv1 的方式几乎与CVE-2019-1040完全相同。

攻击链如下所示:

  • 设置 ntlmrelayx.py 以剥离 MIC,同时执行 RBCD 攻击

  • 强制认证

  • 为模拟用户制作服务票证

  • 直流同步

与上次攻击相比,此攻击有更多先决条件:它需要至少两个域控制器在之间进行中继,并要求它们至少处于 Windows Server 2012 功能级别才能使 RBCD 攻击发挥作用。

首先,ntlmrelayx.py 设置为中继到其中一个域控制器:

ntlmrelayx.py -t ldaps://[DOMAIN CONTROLLER] --remove-mic -smb2support --delegate-accessbr

然后触发强制身份验证,目标是第二个域控制器。

针对NTLMv1的实用攻击

然后,身份验证将中继到 LDAP,后者创建一个计算机帐户,并通过将新计算机帐户的 SID 添加到域控制器的 msDS-AllowedToActOnBehalfOfOtherIdentity 属性来修改目标域控制器上的委派权限。

针对NTLMv1的实用攻击

一旦完成,就可以执行基于资源的约束委托攻击。

然后可以模拟域管理员来创建服务票证。

getST.py -spn cifs/[RELAYED DC] -impersonate [DOMAIN ADMIN] [CREATED COMPUTER]':[PASSWORD]

针对NTLMv1的实用攻击

创建此票证后,就可以执行两种攻击来从域控制器恢复 NT 哈希值:

  • 以管理员身份在系统上获取命令 shell,并使用ntdsutil等工具恢复 NTDS.dit 数据库[](https://www.trustedsec.com/blog/manipulating-user-passwords-without-mimikatz/)

  • 对域控制器执行 DCSync 攻击以通过网络提取 NT 哈希值

针对NTLMv1的实用攻击

针对NTLMv1的实用攻击

此外,该 RBCD 可以通过影子凭证攻击进行交换。

原文始发于微信公众号(网络安全交流圈):针对NTLMv1的实用攻击

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月21日23:00:40
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   针对NTLMv1的实用攻击http://cn-sec.com/archives/1865645.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息