Az - PTA - Autenticação Pass-through

Reading time: 4 minutes

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Informações Básicas

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

Na PTA, as identidades são sincronizadas, mas as 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 fazer login, o usuário é redirecionado para 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. Este 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.

warning

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

Local -> nuvem

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

bash
Install-AADIntPTASpy

note

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 para o agente PTA usando o seguinte cmdlet na máquina onde o backdoor anterior foi instalado:

bash
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

note

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

Cloud -> On-Prem

caution

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. Confira em:

Az - Seamless SSO

Referências

tip

Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE) Aprenda e pratique Hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks