Azure AD Connect权限提升漏洞深度解析与修复指南

本文详细分析了Azure AD Connect密码写回功能因配置不当可能导致的权限提升漏洞,该漏洞可使恶意管理员重置本地特权账户密码。文章提供了检测受影响环境、升级至修复版本以及实施临时缓解措施的具体操作步骤。

漏洞摘要:Azure AD Connect 中的权限提升漏洞

发布日期: 2017年6月27日 版本: 1.0

执行摘要

微软发布此安全公告,旨在告知客户:Azure Active Directory Connect 现已推出新版本,修复了一个重要的安全漏洞。 此更新解决了一个在启用时若 Azure AD Connect 密码写回功能配置不当,则可能允许权限提升的漏洞。成功利用此漏洞的攻击者可以重置密码,并获取对任意本地 AD 特权用户帐户的未授权访问。 该问题已在 Azure AD Connect 最新版本中得以解决,该版本不允许向本地 AD 特权用户帐户执行任意密码重置。

公告详情

密码写回是 Azure AD Connect 的一个组件。它允许用户配置 Azure AD,将密码写回其本地 Active Directory。无论用户身处何地,这都提供了一种便捷的基于云的方式来重置其本地密码。 为了启用密码写回,必须授予 Azure AD Connect 对本地 AD 用户帐户的“重置密码”权限。在设置权限时,本地 AD 管理员可能无意中授予了 Azure AD Connect 对本地 AD 特权帐户的“重置密码”权限。此配置不被推荐,因为它允许恶意 Azure AD 管理员使用密码写回功能,将任意本地 AD 特权用户帐户的密码重置为已知值,从而获取对客户本地 AD 的特权访问。 参考 CVE-2017-8613 - Azure AD Connect 权限提升漏洞

建议措施

验证您的组织是否受影响 此问题仅影响已在 Azure AD Connect 上启用密码写回功能的客户。要确定是否启用了该功能:

  1. 登录到您的 Azure AD Connect 服务器。
  2. 启动 Azure AD Connect 向导。
  3. 在“欢迎”屏幕上,单击“配置”。
  4. 在“任务”屏幕上,选择“查看当前配置”并单击“下一步”。
  5. 在“同步设置”下,检查“密码写回”是否已启用。

如果启用了密码写回,请评估您的 Azure AD Connect 服务器是否已被授予对本地 AD 特权帐户的“重置密码”权限。Azure AD Connect 使用一个 AD DS 帐户与本地 AD 同步更改。同一 AD DS 帐户用于对本地 AD 执行密码重置操作。要识别使用的是哪个 AD DS 帐户:

  1. 登录到您的 Azure AD Connect 服务器。
  2. 启动同步服务管理器。
  3. 在“连接器”选项卡下,选择本地 AD 连接器并单击“属性”。
  4. 在“属性”对话框中,选择“连接到 Active Directory 林”选项卡,并记下“用户名”属性。这是 Azure AD Connect 用于执行目录同步的 AD DS 帐户。

要让 Azure AD Connect 对本地 AD 特权帐户执行密码写回,AD DS 帐户必须被授予对这些帐户的“重置密码”权限。如果本地 AD 管理员执行了以下任一操作,通常会发生这种情况:

  • 使 AD DS 帐户成为本地 AD 特权组的成员,或者
  • 在 adminSDHolder 容器上创建了授予该 AD DS 帐户“重置密码”权限的控制访问权限。

您需要检查分配给此 AD DS 帐户的有效权限。通过检查现有 ACL 和组分配来执行此操作可能既困难又容易出错。更简单的方法是选择一组现有的本地 AD 特权帐户,并使用 Windows 的“有效权限”功能来确定 AD DS 帐户是否对这些选定帐户具有“重置密码”权限。

修复步骤

升级到可从 此处 下载的最新版本 (1.1.553.0) 的 Azure AD Connect。即使您的组织目前未受影响,我们也建议您这样做。 最新版本的 Azure AD Connect 通过阻止对本地 AD 特权帐户的密码写回请求来解决此问题,除非提出请求的 Azure AD 管理员是本地 AD 帐户的所有者。具体来说,当 Azure AD Connect 收到来自 Azure AD 的密码写回请求时:

  • 它通过验证 AD 的 adminCount 属性来检查目标本地 AD 帐户是否为特权帐户。如果该值为 null 或 0,则 Azure AD Connect 认定这不是特权帐户并允许密码写回请求。
  • 如果该值不是 null 或 0,则 Azure AD Connect 认定这是一个特权帐户。接下来,它会验证请求用户是否是目标本地 AD 帐户的所有者。它通过在其 Metaverse 中检查目标本地 AD 帐户与请求用户的 Azure AD 帐户之间的关系来做到这一点。如果请求用户确实是所有者,则 Azure AD Connect 允许密码写回请求。否则,请求将被拒绝。

缓解步骤

如果您无法立即升级到最新的 Azure AD Connect 版本,请考虑以下选项:

  • 如果 AD DS 帐户是一个或多个本地 AD 特权组的成员,请考虑将该 AD DS 帐户从这些组中移除。
  • 如果本地 AD 管理员先前在 adminSDHolder 对象上为 AD DS 帐户创建了允许“重置密码”操作的控制访问权限,请考虑将其移除。
  • 可能并非总能移除授予 AD DS 帐户的现有权限。考虑在 adminSDHolder 对象上创建一个 DENY ACE,以拒绝 AD DS 帐户的“重置密码”权限。使用 Windows DSACLS 工具创建 DENY ACE 的方法如下: DSACLS DNofAdminSDHolderContainer /D CONTOSO\ADDSAccount:CA;"Reset Password"

页面生成时间: 2017-06-27 09:50-07:00.

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