Az - Seamless SSO
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From the docs: Azure Active Directory Seamless Single Sign-On (Azure AD Seamless SSO) automatycznie loguje użytkowników, gdy są na swoich urządzeniach firmowych podłączonych do sieci firmowej. Po włączeniu, użytkownicy nie muszą wpisywać swoich haseł, aby zalogować się do Azure AD, a zazwyczaj nawet wpisywać swoich nazw użytkowników. Ta funkcja zapewnia użytkownikom łatwy dostęp do aplikacji w chmurze bez potrzeby posiadania dodatkowych komponentów lokalnych.
Zasadniczo Azure AD Seamless SSO loguje użytkowników, gdy są na komputerze dołączonym do lokalnej domeny.
Jest wspierane zarówno przez PHS (Password Hash Sync), jak i PTA (Pass-through Authentication).
Desktop SSO używa Kerberos do uwierzytelniania. Po skonfigurowaniu, Azure AD Connect tworzy konto komputera o nazwie AZUREADSSOACC$
w lokalnym AD. Hasło konta AZUREADSSOACC$
jest wysyłane w postaci niezaszyfrowanej do Azure AD podczas konfiguracji.
Bilety Kerberos są szyfrowane przy użyciu NTHash (MD4) hasła, a Azure AD używa wysłanego hasła do odszyfrowania biletów.
Azure AD udostępnia punkt końcowy (https://autologon.microsoftazuread-sso.com), który akceptuje bilety Kerberos. Przeglądarka maszyny dołączonej do domeny przesyła bilety do tego punktu końcowego w celu SSO.
Hasło użytkownika AZUREADSSOACC$
nigdy się nie zmienia. Dlatego administrator domeny mógłby skompromitować hash tego konta, a następnie użyć go do tworzenia srebrnych biletów do połączenia się z Azure z dowolnym użytkownikiem lokalnym zsynchronizowanym:
Z hashem możesz teraz generować srebrne bilety:
Aby wykorzystać srebrny bilet, należy wykonać następujące kroki:
Uruchom przeglądarkę: Należy uruchomić Mozilla Firefox.
Skonfiguruj przeglądarkę:
Przejdź do about:config
.
Ustaw preferencję dla network.negotiate-auth.trusted-uris na określone wartości:
https://aadg.windows.net.nsatc.net
https://autologon.microsoftazuread-sso.com
Uzyskaj dostęp do aplikacji internetowej:
Odwiedź aplikację internetową, która jest zintegrowana z domeną AAD organizacji. Typowym przykładem jest Office 365.
Proces uwierzytelniania:
Na ekranie logowania należy wpisać nazwę użytkownika, pozostawiając pole hasła puste.
Aby kontynuować, naciśnij TAB lub ENTER.
To nie omija MFA, jeśli jest włączone
Możliwe jest również przeprowadzenie tego ataku bez ataku dcsync, aby być bardziej dyskretnym, jak wyjaśniono w tym wpisie na blogu. W tym celu potrzebujesz tylko jednego z poniższych:
Złoty bilet: Jeśli masz klucz KRBTGT, możesz stworzyć TGT, którego potrzebujesz dla zaatakowanego użytkownika.
Hash NTLM lub klucz AES skompromitowanego użytkownika: SeamlessPass skomunikuje się z kontrolerem domeny z tymi informacjami, aby wygenerować TGT.
Hash NTLM lub klucz AES konta AZUREADSSOACC$: Z tymi informacjami i identyfikatorem zabezpieczeń (SID) użytkownika, którego atakujesz, możliwe jest stworzenie biletu usługi i uwierzytelnienie się w chmurze (jak wykonano w poprzedniej metodzie).
Na koniec, z TGT możliwe jest użycie narzędzia SeamlessPass z:
Dalsze informacje na temat ustawienia Firefoksa do pracy z seamless SSO można znaleźć w tym wpisie na blogu.
Jeśli administratorzy Active Directory mają dostęp do Azure AD Connect, mogą ustawić SID dla dowolnego użytkownika w chmurze. W ten sposób bilety Kerberos mogą być tworzone również dla użytkowników tylko w chmurze. Jedynym wymaganiem jest, aby SID był odpowiednim SID.
Zmiana SID użytkowników administracyjnych tylko w chmurze jest teraz zablokowana przez Microsoft. Aby uzyskać więcej informacji, sprawdź https://aadinternals.com/post/on-prem_admin/
Każdy, kto może zarządzać kontami komputerów (AZUREADSSOACC$
) w kontenerze lub OU, w którym znajduje się to konto, może skonfigurować ograniczoną delegację opartą na zasobach dla tego konta i uzyskać do niego dostęp.
Ucz się i ćwicz Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Ucz się i ćwicz Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)