当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 金票攻击解释以及如何防御 - Microsoft 平台管理 - 博客 - Quest Community

作者:精品下载站 日期:2024-12-14 08:21:01 浏览:15 分类:玩电脑

金票攻击解释以及如何防御 - Microsoft 平台管理 - 博客 - Quest Community


[玩转系统] 金票攻击解释以及如何防御 - Microsoft 平台管理 - 博客 - Quest Community

“金票攻击”是一个特别丰富多彩(请原谅我用双关语)的名字,用来形容特别危险的攻击。这个绰号来自罗尔德·达尔 (Roald Dahl) 的书《查理和巧克力工厂》(Charlie and the Chocolate Factory),其中一张金票是令人垂涎的通行证,可以让主人进入威利·旺卡 (Willy Wonka) 戒备森严的糖果工厂。同样,成功的金票攻击使黑客能够访问组织的整个 Active Directory 域。

然而,这个类比在一个重要方面是不成立的:虽然查理和其他持有金票的孩子(大部分)在密切监督下在糖果工厂周围被护送,但成功的金票攻击使黑客几乎不受限制地访问您域中的所有内容,包括所有计算机、文件、文件夹和域控制器 (DC)。他们可以冒充任何人并做任何事情。

让我们看看这种强大的攻击如何展开,以及您可以采取哪些措施来保护您的组织。

金票攻击如何运作

Golden Ticket 攻击利用了 Kerberos 身份验证协议中的漏洞,自 Windows 2000 以来 Microsoft 一直将其用作默认身份验证协议。

Kerberos 身份验证通常如何工作

使用 Kerberos,用户永远不会直接向他们需要使用的各种服务(例如文件服务器)验证自己的身份。相反,Kerberos 密钥分发中心 (KDC) 充当受信任的第三方身份验证服务。 Active Directory 域中的每个域控制器都运行 KDC 服务。

具体来说,当用户进行身份验证时,KDC 会颁发票证授予票证 (TGT),其中包括唯一的会话密钥和指定该会话有效时间的时间戳 (通常为 8 或 10 小时)。当用户需要访问资源时,无需重新进行身份验证;他们的客户端计算机只是发送 TGT 来证明用户最近已经通过了身份验证。

重要的是,在发送 TGT 之前,KDC 使用特殊帐户(KRBTGT 帐户)的密码哈希对其进行加密。该密码哈希在 Active Directory 域中的所有 DC 之间共享,以便它们可以读取当用户请求访问各种资源时,他们收到的 TGT。

(散列是一种单向算法,它以数学方式将给定的密码转换为不同的字符串。它始终是相同的字符串,因此两台计算机可以分别对密码进行散列并比较结果;如果它们匹配,则它们同意它们都是从相同的字符串开始的密码,而不必直接以纯文本形式共享该密码。几乎不可能直接将哈希密码转回原始密码;但是,黑客可以使用暴力方法 - 生成数百万个可能密码的哈希值希望找到一个匹配的。)

简而言之,Kerberos 身份验证(Active Directory 中的默认身份验证协议)建立在以下假设之上:使用 KRBTGT 密码哈希加密的任何 TGT 都是合法的。

黑客如何破坏这个过程

在金票攻击中,黑客绕过 KDC 并自行创建 TGT 来访问各种资源。要伪造 TGT,黑客需要四个关键信息:

  • 域的 FQDN(完全限定域名)
  • 域的 SID(安全标识符)
  • 他们想要模拟的帐户的用户名
  • KRBTGT 密码哈希

前三个相对容易获得,只需破坏域中的任何用户帐户即可。为此,黑客可以使用多种策略。流行的攻击包括网络钓鱼、间谍软件、暴力破解和撞库。

第四项也很重要:为了使票证对域控制器来说显得合法,攻击者必须使用 KRBTGT 密码哈希对其进行加密。这对于黑客来说更难获得,因此技术更加复杂——但仍然不是那么困难。他们包括:

  • 窃取 NTDS.DIT 文件 - NTDS.DIT 文件是一个存储 Active Directory 数据的数据库,其中包括域中所有用户的密码哈希值。该文件的副本存储在每个域控制器上,默认情况下位于 C:\Windows\NTDS\。获得此文件的人可以花费所有时间离线破解这些密码(在无法检测到这些密码的情况下),然后使用凭据充当域中的任何用户,包括域管理员。
  • 危害工作站 - 许多攻击都是从攻击者在用户工作站或其他端点上获得立足点开始的。如果用户拥有计算机的管理员权限,或者管理员在过去的某个时刻登录过该计算机,则内存或磁盘驱动器上可能会存在来自管理员密码的凭证。
  • 使用 Mimikatz - Mimikatz 让从 Windows 系统收集凭据数据变得简单。它是渗透测试人员和黑客最喜欢的工具,很容易获得;官方版本直接在 GitHub 上维护和托管。
  • 运行 DCSync 攻击 - Active Directory 环境通常包括多个域控制器,它们必须通过相互更新更改(例如用户凭据的更新)来保持同步。此外,某些应用程序(包括 Azure Active Directory Connect)需要复制权限。在 DCSync 攻击中,获得具有域复制权限的特权帐户访问权限的黑客通过冒充 DC 并向合法 DC 请求密码哈希来破坏此 AD 功能。 DCSync 是 Mimikatz 工具的一项功能。

不管它是如何获得的,KRBTGT 密码哈希就像威利·旺卡 (Willy Wonka) 的金票。有了它,黑客就可以创建 Kerberos 票证来模拟他们想要的任何 AD 用户,包括特权管理员。此外,他们可以根据需要使这些票据有效,即使这违反了组织的时间限制策略设置。这赋予了他们在该领域几乎无限的权力。

