标原创只是为了让我的谷歌翻译能够在这世间流传久一点,没有任何其他意思。
全程google翻译,我太菜看不懂,大佬自取链接看吧,点击阅读原文也可以,路过顺便点一下广告吧爱你们
https://dirkjanm.io/worst-of-both-worlds-ntlm-relaying-and-kerberos-delegation/
在我上个月关于无约束授权(https://dirkjanm.io/krbrelayx-unconstrained-delegation-abuse-toolkit/)的深入发布之后,这篇文章将讨论一种不同类型的Kerberos委派:基于资源的约束委派。
本文中的内容基于Elad Shamir的Kerberos研究(https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html),并结合我自己的NTLM研究,提出了一种攻击,如果您在同一网段,可以在没有任何凭据的情况下在Active Directory中的任何Windows计算机上将代码执行为SYSTEM。这是不安全的Active Directory默认滥用的另一个示例,而不是任何类型的新漏洞。
攻击TL; DR
如果攻击者在本地网络上,无论是物理上(通过丢弃设备)还是通过受感染的工作站,都可以使用mitm6执行DNS接管,前提是IPv6尚未在网络中使用。执行此攻击时,还可以通过欺骗WPAD位置并请求身份验证来使用我们的欺诈代理,使计算机帐户和用户通过HTTP对我们进行身份验证。这个攻击在去年关于这个主题的博客文章中有详细描述。
我们可以使用ntlmrelayx将此NTLM身份验证中继到LDAP(除非应用缓解)并将其作为受害者计算机帐户进行身份验证。计算机帐户可以通过LDAP修改它们自己的一些属性,其中包括msDS-AllowedToActOnBehalfOfOtherIdentity属性。
此属性通过使用Kerberos进行模拟,控制哪些用户可以像在AD中的任何帐户一样向计算机进行身份验证。这个概念称为基于资源的约束委托,由Elad Shamir和harmj0y详细描述。
因此,当我们转发计算机帐户时,我们可以修改Active Directory中的帐户,并允许自己模拟该计算机上的用户。然后,我们可以使用高权限用户连接到计算机并执行代码,转储哈希等。此攻击的优点在于它默认工作,不需要任何AD凭据即可执行。
没有凭据,没问题
如果您已经阅读了Elad的博客,您可能已经注意到需要对计算机帐户(或具有服务主体名称的任何其他帐户)进行控制才能执行S4U2Proxy攻击。默认情况下,Active Directory中的任何用户最多可以创建10个计算机帐户。有趣的是,这不仅限于用户帐户,也可以通过现有的计算机帐户来完成!如果我们可以让任何用户或计算机连接到我们的NTLM中继,我们可以使用ntlmrelayx创建一个计算机帐户:
此处需要通过TLS中继到LDAP,因为不允许通过未加密的连接创建帐户。这些计算机帐户凭据可用于AD中的各种事物,例如查询域信息甚至运行BloodHound:
中继和配置委派
让我们进行全面攻击。首先,我们开始mitm6接管目标上的DNS,在这种情况下ICORP-W10(完全修补的默认Windows 10安装),我将攻击限制在此主机:
sudo mitm6 -hw icorp-w10 -d internal.corp --ignore-nofqnd
现在,主机可能需要一段时间才能通过DHCPv6请求IPv6地址,或者开始请求WPAD配置。你最好的机会是受害者重新启动或重新插入他们的网络电缆,所以如果你是长期任务,清晨可能是进行这种攻击的最佳时间。在任何一种情况下,你都必须耐心(或者只是攻击更多的主机,但这也不那么安静)。在此期间,我们还使用--delegate-access参数启动ntlmrelayx 以启用委派攻击,并使用-wh attacker-wpad参数启用WPAD欺骗和身份验证请求:
ntlmrelayx.py -t ldaps://icorp-dc.internal.corp -wh attacker-wpad --delegate-access
一段时间之后mitm6应该显示我们的受害者连接到我们作为WPAD主机的DNS服务器我们设置:
我们看到ntlmrelayx接收连接,创建一个新的计算机帐户并授予它对受害计算机的委派权限:
接下来,我们可以使用getST.py从impacket,这将做所有的S4U2Self的S4U2Proxy魔我们。您需要从git获得最新版本的impacket以包含基于资源的委派支持。在此示例中,我们将模拟用户admin,该用户是该Domain Admins组的成员,因此具有以下管理访问权限ICORP-W10:
我们现在为用户获得了Kerberos服务票证,该票证admin有效cifs/icorp-w10.internal.corp。这只允许我们将此用户模拟到此特定主机,而不是模拟网络中的其他主机。使用此票证,我们可以在目标主机上执行任何操作,例如使用secretsdump转储哈希值:
攻击者现在可以完全控制受害者工作站。
其他滥用途径
本博客重点介绍了使用mitm6和WPAD完全没有凭据来执行中继攻击。通过HTTP与被视为Intranet ZoneWindows的一部分的主机的任何连接都可以在相同的事情中使用(提供自动内部网检测)。Elad的原始博客描述了使用WebDAV在主机上利用它。另一个攻击途径是(再次)PrivExchange,它使Exchange作为SYSTEM进行身份验证,除非安装了最新的补丁。
工具
ntlmrelayx的更新版本在impacket分支的分支中可用。一旦这个分支合并到主存储库,我将更新帖子。
缓解措施
由于此攻击由几个组件组成,因此可以应用多种缓解措施。
减轻mitm6
mitm6滥用Windows即使在仅IPv4环境中查询IPv6地址的事实。如果您不在内部使用IPv6,则防止mitm6的最安全方法是通过组策略阻止Windows防火墙中的DHCPv6流量和传入路由器通告。完全禁用IPv6可能会产生不必要的副作用。将以下预定义规则设置为“阻止”而不是“允许”可防止攻击工作:
(入站)核心网络 - IPv6动态主机配置协议(DHCPV6-In)
(入站)核心网络 - 路由器广告(ICMPv6-In)
(出站)核心网络 - IPv6的动态主机配置协议(DHCPV6-Out)
减轻WPAD滥用
如果WPAD未在内部使用,请通过组策略禁用它并禁用该WinHttpAutoProxySvc服务。原始mitm6博客中讨论了进一步的缓解和检测措施。
减轻对LDAP的中继
只能通过启用LDAP签名和LDAP通道绑定来缓解到LDAP和LDAPS的中继。
减少基于资源的委托滥用
这很难减轻,因为它是一个合法的Kerberos概念。通过将管理用户添加到Protected Users组或将其标记为可以减少攻击面Account is sensitive and cannot be delegated,这将阻止通过委派模拟该用户。此处提供了进一步的缓解和检测方法。
解决方法
https://shenaniganslabs.io/2019/01/28/Wagging-the-Dog.html
点一下好看就是赞赏,感谢你们