Az - PTA - Pass-through Authentication

Support HackTricks

Basic Information

From the docs: Azure Active Directory (Azure AD) Pass-through Authentication pozwala użytkownikom na logowanie się zarówno do aplikacji lokalnych, jak i opartych na chmurze, używając tych samych haseł. Ta funkcja zapewnia użytkownikom lepsze doświadczenie - jedno mniej hasło do zapamiętania, a także zmniejsza koszty pomocy IT, ponieważ użytkownicy rzadziej zapominają, jak się zalogować. Gdy użytkownicy logują się za pomocą Azure AD, ta funkcja waliduje hasła użytkowników bezpośrednio w lokalnym Active Directory.

W PTA tożsamościsynchronizowane, ale hasła nie są jak w PHS.

Autoryzacja jest walidowana w lokalnym AD, a komunikacja z chmurą odbywa się za pomocą agenta autoryzacji działającego na lokalnym serwerze (nie musi być na lokalnym DC).

Authentication flow

  1. Aby zalogować się, użytkownik jest przekierowywany do Azure AD, gdzie wysyła nazwa użytkownika i hasło

  2. Dane uwierzytelniająceszyfrowane i umieszczane w kolejce w Azure AD

  3. Lokalny agent autoryzacji zbiera dane uwierzytelniające z kolejki i je odszyfrowuje. Ten agent nazywa się "agentem autoryzacji przechodzącej" lub agentem PTA.

  4. Agent waliduje dane uwierzytelniające w stosunku do lokalnego AD i wysyła odpowiedź z powrotem do Azure AD, która, jeśli odpowiedź jest pozytywna, kończy logowanie użytkownika.

If an attacker compromises the PTA he can see the all credentials from the queue (in clear-text). He can also validate any credentials to the AzureAD (similar attack to Skeleton key).

On-Prem -> cloud

If you have admin access to the Azure AD Connect server with the PTA agent running, you can use the AADInternals module to insert a backdoor that will validate ALL the passwords introduced (so all passwords will be valid for authentication):

Install-AADIntPTASpy

Jeśli instalacja nie powiedzie się, prawdopodobnie jest to spowodowane brakującymi Microsoft Visual C++ 2015 Redistributables.

Możliwe jest również zobaczenie haseł w postaci czystego tekstu wysyłanych do agenta PTA za pomocą następującego cmdletu na maszynie, na której zainstalowano poprzedni backdoor:

Get-AADIntPTASpyLog -DecodePasswords

Ten backdoor będzie:

  • Tworzyć ukrytą folder C:\PTASpy

  • Kopiować PTASpy.dll do C:\PTASpy

  • Wstrzykiwać PTASpy.dll do procesu AzureADConnectAuthenticationAgentService

Gdy usługa AzureADConnectAuthenticationAgent zostanie ponownie uruchomiona, PTASpy jest „odładowany” i musi zostać ponownie zainstalowany.

Chmura -> On-Prem

Po uzyskaniu uprawnień GA w chmurze, możliwe jest zarejestrowanie nowego agenta PTA poprzez ustawienie go na maszynie kontrolowanej przez atakującego. Gdy agent jest skonfigurowany, możemy powtórzyć poprzednie kroki, aby uwierzytelnić się przy użyciu dowolnego hasła oraz uzyskać hasła w postaci czystego tekstu.

Seamless SSO

Możliwe jest użycie Seamless SSO z PTA, które jest podatne na inne nadużycia. Sprawdź to w:

Az - Seamless SSO

Referencje

Wsparcie dla HackTricks

Last updated