使用双重身份验证停止传递哈希

信息安全 验证 视窗 多因素
2021-08-13 22:59:55

我正在研究对 Active Directory 中的 Pass+the-Hash 和 Pass-the-Ticket 的缓解措施,这也可以提高整体网络安全性。已经整理了许多双重身份验证选项中的一些以提高用户登录的安全性,但刚刚发现在标准的 AD 处事方式下,双重身份验证仍然使用 Kerberos 或 NTLM。因此,通过散列或通过票证攻击仍然对域有效。我读过的东西似乎说只有“交互式”登录才不会受到这种攻击。

我如何才能对 AD 用户登录采用双因素身份验证,而不是像密码一样容易受到散列/票证的影响?就其重要性而言,我指的是使用 Windows Server 2008 R2 和 Server 2012 的环境。

2个回答

Matt Weeks 在他的 Credential Assessment Mapping Privilege Escalation at Scale演讲中讨论了许多防止 PtH、PtT 和 PtK (OPtH) 的技术。

从 41:50 到 48:52,他经历了许多预防角度和陷阱——https://youtu.be/_XXs8pRnqSQ?t= 41m50s

我最喜欢的建议是每周轮换 KRBTGT,如果你可以使用智能卡,那么每天轮换用户哈希。他还谈到了一个通用的 PtH 控件,它可以阻止入站 NTLM 到域。

DFIR 博客有一个关于许多其他检测和缓解措施的优秀的三部分系列——

  1. http://dfir-blog.com/2015/11/08/protecting-windows-networks-defeating-pass-the-hash/
  2. http://dfir-blog.com/2015/11/24/protecting-windows-networks-dealing-with-credential-theft/
  3. http://dfir-blog.com/2015/12/13/protecting-windows-networks-kerberos-attacks/

至于双重身份验证和一次性密码方案,我认为 FIDO(例如 YubiKey)或竞争系统不会阻止上述任何建议——它只会增加他们的控制强度并提供操作剩余降低风险。

无法使用 2FA 来缓解 p2H(被盗的 kerberos 凭据):

  1. Windows AD 网络中有两种类型的凭据:Kerberos 令牌/哈希和明文登录名/密码。
  2. Kerberos 是一种单因素身份验证协议 - 它验证密码哈希或 PKI 证书,但不能同时验证两者。不存在保护被盗 Kerberos 凭据的 2FA 方法。(2FA 需要用户迭代,这与 SSO 原则相矛盾 - 初始登录后没有用户迭代)。您需要实施安全治理计划 - 一组缓解 PtH 的措施。
  3. 被盗/泄露的登录名/密码通过 MS(仅 OTP,需要 CA)或允许使用和组合各种 2FA 手段的一组 3rd 方使用 2FA 方法进行保护。