Az - PTA - Pass-through Authentication

Support HackTricks

基本信息

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

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

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

身份验证流程

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

  2. 凭据加密并放入 Azure AD 中的队列

  3. 本地身份验证代理从队列中收集凭据解密它们。这个代理被称为**“通过身份验证代理”PTA 代理**。

  4. 代理将凭据与本地 AD进行验证,并将响应****返回给 Azure AD,如果响应是积极的,完成用户的登录

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

本地 -> 云

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

Install-AADIntPTASpy

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

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

Get-AADIntPTASpyLog -DecodePasswords

这个后门将会:

  • 创建一个隐藏文件夹 C:\PTASpy

  • 复制一个 PTASpy.dllC:\PTASpy

  • PTASpy.dll 注入到 AzureADConnectAuthenticationAgentService 进程中

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

云 -> 本地

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

无缝 SSO

可以使用无缝 SSO 与 PTA,这对其他滥用行为是脆弱的。请查看:

参考文献

支持 HackTricks

Last updated