前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >未检测到的 Azure Active Directory 暴力攻击

未检测到的 Azure Active Directory 暴力攻击

作者头像
Khan安全团队
发布2022-01-06 11:05:17
1.2K0
发布2022-01-06 11:05:17
举报
文章被收录于专栏:Khan安全团队Khan安全团队

Azure AD 无缝单一登录

Azure AD 无缝单点登录 (SSO) 改善了使用 Azure AD 标识平台(例如 Microsoft 365)的服务的用户体验。配置了无缝 SSO 后,登录到其加入域的计算机的用户将自动登录到 Azure AD .

无缝 SSO 功能使用Kerberos协议,这是 Windows 网络的标准身份验证方法。在无缝 SSO 配置期间,会在本地 Active Directory (AD) 域中创建名为 AZUREADSSOACC 的计算机对象,并为其分配服务主体名称(SPN) “https://autologon . microsoftazuread-sso 。com”。该名称和 AZUREADSSOACC 计算机对象的密码哈希将发送到 Azure AD。以下自动登录 windowstransport 端点接受 Kerberos 票证:

代码语言:javascript
复制
https: //自动登录。microsoftazuread-sso 。com//winauth/trust/2005/windowstransport

无缝 SSO 自动发生,无需任何用户交互(参见图 1)。

图 1. 典型的无缝 SSO 流程。
图 1. 典型的无缝 SSO 流程。
  1. 用户尝试访问 Azure AD。
  2. Azure AD 识别出用户的租户配置为使用无缝 SSO 并将用户的浏览器重定向到自动登录。
  3. 用户的浏览器尝试访问 Azure AD。
  4. Autologon 发送 Kerberos 身份验证质询。
  5. 用户的浏览器尝试以登录用户身份进行身份验证并请求票证授予票证 (TGT)。
  6. 本地 AD 将 TGT 发送到用户的浏览器。
  7. 用户的浏览器从本地 AD 请求自动登录访问,并提供 TGT 作为身份证明。
  8. 本地 AD 定位相应的计算机对象并创建服务票证 (ST),该票证使用 AZUREADSSOACC 计算机帐户的密码哈希进行加密。
  9. 用户的浏览器发出另一个自动登录请求,并在请求的 Authorization 标头中提供 ST。
  10. Autologon 使用 AZUREADSSOACC 计算机帐户的密码哈希解密 ST,为用户颁发 DesktopSSOToken 访问令牌,并通过对 Azure AD 的重定向请求将此令牌发送到用户的浏览器。 DesktopSSOToken 是 Microsoft 加密的不透明 blob,因此实际内容未知。
  11. 用户的浏览器使用 DesktopSSOToken 作为安全断言标记语言 ( SAML ) 断言向 Azure AD 发出另一个请求。

协议中的缺陷

除了 windowstransport 身份验证端点之外,还有一个usernamemixed端点用于用户名和密码身份验证:

代码语言:javascript
复制
https: //自动登录。microsoftazuread-sso 。com//winauth/trust/2005/usernamemixed

图 2 显示了用户名和密码登录过程。

图 2. Autologon 用户名和密码登录过程。
图 2. Autologon 用户名和密码登录过程。
  1. 包含用户名和密码的 XML 文件被发送到 usernamemixed 端点(参见图 3)。

图 3. 包含用户名和密码的 XML 文件。
图 3. 包含用户名和密码的 XML 文件。
  1. Autologon 尝试使用提供的凭据向 Azure AD 进行身份验证。
  2. 如果身份验证成功,自动登录会发出一个包含 DesktopSSOToken 访问令牌的 XML 文件(参见图 4)。如果身份验证不成功,自动登录会生成错误(参见图 5)。

图 4. 包含 DesktopSSOToken 的 XML 文件。
图 4. 包含 DesktopSSOToken 的 XML 文件。
图 5. 身份验证错误消息。
图 5. 身份验证错误消息。
  1. 如果身份验证成功,DesktopSSOToken 访问令牌将发送到 Azure AD。

表 1 列出了可能返回的错误代码。并非所有错误代码都表示暴力尝试。例如,错误 AADSTS50053 表示用户名和密码正确,但帐户被锁定。

错误代码

解释

AADSTS50034

该用户不存在

AADSTS50053

用户存在并且输入了正确的用户名和密码,但帐户被锁定

AADSTS50056

用户存在但在 Azure AD 中没有密码

AADSTS50126

用户存在,但输入了错误的密码

AADSTS80014

用户存在,但已超过最大直通身份验证时间

表 1. 自动登录错误代码。

CTU 研究人员观察到,成功的身份验证事件会在步骤 4 中生成登录日志。但是,不会记录自动登录对 Azure AD(步骤 2)的身份验证。这种遗漏允许威胁行为者利用 usernamemixed 端点进行未检测到的蛮力攻击。

结论

威胁参与者可以利用自动登录 usernamemixed 端点来执行暴力攻击。此活动未记录在 Azure AD 登录日志中,因此不会被检测到。在本出版物中,检测蛮力或密码喷射攻击的工具和对策基于登录日志事件。

CTU 分析表明自动登录服务是通过 Azure Active Directory 联合身份验证服务 (AD FS) 实现的。Microsoft AD FS文档建议禁用对 windowstransport 端点的 Internet 访问。但是,无缝 SSO 需要该访问权限。Microsoft指出,只有早于 Office 2013 2015 年 5 月更新的旧版 Office 客户端才需要 usernamemixed 终结点。

这种利用不仅限于使用无缝 SSO 的组织。威胁参与者可以利用任何 Azure AD 或 Microsoft 365 组织中的自动登录 usernamemixed 终结点,包括使用直通身份验证 ( PTA ) 的组织。没有 Azure AD 密码的用户不受影响。

在本出版物中,没有已知的缓解技术来阻止使用自动登录 usernamemixed 端点。多因素身份验证 ( MFA ) 和条件访问 ( CA ) 不能阻止漏洞利用,因为它们是在成功身份验证后应用的。

9 月 30 日更新:微软回应

在 9 月 29 日发布此分析后,Microsoft 代表提供了有关解决这些问题的计划的以下更新:

我们正在向无缝 SSO 端点添加日志记录,以确保身份验证和授权流程的所有步骤都显示在登录日志中,包括成功、失败和放弃的登录尝试。

我们正在添加仅在租户中启用无缝 SSO 并默认将其关闭时打开/关闭无缝 SSO 端点的功能,这也应该在未来几周内提供给客户。

关于暴力密码喷射攻击,所提到的端点受到 Azure AD智能锁定和 IP 锁定功能的保护。这些措施将使客户能够应对此类攻击。

CTU 研究人员证实,Azure AD 登录日志列出了利用该缺陷的成功和失败尝试。CTU 分析证实,Smart Lockout 可以防止大多数蛮力攻击,但密码喷射攻击仍有可能逃避 Smart Lockout。

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Azure AD 无缝单一登录
  • 协议中的缺陷
  • 结论
  • 9 月 30 日更新:微软回应
相关产品与服务
多因子身份认证
多因子身份认证(Multi-factor Authentication Service,MFAS)的目的是建立一个多层次的防御体系,通过结合两种或三种认证因子(基于记忆的/基于持有物的/基于生物特征的认证因子)验证访问者的身份,使系统或资源更加安全。攻击者即使破解单一因子(如口令、人脸),应用的安全依然可以得到保障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档