Az - PTA - Pass-through Authentication

支持 HackTricks

基本信息

来自文档: Azure Active Directory (Azure AD) Pass-through Authentication 允许用户使用相同的密码登录本地和基于云的应用程序。此功能为用户提供了更好的体验——少记一个密码,并减少了 IT 帮助台的成本,因为用户不太可能忘记如何登录。当用户使用 Azure AD 登录时,此功能直接针对本地 Active Directory 验证用户的密码。

在 PTA 中,身份是同步的,但密码不像在 PHS 中那样同步。

身份验证在本地 AD 中验证,与云的通信由运行在本地服务器上的身份验证代理完成(不需要在本地 DC 上)。

身份验证流程

  1. 为了登录,用户被重定向到 Azure AD,在那里他发送用户名和密码

  2. 凭据被加密并设置在 Azure AD 的队列中

  3. 本地身份验证代理从队列中收集凭据并解密它们。此代理称为“Pass-through authentication agent”或 PTA 代理。

  4. 代理在本地 AD 中验证凭据,并将响应发送回 Azure AD,如果响应是正面的,则完成用户的登录。

如果攻击者攻陷了 PTA,他可以看到队列中的所有凭据(明文)。 他还可以验证任何凭据到 AzureAD(类似于 Skeleton key 的攻击)。

本地 -> 云

如果你拥有运行 PTA 代理的 Azure AD Connect 服务器的管理员访问权限,你可以使用 AADInternals 模块插入一个后门,该后门将验证所有输入的密码(因此所有密码都将有效进行身份验证):

Install-AADIntPTASpy

如果安装失败,这可能是由于缺少Microsoft Visual C++ 2015 Redistributables

还可以使用以下 cmdlet 在安装了先前后门的机器上查看发送到 PTA agent 的明文密码

Get-AADIntPTASpyLog -DecodePasswords

This backdoor will:

  • Create a hidden folder C:\PTASpy

  • Copy a PTASpy.dll to C:\PTASpy

  • Injects PTASpy.dll to AzureADConnectAuthenticationAgentService process

当 AzureADConnectAuthenticationAgent 服务重新启动时,PTASpy 会被“卸载”,必须重新安装。

Cloud -> On-Prem

在云端获得 GA 权限 后,可以通过在 攻击者控制的机器 上设置来 注册一个新的 PTA 代理。代理 设置 完成后,我们可以 重复 之前 的步骤来 使用任何密码进行身份验证,并且 获取明文密码。

Seamless SSO

可以将 Seamless SSO 与 PTA 一起使用,这容易受到其他滥用。请查看:

Az - Seamless SSO

References

支持 HackTricks

Last updated