Az - Conditional Access Policies & MFA Bypass
Last updated
Last updated
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)
Polityki dostępu warunkowego Azure to zasady ustalone w Microsoft Azure, aby egzekwować kontrole dostępu do usług i aplikacji Azure na podstawie określonych warunków. Polityki te pomagają organizacjom zabezpieczyć swoje zasoby, stosując odpowiednie kontrole dostępu w odpowiednich okolicznościach. Polityki dostępu warunkowego zasadniczo określają Kto może uzyskać dostęp do Czego z Gdzie i Jak.
Oto kilka przykładów:
Polityka ryzyka logowania: Ta polityka może być ustawiona na wymaganie wieloskładnikowej autoryzacji (MFA), gdy wykryte zostanie ryzyko logowania. Na przykład, jeśli zachowanie logowania użytkownika jest nietypowe w porównaniu do jego regularnego wzorca, na przykład logowanie z innego kraju, system może poprosić o dodatkową autoryzację.
Polityka zgodności urządzeń: Ta polityka może ograniczyć dostęp do usług Azure tylko do urządzeń, które są zgodne z normami bezpieczeństwa organizacji. Na przykład, dostęp może być dozwolony tylko z urządzeń, które mają aktualne oprogramowanie antywirusowe lub działają na określonej wersji systemu operacyjnego.
Możliwe jest, że polityka dostępu warunkowego sprawdza pewne informacje, które można łatwo zmanipulować, co pozwala na obejście polityki. A jeśli na przykład polityka konfigurowała MFA, atakujący będzie mógł ją obejść.
Podczas konfigurowania polityki dostępu warunkowego należy wskazać użytkowników objętych polityką oraz docelowe zasoby (takie jak wszystkie aplikacje w chmurze).
Należy również skonfigurować warunki, które będą wyzwalać politykę:
Sieć: IP, zakresy IP i lokalizacje geograficzne
Można to obejść, używając VPN lub Proxy, aby połączyć się z dozwolonym krajem lub udać się do logowania z dozwolonego adresu IP
Ryzyka Microsoftu: Ryzyko użytkownika, ryzyko logowania, ryzyko wewnętrzne
Platformy urządzeń: Dowolne urządzenie lub wybierz Android, iOS, Windows Phone, Windows, macOS, Linux
Jeśli nie wybrano „Dowolne urządzenie”, ale wszystkie inne opcje są zaznaczone, można to obejść, używając losowego user-agenta, który nie jest związany z tymi platformami
Aplikacje klienckie: Opcje to „Przeglądarka”, „Aplikacje mobilne i klienci desktopowi”, „Klienci Exchange ActiveSync” i „Inne klienci”
Aby obejść logowanie z nie wybraną opcją
Filtr dla urządzeń: Możliwe jest wygenerowanie reguły związanej z używanym urządzeniem
Przepływy uwierzytelniania: Opcje to „Przepływ kodu urządzenia” i „Transfer uwierzytelniania”
To nie wpłynie na atakującego, chyba że próbuje nadużyć któregokolwiek z tych protokołów w próbie phishingu, aby uzyskać dostęp do konta ofiary
Możliwe wyniki to: Zablokuj lub Przyznaj dostęp z potencjalnymi warunkami, takimi jak wymaganie MFA, zgodność urządzenia...
Możliwe jest ustawienie warunku na podstawie platformy urządzenia (Android, iOS, Windows, macOS...), jednak opiera się to na user-agencie, więc łatwo to obejść. Nawet wymuszając wszystkie opcje MFA, jeśli użyjesz user-agenta, który nie jest rozpoznawany, będziesz mógł obejść MFA lub blokadę:
Wystarczy, że przeglądarka wyśle nieznany user-agent (jak Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile
), aby nie wywołać tego warunku.
Możesz zmienić user-agenta ręcznie w narzędziach dewelopera:
Lub użyj rozszerzenia przeglądarki takiego jak to.
Jeśli to jest ustawione w polityce warunkowej, atakujący może po prostu użyć VPN w dozwolonym kraju lub spróbować znaleźć sposób na dostęp z dozwolonego adresu IP, aby obejść te warunki.
Możliwe jest skonfigurowanie polityk dostępu warunkowego, aby zablokować lub wymusić na przykład MFA, gdy użytkownik próbuje uzyskać dostęp do konkretnej aplikacji:
Aby spróbować obejść tę ochronę, powinieneś sprawdzić, czy możesz zalogować się tylko do dowolnej aplikacji. Narzędzie AzureAppsSweep ma dziesiątki identyfikatorów aplikacji wbudowanych i spróbuje się do nich zalogować, informując cię o tym i nawet dając token, jeśli się powiedzie.
Aby przetestować konkretne identyfikatory aplikacji w konkretnych zasobach, możesz również użyć narzędzia takiego jak:
Ponadto możliwe jest również zabezpieczenie metody logowania (np. jeśli próbujesz zalogować się z przeglądarki lub z aplikacji desktopowej). Narzędzie Invoke-MFASweep wykonuje pewne kontrole, aby spróbować obejść te zabezpieczenia.
Narzędzie donkeytoken może być również używane do podobnych celów, chociaż wydaje się być nieaktualizowane.
Narzędzie ROPCI może być również używane do testowania tych zabezpieczeń i sprawdzenia, czy możliwe jest obejście MFA lub blokad, ale to narzędzie działa z perspektywy whitebox. Najpierw musisz pobrać listę aplikacji dozwolonych w dzierżawie, a następnie spróbuje się do nich zalogować.
Jedną z opcji Azure MFA jest otrzymanie połączenia na skonfigurowany numer telefonu, gdzie użytkownik zostanie poproszony o wysłanie znaku #
.
Ponieważ znaki to tylko tony, atakujący mógłby skomprymować wiadomość poczty głosowej na numerze telefonu, skonfigurować jako wiadomość ton #
i następnie, gdy będzie żądane MFA, upewnić się, że telefon ofiary jest zajęty (dzwoniąc do niego), aby połączenie Azure zostało przekierowane do poczty głosowej.
Polityki często wymagają zgodnego urządzenia lub MFA, więc atakujący mógłby zarejestrować zgodne urządzenie, uzyskać token PRT i w ten sposób obejść MFA.
Zacznij od zarejestrowania zgodnego urządzenia w Intune, a następnie uzyskaj PRT za pomocą:
Znajdź więcej informacji na temat tego rodzaju ataku na następującej stronie:
Az - Pass the PRTTen skrypt pobiera dane logowania użytkownika i sprawdza, czy może zalogować się do niektórych aplikacji.
Jest to przydatne, aby zobaczyć, czy nie jest wymagane MFA do zalogowania się do niektórych aplikacji, które możesz później wykorzystać do eskalacji uprawnień.
Pobierz wszystkie polityki
MFASweep to skrypt PowerShell, który próbuje zalogować się do różnych usług Microsoftu, używając podanego zestawu poświadczeń i spróbuje zidentyfikować, czy MFA jest włączone. W zależności od tego, jak skonfigurowane są zasady dostępu warunkowego i inne ustawienia uwierzytelniania wieloskładnikowego, niektóre protokoły mogą pozostać jako jednoskładnikowe. Posiada również dodatkowe sprawdzenie konfiguracji ADFS i może próbować zalogować się do lokalnego serwera ADFS, jeśli zostanie wykryty.
To narzędzie pomogło zidentyfikować obejścia MFA, a następnie wykorzystać API w wielu produkcyjnych dzierżawach AAD, gdzie klienci AAD wierzyli, że mają wymuszone MFA, ale uwierzytelnianie oparte na ROPC zakończyło się sukcesem.
Musisz mieć uprawnienia do wyświetlenia wszystkich aplikacji, aby móc wygenerować listę aplikacji do ataku brute-force.
Donkey token to zestaw funkcji, które mają na celu pomoc konsultantom ds. bezpieczeństwa, którzy muszą weryfikować Polityki Dostępu Warunkowego, testy dla portali Microsoft z włączonym 2FA itp.
Testuj każdy portal, czy możliwe jest zalogowanie się bez MFA:
Ponieważ portal Azure nie jest ograniczony, możliwe jest zdobycie tokena z punktu końcowego portalu, aby uzyskać dostęp do dowolnej usługi wykrytej w poprzednim wykonaniu. W tym przypadku zidentyfikowano Sharepoint, a token do uzyskania dostępu do niego jest żądany:
Zakładając, że token ma uprawnienia Sites.Read.All (z Sharepoint), nawet jeśli nie możesz uzyskać dostępu do Sharepoint z sieci z powodu MFA, możliwe jest użycie tokena do uzyskania dostępu do plików za pomocą wygenerowanego tokena:
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)