防御金票攻击

没有办法完全防止金票攻击,但有多种最佳实践可以显着降低您的风险。以下是我推荐的最热门的。

定期更改 KRBTGT 密码 - 在特殊情况下也是如此。

针对金票攻击的首要防御策略是定期更改 KRBTGT 密码。这并不能阻止黑客创建金票,但它会使您系统中已有的任何金票失效。 Microsoft 建议“定期”更新 KRBTGT 帐户的密码,而 STIG 特别建议每 180 天更改一次。

除了这些计划的更新之外,我强烈建议每次有能力创建金票的人离开组织时更改密码。即使您立即删除他们的特权帐户,他们也可能留下了 TGT,他们仍然可以使用这些 TGT 对您的环境造成严重破坏;重置 KRBTGT 密码将使所有此类票据无效。最后,不用说,如果您在 IT 环境中发现任何金票攻击的证据,您需要立即更改 KRBTGT 密码。

请注意,KRBTGT 帐户的密码历史记录值为 2,这意味着它包括最近的两个密码。因此,要使系统中当前所有TGT失效,需要重置密码两次。 Microsoft 详细介绍了手动更改 KRBTGT 密码的步骤,但通常最好使用 Microsoft 的 KRBTGT 密码重置脚本 - 它将更改密码一次,等待确保复制已完全完成到所有域控制器,然后然后再次更改密码。

重要提示:请注意,更改 KRBTGT 密码将影响几乎所有后续 Kerberos 操作。特别是,所有已发行的TGT都将失效,因为它们是用旧密码加密的。但是,在需要服务票证重新进行身份验证之前,与资源(例如文件共享、SharePoint 站点或 Exchange 服务器)建立的所有经过身份验证的会话都是有效的。 Microsoft 建议重新启动计算机是恢复功能的唯一可靠方法,因为这将迫使计算机帐户和用户帐户再次登录,从而确保它们获得使用新 KRBTGT 密码哈希加密的新 TGT。

要重置密码,您必须是 Domain Admins 组和本地 Administrators 组的成员,或者已被委派适当的权限。

最大限度地减少可以访问 KRBTGT 密码哈希的帐户数量。

最小权限是安全的基石,尤其是当涉及到您最有价值的 IT 资产时 — KRBTGT 密码哈希绝对符合要求,因为它是金票攻击成功的关键。确保您确切知道哪些帐户可以执行 DCSync 命令。默认情况下,这包括内置\管理员组和内置\域控制器;此外,用于 Azure AD Connect 的帐户通常也有权执行 DCSync 命令。确保您只有绝对最少数量的域管理员以及向 DC 提供登录权限的其他组的成员,例如打印和服务器操作员。如果您发现任何其他帐户有权访问此关键数据,请立即调查并删除任何不必要的权限。

最大限度地减少黑客窃取特权凭证的机会。

不要授予最终用户工作站的管理员权限,也不要让管理员登录最终用户计算机。这样,成功在端点上站稳脚跟的攻击者就不会在那里找到任何特权凭证来获取并在金票攻击中使用。

此外,定期更改服务帐户密码,并确保选择相对较长的密码,以阻止密码猜测和其他暴力攻击。另一个技巧是设置一个警报,每当创建或修改服务主体名称 (SPN) 时都会通知安全团队,以便他们可以检查是否遵循了所有相关策略。当然,只要有可能,请将常规服务帐户替换为可提供自动密码管理的群组托管服务帐户。

监控您的 IT 环境中是否存在可疑活动。

虽然加强安全态势始终是明智的策略,但您需要假设您的环境将被破坏。因此,必须留意异常活动,这些活动可能是金票攻击正在进行的迹象。需要监控或收到警报的项目包括以下内容:

  • 具有较长生命周期的 TGT — 任何超过域策略最长票据生命周期的 Kerberos 票据都是攻击者利用黄金票据漏洞的明显迹象。如果发现,请立即调查,如有必要,重置 KRBTGT 密码并查明攻击是如何成功的。
  • 异常域复制活动 - 异常域复制活动可能表明有人正在使用 DCSync 或其他技术窃取密码哈希值。如果您能够快速发现、调查并响应此活动,则可以防止黑客成功完成金票攻击。
  • 域控制器活动 - 密切关注域控制器上正在运行哪些可执行文件和哪些脚本(尤其是 PowerShell 脚本)。
  • 权限更改 - 特别是,如果突然启用调试权限,请立即调查。

不幸的是,本机 Windows 事件日志不包括 TGT 时间戳,在事件海洋中找出可疑的真实活动可能是一个真正的挑战。考虑投资第三方 Active Directory 监控解决方案,该解决方案可以提供您所需的清晰、详细的报告,以发现表明金票攻击的活动。

设置诱饵。

最后,清除金票攻击的另一种策略是在 Active Directory 中创建蜜罐对象,例如蜜罐用户帐户。确保它很突出,给它一个诱人的用户名,并给它一些有趣的组的成员资格。请务必为其指定世界上最长的密码,然后扔掉该密码。然后注意使用该帐户登录的尝试 - 您可能会惊讶地发现有多少次尝试。

结论

金票攻击有一个有趣的名字,但它们对每个 Active Directory 环境都是严重威胁。请务必严格遵循经过验证的最佳实践(例如最小权限)来增强您的安全状况,但不要认为这会保证您的安全。您还需要积极监控整个 IT 生态系统中发生的情况,尤其是任何表明有人试图窃取成功的金票攻击关键部分的活动:KRBTGT 密码哈希。

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