Az - PTA - Pass-through Authentication
基本信息
来自文档: Azure Active Directory (Azure AD) Pass-through Authentication 允许用户使用相同的密码登录本地和基于云的应用程序。此功能为用户提供了更好的体验——少记一个密码,并减少了 IT 帮助台的成本,因为用户不太可能忘记如何登录。当用户使用 Azure AD 登录时,此功能直接针对本地 Active Directory 验证用户的密码。
在 PTA 中,身份是同步的,但密码不像在 PHS 中那样同步。
身份验证在本地 AD 中验证,与云的通信由运行在本地服务器上的身份验证代理完成(不需要在本地 DC 上)。
身份验证流程
为了登录,用户被重定向到 Azure AD,在那里他发送用户名和密码
凭据被加密并设置在 Azure AD 的队列中
本地身份验证代理从队列中收集凭据并解密它们。此代理称为“Pass-through authentication agent”或 PTA 代理。
代理在本地 AD 中验证凭据,并将响应发送回 Azure AD,如果响应是正面的,则完成用户的登录。
如果攻击者攻陷了 PTA,他可以看到队列中的所有凭据(明文)。 他还可以验证任何凭据到 AzureAD(类似于 Skeleton key 的攻击)。
本地 -> 云
如果你拥有运行 PTA 代理的 Azure AD Connect 服务器的管理员访问权限,你可以使用 AADInternals 模块插入一个后门,该后门将验证所有输入的密码(因此所有密码都将有效进行身份验证):
如果安装失败,这可能是由于缺少Microsoft Visual C++ 2015 Redistributables。
还可以使用以下 cmdlet 在安装了先前后门的机器上查看发送到 PTA agent 的明文密码:
This backdoor will:
Create a hidden folder
C:\PTASpy
Copy a
PTASpy.dll
toC:\PTASpy
Injects
PTASpy.dll
toAzureADConnectAuthenticationAgentService
process
当 AzureADConnectAuthenticationAgent 服务重新启动时,PTASpy 会被“卸载”,必须重新安装。
Cloud -> On-Prem
在云端获得 GA 权限 后,可以通过在 攻击者控制的机器 上设置来 注册一个新的 PTA 代理。代理 设置 完成后,我们可以 重复 之前 的步骤来 使用任何密码进行身份验证,并且 获取明文密码。
Seamless SSO
可以将 Seamless SSO 与 PTA 一起使用,这容易受到其他滥用。请查看:
Az - Seamless SSOReferences
Last updated