Az - PTA - Pass-through Authentication

Support HackTricks

Información Básica

De la documentación: La Autenticación Passthrough de Azure Active Directory (Azure AD) permite a sus usuarios iniciar sesión tanto en aplicaciones locales como en aplicaciones basadas en la nube utilizando las mismas contraseñas. Esta función proporciona a sus usuarios una mejor experiencia: una contraseña menos que recordar, y reduce los costos del servicio de asistencia de TI porque es menos probable que sus usuarios olviden cómo iniciar sesión. Cuando los usuarios inician sesión utilizando Azure AD, esta función valida las contraseñas de los usuarios directamente contra su Active Directory local.

En PTA, las identidades están sincronizadas pero las contraseñas no lo están como en PHS.

La autenticación se valida en el AD local y la comunicación con la nube se realiza mediante un agente de autenticación que se ejecuta en un servidor local (no necesita estar en el DC local).

Flujo de Autenticación

  1. Para iniciar sesión, el usuario es redirigido a Azure AD, donde envía el nombre de usuario y la contraseña.

  2. Las credenciales son encriptadas y colocadas en una cola en Azure AD.

  3. El agente de autenticación local recoge las credenciales de la cola y las desencripta. Este agente se llama "agente de autenticación passthrough" o agente PTA.

  4. El agente valida las credenciales contra el AD local y envía la respuesta de vuelta a Azure AD que, si la respuesta es positiva, completa el inicio de sesión del usuario.

Si un atacante compromete el PTA, puede ver todas las credenciales de la cola (en texto claro). También puede validar cualquier credencial en AzureAD (ataque similar a la llave maestra).

Local -> nube

Si tiene acceso administrativo al servidor Azure AD Connect con el agente PTA en ejecución, puede usar el módulo AADInternals para insertar una puerta trasera que validará TODAS las contraseñas introducidas (por lo que todas las contraseñas serán válidas para la autenticación):

Install-AADIntPTASpy

Si la instalación falla, esto se debe probablemente a la falta de Microsoft Visual C++ 2015 Redistributables.

También es posible ver las contraseñas en texto claro enviadas al agente PTA utilizando el siguiente cmdlet en la máquina donde se instaló la puerta trasera anterior:

Get-AADIntPTASpyLog -DecodePasswords

Esta puerta trasera hará:

  • Crear una carpeta oculta C:\PTASpy

  • Copiar un PTASpy.dll a C:\PTASpy

  • Inyectar PTASpy.dll al proceso AzureADConnectAuthenticationAgentService

Cuando el servicio AzureADConnectAuthenticationAgent se reinicia, PTASpy se “descarga” y debe ser reinstalado.

Nube -> Local

Después de obtener privilegios de GA en la nube, es posible registrar un nuevo agente PTA configurándolo en una máquina controlada por el atacante. Una vez que el agente está configurado, podemos repetir los pasos previos para autenticar usando cualquier contraseña y también, obtener las contraseñas en texto claro.

SSO Sin Problemas

Es posible usar SSO Sin Problemas con PTA, que es vulnerable a otros abusos. Revísalo en:

Az - Seamless SSO

Referencias

Apoya a HackTricks

Last updated