Az - PTA - Pass-through Authentication

Support HackTricks

Podstawowe informacje

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

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

Uwierzytelnianie jest weryfikowane w lokalnym AD, a komunikacja z chmurą odbywa się za pomocą agenta uwierzytelniania działającego na serwerze lokalnym (nie musi to być lokalny DC).

Przebieg uwierzytelniania

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

  2. Poświadczeniaszyfrowane i umieszczane w kolejce w Azure AD

  3. Lokalny agent uwierzytelniania pobiera poświadczenia z kolejki i odszyfrowuje je. Ten agent nazywa się "Pass-through authentication agent" lub PTA agent.

  4. Agent weryfikuje poświadczenia w lokalnym AD i wysyła odpowiedź z powrotem do Azure AD, które, jeśli odpowiedź jest pozytywna, zakończy logowanie użytkownika.

Jeśli atakujący przełamie zabezpieczenia PTA, może zobaczyć wszystkie poświadczenia z kolejki (w czystym tekście). Może również weryfikować dowolne poświadczenia w AzureAD (podobny atak do Skeleton key).

On-Prem -> chmura

Jeśli masz dostęp administracyjny do serwera Azure AD Connect z działającym agentem PTA, możesz użyć modułu AADInternals do wstawienia tylnej furtki, która będzie weryfikować WSZYSTKIE wprowadzone hasła (więc wszystkie hasła będą ważne do uwierzytelniania):

Install-AADIntPTASpy

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

Możliwe jest również zobaczenie haseł w postaci jawnej wysyłanych do agenta PTA za pomocą następującego polecenia cmdlet na maszynie, na której zainstalowano poprzedniego backdoora:

Get-AADIntPTASpyLog -DecodePasswords

Ten backdoor będzie:

  • Utworzy ukryty folder C:\PTASpy

  • Skopiuje PTASpy.dll do C:\PTASpy

  • Wstrzyknie PTASpy.dll do procesu AzureADConnectAuthenticationAgentService

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

Cloud -> On-Prem

Po uzyskaniu GA privileges 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 i również, uzyskać hasła w postaci jawnej.

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

References

Support HackTricks

Last updated