已更新 2022/7/12
摘要
CVE-2021-42287 解决影响 Kerberos 特权属性证书(PAC)并允许潜在攻击者模拟域控制器的安全绕过漏洞。 为了利用此漏洞,受损域帐户可能会导致密钥分发中心(KDC)创建特权级别高于受损帐户的服务票证。 它通过阻止 KDC 识别更高特权服务票证用于的帐户来实现此目的。
CVE-2021-42287 中改进的身份验证过程将原始请求者的新信息添加到 Kerberos Ticket-Granting Tickets (TGT)。 稍后,为帐户生成 Kerberos 服务票证时,新的身份验证过程将验证请求 TGT 的帐户是否与服务票证中引用的帐户相同。
在安装日期为 2021 年 11 月 9 日或更高版本的 Windows 更新后,PACs 将添加到所有域帐户的 TGT 中,即使是以前选择拒绝 PACs 的帐户。
采取操作
为保护您的所在环境并避免停机,请完成以下步骤:
-
安装 2021 年 11 月 9 日安全更新和 2021 年 11 月 14 日带外 (OOB) 更新即可更新托管 Active Directory 域控制器角色的所有设备。 在下面找到特定 OS 的 OOB KB 编号。
OS
知识库编号
Windows Server 2016
Windows Server 2019
Windows Server 2012 R2
Windows Server 2012
Windows Server 2008 R2 SP1
Windows Server 2008 SP2
-
在所有 Active Directory 域控制器上安装 2021 年 11 月 9 日安全更新和 2021 年 11 月 14 日 OOB 更新至少 7 天后,强烈建议在所有 Active Directory 域控制器上启用强制模式。
-
从 2022 年 10 月 11 日(已更新)强制阶段更新开始,必须执行强制模式,并在所有 Windows 域控制器上启用强制模式。
Windows 更新时间安排
这些 Windows 更新将分三个阶段发布:
-
初始部署 - 更新简介以及 PacRequestorEnforcement 注册表项
-
第二个部署 - 删除 PacRequestorEnforcement 值 0 (禁用注册表项)
-
实施阶段 - 已启用强制模式。 删除 PacRequestorEnforcement 注册表项
2021 年 11 月 9 日:初始部署阶段
初始部署阶段从 2021 年 11 月 9 日发布的 Windows 更新开始。 该版本:
-
添加对 CVE-2021-42287 的保护
-
添加了 对 PacRequestorEnforcement 注册表值的支持,允许提前过渡到实施阶段
缓解措施包括在承载域控制器角色和只读域控制器(RODC)的所有设备上安装Windows更新。
(更新时间)2022 年 7 月 12 日:第二个部署阶段
第二个部署阶段从 2022 年 7 月 12 日发布的 Windows 更新开始。 此阶段将删除 PacRequestorEnforcement 设置为 0。 安装此更新后,将 PacRequestorEnforcement 设置为 0 将具有与将 PacRequestorEnforcement 设置为 1 相同的效果。 域控制器(DC)将处于部署模式。
备注 如果在你的环境中 PacRequestorEnforcement 从未设置为 0,则不需要此阶段。 此阶段有助于确保将PacRequestorEnforcement设置为0的客户在实施阶段之前移动到设置1。
备注 此更新假定所有域控制器都使用 2021 年 11 月 9 日或更高版本的 Windows 更新进行更新。
(更新日期)2022 年 10 月 11 日:强制执行阶段
2022 年 10 月 11 日版本将所有 Active Directory 域控制器转换为强制执行阶段。 强制执行阶段还将完全删除 PacRequestorEnforcement 注册表项。 因此,已安装 2022 年 10 月 11 日更新的 Windows 域控制器将不再兼容:
-
未安装 2021 年 11 月 9 日或更高版本更新的域控制器。
-
已安装 2021 年 11 月 9 日或更高版本更新,但尚未安装 2022 年 7 月 12 日更新的域控制器以及 PacRequestorEnforcement 注册表值为 0 的域控制器。
但是,已安装 2022 年 10 月 11 日更新的 Windows 域控制器将与以下设备保持兼容:
-
已安装 2022 年 10 月 11 日或更高版本更新的 Windows 域控制器
-
已安装 2021 年 11 月9日或更高版本更新且 具有 PacRequestorEnforcement 值或 1 或 2 的开窗域控制器
注册表项信息
在 2021 年 11 月 9 日至 2022 年 6 月 14 日发布的 Windows 更新中安装 CVE-2021-42287 保护后,以下注册表项将可用:
注册表子项 |
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Kdc |
值 |
PacRequestorEnforcement |
数据类型 |
REG_DWORD |
数据 |
1:向使用 Active Directory 域控制器(已安装 2021 年 11 月 9 日或更高版本的更新)进行身份验证的用户添加新 PAC。 进行身份验证时,如果用户具有新的 PAC,则验证 PAC。 如果用户没有新的 PAC,则不执行进一步的操作。 此模式下的 Active Directory 域控制器在部署阶段。 2:向使用 Active Directory 域控制器(已安装2021年11月9日或更高版本的更新)进行身份验证的用户添加新 PAC。 进行身份验证时,如果用户具有新的 PAC,则验证 PAC。 如果用户没有新的 PAC,身份验证会 被拒绝。 此模式下的 Active Directory 域控制器目前为"强制"阶段。 0:禁用注册表项。 不建议这样做。 此模式下的Active Directory域控制器处于禁用阶段。 此值在 2022 年 7 月 12 日或更高版本更新后将不存在。 重要说明设置 0 与设置 2 不兼容。 如果在林中同时使用这两个设置,则可能会发生间歇性故障。 如果使用了设置 0 ,建议您将设置 0(禁用)转换为设置 1(部署)至少一周,然后再转换为设置 2(强制模式)。 |
默认为 |
1(未设置注册表项时) |
是否需要重启? |
否 |
审核事件
2021 年 11 月 9 日的 Windows 更新还将添加新的事件日志。
不带属性的 PAC
KDC 遇到不带 PAC 属性缓冲区的 TGT。 日志中的另一个 KDC 可能不包含更新或处于禁用模式。
事件日志 |
系统 |
事件类型 |
警告 |
事件源 |
Kdcsvc |
事件 ID |
35 |
事件文本 |
密钥分发中心 (KDC) 遇到了来自另一个 KDC (“<KDC Name>”) 的票证授予式票证,该 KDC 不包含 PAC 属性字段。 |
没有 PAC 的票证
KDC 遇到没有 PAC 的 TGT 或其他证据票证。 这可以防止 KDC 对票证强制执行安全检查。
事件日志 |
系统 |
事件类型 |
部署阶段中的警告 执行阶段出错 |
事件源 |
Kdcsvc |
事件 ID |
36 |
事件文本 |
密钥分发中心 (KDC) 在处理另一个票证的请求时遇到了不包含 PAC 的票证。 这阻止了安全检查的运行,并且可能会打开安全漏洞。 客户端:<Domain Name>\<User Name> 票证:<Service Name> |
没有请求者的票证
KDC 遇到没有 PAC 请求程序缓冲区的 TGT 或其他证据票证。 构建 PAC 的 KDC 可能不包含更新或处于禁用模式。
备注 有关事件 37 的重要信息,请参阅已知问题部分。
事件日志 |
系统 |
事件类型 |
部署阶段中的警告 执行阶段出错 |
事件源 |
Kdcsvc |
事件 ID |
37 |
事件文本 |
密钥分发中心 (KDC) 在处理另一个票证的请求时遇到一个票证,该票证未包含有关请求票证的帐户的信息。 这阻止了安全检查的运行,并且可能会打开安全漏洞。 票证 PAC 构建者:<KDC Name> 客户端:<Domain Name>\<Client Name> 票证:<Service Name> |
请求者不匹配
KDC 遇到 TGT 或其他证据票证,并且请求 TGT 或证据票证的帐户与生成服务票证的帐户不匹配。
事件日志 |
系统 |
事件类型 |
错误 |
事件源 |
Kdcsvc |
事件 ID |
38 |
事件文本 |
密钥分发中心 (KDC) 遇到一个票证,该票证包含有关请求票证的帐户的不一致信息。 这可能意味该账户在票证发出后已重命名,这可能是企图利用该票证的一部分。 票证 PAC 构建者:<Kdc Name> 客户端:<Domain Name>\<User Name> 票证:<Service Name> 从 Active Directory 请求帐户 SID:<SID> 从票证请求帐户 SID:<SID> |
已知问题
症状 |
解决方法 |
---|---|
在域控制器 (DC) 上安装 2021 年 11 月 9 日或之后发布的 Windows 更新后,一些客户可能会看到在某些密码设置或更改操作后记录了新的审核事件 ID 37,例如:
如果在安装 2021 年 11 月 9 日或之后发布的 Windows 更新一周后未看到事件 ID 37,并且 PacRequestorEnforcement 为 "1" 或 "2",则你的环境不受影响。 如果设置 PacRequestorEnforcement = 1,则会将事件 ID 37 记录为警告,但密码更改请求将成功并且不会影响用户。 如果设置 PacRequestorEnforcement = 2,密码更改请求将失败,并导致上述操作也会失败。 |
此问题已在以下更新中得到解决:
|
常见问题
问题 1 如果混合了已更新和未更新的 Active Directory 域控制器,会发生什么情况?
A1: 已更新和未更新但默认 PacRequestorEnforcement 注册表项值为 1 的域控制器组合彼此兼容。 但是,Microsoft 强烈建议不要在外界使用已更新或未更新的域控制器。
问题 2 如果混合了具有各种 PacRequestorEnforcement 值的 Active Directory 域控制器,会发生什么情况?
解答 2. 具有 PacRequestorEnforcement 值 0 和 1 的域控制器的混合体,彼此兼容。 具有 PacRequestorEnforcement 值 1 和 2 的域控制器的混合体,彼此兼容。 混合了PacRequestorEnforcement值为 0 和 2 的域控制器,彼此不兼容,可能会导致间歇性故障。 有关更多详细信息,请参阅“注册表项信息”部分。