深入解析Windows Kerberos权限提升漏洞CVE-2014-6324

本文详细分析了Windows Kerberos实现中的权限提升漏洞CVE-2014-6324,包括漏洞原理、影响范围、检测方法和修复建议。攻击者可通过伪造PAC提升至域管理员权限,微软建议立即为域控制器安装MS14-068更新。

关于CVE-2014-6324的补充信息

今天微软发布了更新MS14-068,用于修复CVE-2014-6324——一个Windows Kerberos实现中的权限提升漏洞,该漏洞已在有限的定向攻击中被利用。本文旨在提供有关该漏洞的详细信息、更新优先级以及防御者的检测指南。微软建议客户尽快将此更新应用到其域控制器上。

漏洞详情

CVE-2014-6324允许在运行Windows域控制器的域中进行远程权限提升。拥有任何域用户凭据的攻击者可以将其权限提升到域中任何其他帐户(包括域管理员帐户)的级别。

在野外发现的漏洞利用针对运行Windows Server 2008R2及以下版本的域控制器中的易受攻击代码路径。微软已确定运行2012及更高版本的域控制器容易受到相关攻击,但利用难度显著增加。运行所有Windows版本的非域控制器正在接收“深度防御”更新,但不受此问题影响。

在讨论具体漏洞之前,有必要基本了解Kerberos的工作原理。

上图未说明的一点是,TGT(票据授予票据)和服务票据都包含一个称为PAC(特权属性证书)的数据块。PAC包含(除其他外):

  • 用户的域SID
  • 用户所属的安全组

当用户首次向KDC(密钥分发中心)请求TGT时,KDC会将包含用户安全信息的PAC放入TGT中。KDC对PAC进行签名以防止篡改。当用户请求服务票据时,他们使用TGT向KDC进行身份验证。KDC验证TGT中包含的PAC的签名,并将PAC复制到正在创建的服务票据中。

当用户向服务进行身份验证时,服务验证PAC的签名,并使用PAC中的数据为用户创建登录令牌。例如,如果PAC具有有效签名并表明“Sue”是“Domain Admins”安全组的成员,则为“Sue”创建的登录令牌将是“Domain Admins”组的成员。

CVE-2014-6324修复了Windows Kerberos验证Kerberos票据中PAC的方式问题。在更新之前,攻击者可能伪造一个Kerberos KDC会错误验证的PAC。这使得攻击者能够远程将其权限从无特权的认证用户提升到域管理员。

更新优先级

  • 运行Windows Server 2008R2及以下版本的域控制器
  • 运行Windows Server 2012及更高版本的域控制器
  • 运行任何Windows版本的所有其他系统

检测指南

当前从其域控制器收集事件日志的公司可能能够在更新前检测到利用迹象。请注意,此日志记录仅能捕获已知的漏洞利用;存在已知的方法可以编写绕过此日志记录的漏洞利用。

在此日志条目中需要注意的关键信息是“安全ID”和“帐户名称”字段不匹配,尽管它们应该匹配。在上面的屏幕截图中,用户帐户“nonadmin”使用此漏洞利用将权限提升到“TESTLAB\Administrator”。

安装更新后,对于Windows 2008R2及更高版本,可以使用4769 Kerberos服务票据操作事件日志来检测试图利用此漏洞的攻击者。这是一个高容量事件,因此建议仅记录失败(这将显著减少生成的事件数量)。

安装更新后,利用尝试将导致记录“失败代码”为“0xf”。请注意,此错误代码也可能在其他极罕见的情况下记录。因此,虽然有可能在非恶意场景中生成此事件日志,但利用尝试是事件原因的概率很高。

修复

唯一能够以高度确定性修复域泄露的方法是完全重建域。在域控制器上具有管理权限的攻击者可以对系统进行几乎无限数量的更改,这些更改可以使攻击者在安装更新后长期保持其访问权限。因此,立即安装更新至关重要。

附加说明

Azure Active Directory未通过任何外部接口公开Kerberos,因此不受此漏洞影响。

Joe Bialek, MSRC Engineering

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计