Az - PTA - Pass-through Authentication

Aprende a hackear AWS desde cero hasta convertirte en un experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Información Básica

Desde la documentación: La Autenticación de Paso de Azure Active Directory (Azure AD) permite a tus usuarios iniciar sesión en aplicaciones tanto locales como basadas en la nube utilizando las mismas contraseñas. Esta característica proporciona a tus usuarios una mejor experiencia, una contraseña menos que recordar, y reduce los costos de soporte técnico de TI porque es menos probable que tus usuarios olviden cómo iniciar sesión. Cuando los usuarios inician sesión utilizando Azure AD, esta característica valida las contraseñas de los usuarios directamente contra tu 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 es necesario que esté 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 se encriptan y se establecen en una cola en Azure AD.

  3. El agente de autenticación local recopila las credenciales de la cola y las descifra. Este agente se llama "agente de autenticación de paso" 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 la 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 clave Skeleton).

Local -> nube

Si tienes acceso de administrador 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 (por lo que todas las contraseñas serán válidas para la autenticación):

Install-AADIntPTASpy

Si la instalación falla, probablemente se deba 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 anteriormente:

Get-AADIntPTASpyLog -DecodePasswords

Este backdoor realizará:

  • Crear una carpeta oculta C:\PTASpy

  • Copiar un PTASpy.dll en C:\PTASpy

  • Inyectar PTASpy.dll en el proceso AzureADConnectAuthenticationAgentService

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

Nube -> Local

Después de obtener privilegios 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 anteriores para autenticar usando cualquier contraseña y también, obtener las contraseñas en texto claro.

SSO sin interrupciones

Es posible utilizar SSO sin interrupciones con PTA, lo cual es vulnerable a otros abusos. Verifícalo en:

pageAz - Seamless SSO

Referencias

Aprende hacking en AWS desde cero hasta experto con htARTE (HackTricks AWS Red Team Expert)!

Otras formas de apoyar a HackTricks:

Última actualización