如何在渗透测试面试中解释/Kerberos

admin 2024年4月29日16:13:55评论10 views字数 2373阅读7分54秒阅读模式

如何在渗透测试面试中解释/Kerberos

一 、 什么是 Kerberos?

Kerberos 是迄今为止最常用的身份验证协议。它的设计理念是使用票证来提供对网络资源的访问,允许这些票证通过不安全的网络传递以证明身份,同时减少某些窃听和重放攻击的途径。Kerberos 依赖于网络上存在的安全中央机构(密钥分发中心 (KDC)),该机构可以向请求主体颁发票证。主体是一个独特的实体,可以请求 Kerberos 票证来访问服务。当在Microsoft Windows Active Directory (AD) 域的上下文中考虑时,Kerberos 协议允许帐户(服务主体名称)向中央机构请求权限:同时托管 KDC 的域控制器 (DC)。

作为无状态协议,身份验证过程中的 Kerberos 事务不会在会话期间或会话结束后保留。虽然这在历史上确实比同期身份验证方法提高了安全性,但最近开发和现成的工具揭示了 Kerberos 无法验证其自身票证交换的根本漏洞。例如,Mimikatz是一种流行的工具,允许威胁行为者伪造 Kerberos 票证或重复使用窃取的凭据,以便在不被发现的情况下通过网络横向移动,从而升级权限,直到他们获得对文件或服务器的完全控制权。

二 、 Kerberos 身份验证的步骤

  1. 密码转换为NTLM 哈希,时间戳用哈希加密并作为身份验证票证 (TGT) 请求 (AS-Request) 中的身份验证器发送到 KDC。

  2. 域控制器( KDC) 检查用户信息并创建票证授予票证(TGT)。

  3. TGT 被加密、签名并交付给用户 (AS-Reply)。只有域中的Kerberos 服务 ( KRBTGT ) 可以打开和读取 TGT 数据。

  4. 用户在请求票证授予服务(TGS) 票证(TGS-Request)时向 DC 提供 TGT 。TGT 中的数据被有效复制以创建 TGS 票证。

  5. TGS 使用目标服务帐户的 NTLM 密码哈希进行加密并发送给用户 (TGS-Reply)。

  6. 用户连接到在适当端口上托管服务的服务器并提供 TGS。该服务使用其 NTLM 密码哈希打开 TGS 票证。

三、 Kerberos 与 NTLM

Kerberos 协议不是 Microsoft 的发明,但 Microsoft 在 Windows2000 中集成了他们的 Kerberos 版本,并且它现在正在取代 NT Lan Manager (NTLM),后者是一种质询-响应身份验证协议。

Kerberos 受益于更强大的加密,与 NTLM 相比,这提高了安全性。

四 、 Kerberos 攻击

Kerberos 攻击有多种不同类型,从侦查(SPN 扫描)到离线服务帐户密码破解(Kerberoast),再到持久性(银票和金票)。

以下是最流行的 AD Kerberos 攻击

  • SPN 扫描— 通过请求特定 SPN 类/类型的服务主体名称来查找服务

  • Silver Ticket — 伪造的 Kerberos TGS 服务票证

  • Golden Ticket — 伪造的 Kerberos TGT 身份验证票证

  • MS14–068 伪造 PAC 漏洞— 利用域控制器上的 Kerberos 漏洞

五、 Kerberos 身份验证过程和票据交换

要了解伪造 Kerberos 票据攻击,必须首先了解 Kerberos 票证的一般流程:

如何在渗透测试面试中解释/Kerberos

1) 主体向 DC 发送身份验证服务器请求(称为 AS_REQ)。
2) 如果身份验证成功,则 DC 向主体发回回复 (AS_REP)。此回复中包含一个票据,该票据授予主体请求访问网络资源的权限。该票据称为票据授予票证(TGT)。TGT 仅证明委托人已在网络上成功进行身份验证并提供对一项服务的访问 - 票据授予服务 (TGS)。
3) 当主体想要请求启用 Kerberos 的服务上的资源时,它首先必须请求票据以从 TGS 访问该特定资源。此 TGS 请求 (TGS_REQ) 被发送到托管在 DC 上的 TGS。
4) 然后,TGS 验证 TGT 并接受委托人已被授予对 TGS 请求中所请求资源的访问权限。如果一切正常,则 TGS 会向主体发送回复 (TGS_REP),其中包含一个称为会话密钥的密钥。会话密钥用于加密主体与其请求资源的服务之间的消息。
5) 一旦主体收到TGS_REP,它就可以向服务请求访问网络资源。这是通过向服务发出应用程序请求 (AP_REQ) 来完成的,该服务使用 TGS_REP 中提供的会话密钥进行保护。
6) 一旦服务收到AP_REQ,它就会通过解密来自主体的消息来验证请求是否有效。成功解密足以验证请求。如果一切正常,则服务允许访问所请求的资源并发送回复 (AP_REP)。

Kerberos 协议依赖于AD 域中每个 DC 上存储的共享秘密数据。该数据有时称为密钥材料,它能够以安全的方式生成票据。Microsoft Windows 系统上使用的任何主要帐户都将其票据存储在本地内存中。此外,DC 存储域的密钥材料。如果攻击者获得对此密钥材料的访问权限,则可以伪造 Kerberos 票据并获得对所有资源的访问权限。

六、 黄金票据

在任何 Windows 域中,都有一个主要帐户(名为 krbtgt),其密钥材料用于生成 TGT。如上所述,TGT 允许主体请求访问域上的资源。按照惯例,域管理员帐户可以访问整个域上的任何资源。因此,如果攻击者能够访问 krbtgt 密钥材料,那么他们就可以为域管理员帐户(或任何其他帐户)伪造自己的 TGT。这种伪造的 TGT 称为金票 (GT)。参考上面的交换,前两个步骤(AS_REQ 和 AS_REP)在 GT 攻击期间永远不会发生。攻击者只是通过使用伪造的 TGT 来请求访问域管理员身份的资源。

七、 银票据

银票据是伪造的 Kerberos 票据授予服务 (TGS) 票据,也称为服务票据。黄金票据提供对任何 Kerberos 服务的访问,而银票据仅允许访问目标服务器上的特定服务。然而,无需与 DC 进行可疑交互即可生成银票攻击,DC 通常是为检测凭证泄露而监控的唯一数据源。这使得这些类型的攻击更不可能被检测到,因此在许多安全分析师看来更加危险。

原文始发于微信公众号(Ots安全):如何在渗透测试面试中解释/Kerberos

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月29日16:13:55
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   如何在渗透测试面试中解释/Kerberoshttp://cn-sec.com/archives/2698329.html

发表评论

匿名网友 填写信息