MSRC ppDocument 模板

Microsoft 安全公告 4033453

Azure AD Connect 中的漏洞可能允许特权提升

发布时间:2017 年 6 月 27 日

**版本:**1.0

执行摘要

Microsoft 发布此公告是为了通知客户,有新版本的 Azure Active Directory (AD) Connect 可供下载,此版本修复了一个重要安全漏洞。

此更新修复了一个漏洞,如果启用期间 Azure AD Connect 密码写回配置错误,该漏洞可能会允许特权提升。成功利用此漏洞的攻击者可能会重置密码,并获得未授权访问任意本地 AD 特权用户帐户的权限。

在 Azure AD Connect 的最新版本 (1.1.553.0) 中,通过不允许为本地 AD 特权用户帐户执行任意密码重置来修复此问题。

公告详细信息

密码写回是 Azure AD Connect 的一个组件。它允许用户配置 Azure AD,以将密码写回到本地 Active Directory。为用户提供了一种方便的基于云的方法,使他们可以在任意位置重置本地密码。有关密码写回的更多信息,请参阅密码写回概述

若要启用密码写回,必须授予 Azure AD Connect 对本地 AD 用户帐户执行重置密码操作的权限。设置权限时,本地 AD 管理员可能会无意中授予 Azure AD Connect 对本地 AD 特权帐户(包括企业和域管理员帐户)执行重置密码操作的权限。有关 AD 特权用户帐户的信息,请参阅 Active Directory 中的受保护帐户和组

不建议使用此配置,因为它允许恶意 Azure AD 管理员使用密码写回将任意本地 AD 用户特权帐户的密码重置为已知密码值。这样又会允许恶意 Azure AD 管理员获得访问客户的本地 AD 的特权。

请参阅 CVE-2017-8613 - Azure AD Connect 特权提升漏洞

建议措施

验证你的组织是否受影响

此问题仅影响已在 Azure AD Connect 上启用了密码写回功能的客户。若要确定是否已启用此功能:

  1. 登录到你的 Azure AD Connect 服务器。
  2. 启动 Azure AD Connect 向导(“开始”→“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. 启动 Synchronization Service Manager(“开始”→“同步服务”)。
  3. 在“连接器”选项卡下,选择“本地 AD 连接器”,然后单击“属性”。  

 

  1. 在“属性”**对话框中,选择“连接到 Active Directory 林”**选项卡,然后记下“用户名”**属性。这是 Azure AD Connect 执行目录同步时使用的 AD DS 帐户。

 

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

  • 将 AD DS 帐户设为本地 AD 特权组(例如企业管理员或域管理员组)的成员,或者
  • 在 adminSDHolder 容器上创建了控制访问权限,此权限将授予 AD DS 帐户重置密码权限。有关 adminSDHolder 容器如何影响对本地 AD 特权帐户的访问权限的信息,请参阅 Active Directory 中的受保护帐户和组

你需要检查分配给此 AD DS 帐户的有效权限。通过检查现有 ACL 和组分配来执行此操作可能十分困难且容易出错。更简单的方法是选择一组现有本地 AD 特权帐户并使用 Windows 有效权限功能确定 AD DS 帐户是否有权对所选的这些帐户执行重置密码操作。有关如何使用有效权限功能的信息,请参阅验证 Azure AD Connect 是否有执行密码写回操作必需的权限

备注

如果你使用 Azure AD Connect 同步多个本地 AD 林,你可能要评估多个 AD DS 帐户。

修复步骤

升级到 Azure AD Connect 的最新版本 (1.1.553.0),此版本可从此处下载。即使你的组织当前未受影响,我们也建议你执行此操作。有关如何升级 Azure AD Connect 的更多信息,请参阅 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 将允许密码写回请求。否则将拒绝此请求。

备注

adminCount 属性受 SDProp 进程管理。默认情况下,SDProp 每 60 分钟运行一次。因此,新建的 AD 特权用户帐户的 adminCount 属性从 NULL 更新为 1 可能需要一个小时。在更新完成之前,Azure AD 管理员仍可以重置此新建帐户的密码。有关 SDProp 进程的信息,请参阅 Active Directory 中的受保护帐户和组

缓解步骤

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

  • 如果 AD DS 帐户为一个或多个本地 AD 特权组的成员,请考虑从组中移除 AD DS 帐户。
  • 如果本地 AD 管理员之前已在 adminSDHolder 对象上为 AD DS 帐户创建了允许重置密码操作的控制访问权限,请考虑将其移除。
      DSACLS DNofAdminSDHolderContainer /D CONTOSO\ADDSAccount:CA;"Reset Password"
    

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