Netwrix 1Secure 提供跨数据和身份的统一可见性——免费试用14天,享有完全访问权限。开始免费试用

资源中心博客

使用 Golden Ticket 攻击实现完全域入侵

使用 Golden Ticket 攻击实现完全域入侵

Mar 17, 2023

博客文章系列介绍攻击者可用于查找并攻破 Active Directory 服务账户的技术。首先,我们详细说明了他们如何使用 LDAP 侦察;随后我们揭示了他们如何使用 Kerberoasting 提取账户密码;然后我们解释了如何通过 使用 Silver Tickets 提升账户的 权限,从而启用更多访问与活动。

精心挑选的相关内容:

在这篇最终帖子中,我们将探讨任何 Active Directory 环境中最强大的服务账号:KRBTGT 账号。它用于签发访问 IT 系统和数据所需的 Kerberos 票据。通过从 Key Distribution Center(KDC)获取该账号的密码哈希,攻击者就能够攻陷 Active Directory 中的每一个账号,从而获得对任何连接到 AD 网络的系统几乎不可察觉且不受限制的访问权限。

AD 中的 KRBTGT 账号是什么?

Image

Windows Active Directory 域 控制器负责处理 Kerberos 票据请求。该请求用于对用户进行身份验证,并授予其访问计算机和应用程序的权限。KRBTGT 账号的密码用于对 Kerberos 票据进行加密和解密。该密码很少更改,并且账号名称在每个域中都相同,因此也是攻击者的常见目标。

创建黄金票据(Golden Tickets)

使用 Mimikatz,就可以利用 KRBTGT 账号的密码来创建伪造的 Kerberos Ticket Granting Tickets(TGTs)。这些 TGT 可用于为域内任意计算机上的任意服务请求 Ticket Granting Server(TGS)票据。

要创建 Kerberos Golden Tickets,攻击者需要以下信息:

  • KRBTGT 账户密码哈希值
  • KRBTGT 账户所属域的名称及 SID

下面我们一步一步看看如何收集这些信息,并为 Kerberos 创建 Golden Tickets。

步骤 1. 获取 KRBTGT 密码哈希以及域名和 SID。

获取 KRBTGT 密码哈希是攻击中最困难的环节,因为这需要获得对域控制器的特权访问。一旦对手能够以交互方式或远程方式登录到 DC,就可以使用 Mimikatz 使用以下命令提取所需信息:

      privilege::debug
lsadump::lsa /inject /name:krbtgt
      

这将输出密码哈希,以及域名和 SID:

Golden Ticket_KRBTGT password hash

步骤 2:创建 Golden Tickets。

现在,黑客可以随意创建 Golden Tickets。用于创建 Golden Tickets 的有用 Mimikatz 参数包括:

  • User— 将创建票据的用户帐户名称。请注意:这可以是有效的帐户名,但不必如此。
  • ID— 攻击者将要冒充的账户的 RID。 这可能是真实的账户 ID,例如 500 的默认管理员 ID,也可能是一个伪造的 ID。
  • — 该票据中的账户将属于的组列表。默认包含 Domain Admins,因此该票据会以最高权限创建。
  • SID— 这会将一个 SID 插入到票据中账户的 SIDHistory 属性中。这样有助于跨域进行身份验证。

下面的示例为假用户创建一张票据,但提供的是默认管理员 ID。稍后我们将看到,当使用该票据时,这些值会如何发挥作用。/ptt (Pass the Ticket)触发器会将正在创建的 Golden Ticket 注入到当前会话中。

Golden Ticket_ticket

第 3 步:传递票据。

现在轮到使用已加载到当前会话中的 Golden Ticket 了。让我们使用下面的 misc::cmd 命令,在该票据的上下文中启动一个命令提示符。

Golden Ticket_pass the ticket

从命令提示符可以看到,攻击者以普通的域用户身份运行,并且不属于任何域组成员。这意味着他们不应该对任何其他域计算机拥有权限。

Golden Ticket_ticket2

但是,由于 Kerberos 票据位于内存中,攻击者可以连接到域控制器,并访问其中存储的所有文件。

Golden Ticket_domain controller

使用 PSExec 后,攻击者可以在目标域控制器上打开一个会话;根据该会话的信息,此时他们已作为 Administrator 登录。

Golden Ticket_event

由于攻击者在生成 Golden Ticket 时使用了 RID 500,系统认为攻击者是 Administrator。域控制器上的事件日志也显示系统认为攻击者是 Administrator,但凭据是 Golden Ticket 攻击期间被伪造(spoof)的那一组信息。对于希望规避检测或创建具有欺骗性的安全日志的攻击者而言,这一点尤其有用。

防范 Golden Ticket 攻击

Active Directory Golden Ticket 攻击非常难以检测,因为 Golden Ticket 看起来就像完全有效的 TGT。然而在大多数情况下,它们的有效期被设置为 10 年或更长,这远远超过 Active Directory 中票据时长的默认值。尽管 TGT 时间戳不会记录在 Kerberos 身份验证日志中,但合适的 Active Directory 安全解决方案 能够对其进行监控。如果您确实发现组织内部正在使用 Golden Ticket,必须将 KRBTGT 帐户重置两次;这样做可能带来深远影响,因此请谨慎操作。

防范 Golden Ticket 的最重要措施是限制对域控制器的登录权限。应当将域管理员的数量控制在绝对最少的范围内,并且同样需要尽可能减少其他提供对 DC 登录权限的组成员,例如 Print Operators 和 Server Operators。此外,还应使用分层的登录协议,防止域管理员登录到服务器和工作站:在这些设备上,他们的密码哈希可能会从内存中被转储,并用于访问 DC,从而提取 KRBTGT 帐户的哈希。

分享到

了解更多

关于作者

Jeff Warren

首席产品官

Jeff Warren 负责监督 Netwrix 的产品组合,在安全领域的产品管理与开发方面拥有十多年的经验。在加入 Netwrix 之前,Jeff 曾在 Stealthbits Technologies 领导产品团队;他运用自己作为软件工程师的经验,开发创新且面向企业规模的安全解决方案。凭借亲力亲为的工作方式以及解决棘手安全挑战的能力,Jeff 致力于打造真正可落地、行之有效的实用解决方案。他拥有特拉华大学(University of Delaware)的信息系统(Information Systems)学士学位。