Az - PTA - Pass-through Authentication

Support HackTricks

Informações Básicas

Dos documentos: Azure Active Directory (Azure AD) Pass-through Authentication permite que seus usuários façam login em aplicativos locais e baseados em nuvem usando as mesmas senhas. Esse recurso proporciona uma melhor experiência para seus usuários - uma senha a menos para lembrar, e reduz os custos do helpdesk de TI porque seus usuários têm menos probabilidade de esquecer como fazer login. Quando os usuários fazem login usando Azure AD, esse recurso valida as senhas dos usuários diretamente contra seu Active Directory local.

No PTA, identidades são sincronizadas, mas senhas não são como no PHS.

A autenticação é validada no AD local e a comunicação com a nuvem é feita por um agente de autenticação executando em um servidor local (não precisa estar no DC local).

Fluxo de Autenticação

  1. Para login, o usuário é redirecionado para o Azure AD, onde ele envia o nome de usuário e a senha

  2. As credenciais são criptografadas e colocadas em uma fila no Azure AD

  3. O agente de autenticação local coleta as credenciais da fila e as descriptografa. Esse agente é chamado de "agente de autenticação pass-through" ou agente PTA.

  4. O agente valida as credenciais contra o AD local e envia a resposta de volta para o Azure AD que, se a resposta for positiva, completa o login do usuário.

Se um atacante comprometer o PTA, ele pode ver todas as credenciais da fila (em texto claro). Ele também pode validar quaisquer credenciais no AzureAD (ataque semelhante ao Skeleton key).

Local -> nuvem

Se você tiver acesso de administrador ao servidor Azure AD Connect com o agente PTA em execução, você pode usar o módulo AADInternals para inserir uma backdoor que validará TODAS as senhas introduzidas (então todas as senhas serão válidas para autenticação):

Install-AADIntPTASpy

Se a instalação falhar, isso provavelmente se deve à falta dos Microsoft Visual C++ 2015 Redistributables.

Também é possível ver as senhas em texto claro enviadas ao agente PTA usando o seguinte cmdlet na máquina onde o backdoor anterior foi instalado:

Get-AADIntPTASpyLog -DecodePasswords

Este backdoor irá:

  • Criar uma pasta oculta C:\PTASpy

  • Copiar um PTASpy.dll para C:\PTASpy

  • Injetar PTASpy.dll no processo AzureADConnectAuthenticationAgentService

Quando o serviço AzureADConnectAuthenticationAgent é reiniciado, o PTASpy é "descarregado" e deve ser reinstalado.

Cloud -> On-Prem

Após obter privilégios GA na nuvem, é possível registrar um novo agente PTA configurando-o em uma máquina controlada pelo atacante. Uma vez que o agente está configurado, podemos repetir os passos anteriores para autenticar usando qualquer senha e também, obter as senhas em texto claro.

Seamless SSO

É possível usar Seamless SSO com PTA, que é vulnerável a outros abusos. Verifique em:

Az - Seamless SSO

Referências

Support HackTricks

Last updated