Az - PHS - Password Hash Sync
Podstawowe informacje
Z dokumentacji: Synchronizacja hasła to jedna z metod logowania używana do osiągnięcia hybrydowej tożsamości. Azure AD Connect synchronizuje skrót hasła użytkownika z lokalnej instancji Active Directory do chmurowej instancji Azure AD.
To najczęstsza metoda używana przez firmy do synchronizacji lokalnego AD z Azure AD.
Wszyscy użytkownicy i skrót skrótów haseł są synchronizowani z lokalnego do Azure AD. Jednak hasła w postaci czystego tekstu lub oryginalne skróty nie są przesyłane do Azure AD. Co więcej, wbudowane grupy zabezpieczeń (takie jak administratorzy domeny...) nie są synchronizowane z Azure AD.
Synchronizacja skrótów zachodzi co 2 minuty. Jednak domyślnie wygaśnięcie hasła i wygaśnięcie konta nie są synchronizowane w Azure AD. Dlatego użytkownik, którego hasło lokalne wygasło (nie zostało zmienione), może nadal uzyskiwać dostęp do zasobów Azure za pomocą starego hasła.
Gdy użytkownik lokalny chce uzyskać dostęp do zasobu Azure, uwierzytelnienie odbywa się w Azure AD.
PHS jest wymagane do funkcji takich jak Ochrona tożsamości i Usługi domen AAD.
Pivoting
Kiedy PHS jest skonfigurowane, automatycznie są tworzone pewne konta uprzywilejowane:
Konto
MSOL_<installationID>
jest automatycznie tworzone w lokalnym AD. Konto to otrzymuje rolę Konta synchronizacji katalogów (zobacz dokumentację), co oznacza, że ma uprawnienia replikacji (DCSync) w lokalnym AD.Konto
Sync_<nazwa serwera Azure ADConnect na lokalnym AD>_installationID
jest tworzone w Azure AD. To konto może zresetować hasło DOWOLNEGO użytkownika (synchronizowanego lub tylko w chmurze) w Azure AD.
Hasła dwóch powyższych kont uprzywilejowanych są przechowywane w serwerze SQL na serwerze, na którym zainstalowany jest Azure AD Connect. Administratorzy mogą wydobyć hasła tych uprzywilejowanych użytkowników w postaci czystego tekstu.
Baza danych znajduje się w C:\Program Files\Microsoft Azure AD Sync\Data\ADSync.mdf
.
Możliwe jest wydobycie konfiguracji z jednej z tabel, z których jedna jest zaszyfrowana:
SELECT private_configuration_xml, encrypted_configuration FROM mms_management_agent;
Zaszyfrowana konfiguracja jest zaszyfrowana za pomocą DPAPI i zawiera hasła użytkownika MSOL_*
w lokalnym AD oraz hasło Sync_* w AzureAD. Dlatego kompromitując te dane, możliwe jest uzyskanie uprawnień do AD i AzureAD.
Możesz znaleźć pełny przegląd tego, jak te poświadczenia są przechowywane i odszyfrowywane w tej prezentacji.
Znajdowanie serwera Azure AD Connect
Jeśli serwer, na którym zainstalowany jest Azure AD Connect, jest dołączony do domeny (zalecane w dokumentacji), można go znaleźć za pomocą:
Nadużywanie MSOL_*
Możesz również użyć adconnectdump, aby uzyskać te poświadczenia.
Nadużywanie Sync_*
Zaatakowanie konta Sync_*
umożliwia zresetowanie hasła dowolnego użytkownika (w tym Administratorów Globalnych)
Możliwe jest również modyfikowanie haseł tylko użytkowników chmury (nawet jeśli jest to nieoczekiwane)
Możliwe jest również wycieknięcie hasła tego użytkownika.
Inną opcją byłoby przypisanie uprzywilejowanych uprawnień do podmiotu usługi, co użytkownik Sync ma uprawnienia do zrobienia, a następnie uzyskanie dostępu do tego podmiotu usługi jako sposób na eskalację uprawnień.
Bezproblemowe SSO
Możliwe jest korzystanie z Bezproblemowego SSO z PHS, co jest podatne na inne nadużycia. Sprawdź to w:
pageAz - Seamless SSOOdnośniki
Last updated