Kerberos 委派攻击原理之 S4U2 利用详解

本文深入探讨了Kerberos的S4U2Self和S4U2Proxy协议,解释了无约束和约束委派的区别,并展示了如何滥用这些机制进行攻击。文章详细阐述了四个不同的攻击场景,包括使用明文密码或NTLM哈希的情况,同时提供了保护措施以防止此类攻击。
摘要由CSDN通过智能技术生成

Kerberos 委派攻击原理之 S4U2 利用详解

为了更好地防止约束委派的滥用,请查看"从 Kekeo 到 Rubeus"文章中的"s4u"部分。

几周前,我和同事李 · 克里斯滕森(在他的帮助下我完成了这篇文章和相关材料)花了一些时间深入研究了活动目录的 S4U2Self 和 S4U2Proxy 协议扩展。 就在最近,本杰明 · 德尔皮 和 Ben Campbell在推特上就同一话题进行了一次有趣的公开对话。 对话的结果是本杰明发布了一个修改过的 Kekeo,使得滥用 S4U 错误配置更为容易。 在我写这篇文章的时候,Ben 还发表了一篇关于这个话题的优秀文章,每个人在继续阅读本文之前都应该读一读他的文章。 说真的,读者们真的应该先去看看 Ben 的文章。

在这里插入图片描述

李和我想写出我们对这项技术的理解,以及在交战中如何滥用任何错误配置。 其中一部分内容将与 Ben 的文章重叠,但是我们已经合并了一些不同的方面,我们认为至少可以增加一些价值。 Ben 还介绍了 Linux 方面的漏洞利用,我们在本文中不会涉及到这一点。

这个问题的核心是特权委派——允许一个用户在活动目录中假冒成另一个用户。 这种委派(当前)有两种形式: 无约束和有约束的委派。 如果你不关心技术细节,请直接跳到滥用 S4U 部分。

无约束委派

网络安全学习资料

假设你有一个服务器(或服务帐户) ,由于某种原因需要假冒为另一个用户。 一个常见的场景是,当用户使用 Kerberos 或其他协议向 Web 服务器进行身份验证时,服务器希望与 SQL 后端进行良好的集成。 活动目录提供了两种实现此目的的通用方法: 约束委派和无约束委派。

在 Windows 2000中,无约束委派曾经是唯一可用的选项,并且后来保留了这个功能(可能是出于向后兼容的原因)。 我们只简单介绍一下这种委派类型,因为 Sean Metcalf 有一篇很棒的文章深入介绍了这种委派类型。 在那篇文章中 Sean 说,"当 Kerberos 无约束委派在服务器上启用,服务器托管了在 TGS-REQ (步骤3)中引用的服务主体名称中指定的服务时,DC 域控制器将用户 TGT 的一个副本放到服务票证中。 当向服务器提供用户的服务票证(TGS)以进行服务访问时,服务器打开 TGS 并将用户的 TGT 放入 LSASS 中供后续使用。 此时,应用程序服务器就可以无限制地假冒该用户!” .

下面是来自微软官方对于该协议的图形概述:

在这里插入图片描述

Tl;dr: TGT 将被塞入内存,攻击者可以在以下情况下提取和重用 TGT :

你可以攻击具有无约束委派设置的服务器。

你可以欺骗未启用"帐户是敏感的,不能委派"设置的域用户(见下面的“保护措施”章节) ,以连接到计算机上的任何服务。 包括单击 \SERVER\Share。

这允许攻击者假冒该用户到域上的任何服务或计算机! 很明显这种情况比较糟糕。 相比之下,如果不启用无约束委派,则只会提交一个没有填充 TGT 的普通服务票证,这样攻击者就不会获得额外的横向扩展的优势。

如何判断哪些机器具有无约束委派设置? 这实际上非常简单: 搜索任何具有 userAccountControl 属性的机器,该属性包含 ADS_UF_TRUSTED_FOR_DELEGATION。 你可以使用 LDAP 过滤器‘(userAccountControl:1.2.840.113556.1.4.803:=524288)’,这是 PowerView 的 Get-DomainComputer 函数在传递 -Unconstrained 标志时所做的:

在这里插入图片描述

约束委派

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值