Az - Conditional Access Policies / MFA Bypass

Wsparcie dla HackTricks

Podstawowe informacje

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:

  1. Polityka ryzyka logowania: Ta polityka może być ustawiona na wymaganie uwierzytelnienia wieloskładnikowego (MFA), gdy wykryto ryzyko logowania. Na przykład, jeśli zachowanie logowania użytkownika jest nietypowe w porównaniu do jego regularnego wzorca, na przykład logując się z innego kraju, system może poprosić o dodatkowe uwierzytelnienie.

  2. 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.

Ominięcia polityk dostępu warunkowego

Możliwe jest, że polityka dostępu warunkowego sprawdza pewne informacje, które można łatwo zmanipulować, co pozwala na ominięcie polityki. A jeśli na przykład polityka konfigurowała MFA, atakujący będzie mógł ją obejść.

Platformy urządzeń - Warunek 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 jest to dość łatwe do ominięcia. Nawet wymuszając wszystkie opcje MFA, jeśli użyjesz user-agenta, którego nie rozpoznaje, będziesz mógł obejść MFA.

Lokalizacje: Kraje, zakresy IP - Warunek urządzenia

Oczywiście, 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.

Aplikacje klienckie Office365

Możesz wskazać, że jeśli klienci uzyskują dostęp do aplikacji Office 365 z przeglądarki, potrzebują MFA:

Aby to obejść, możliwe jest udawanie, że logujesz się do aplikacji z aplikacji desktopowej (jak w przypadku Microsoft Teams w poniższym przykładzie), co obejdzie ochronę:

roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokrns-stdout

<token>

Jako że aplikacja Microsoft Teams ma wiele uprawnień, będziesz mógł wykorzystać ten dostęp.

Możesz znaleźć ID bardziej publicznych aplikacji z predefiniowanymi uprawnieniami Office365 w bazie danych roadtools:

SELECT appId, displayName FROM ApplicationRefs WHERE publicCLient = 1 ORDER BY displayName ASC

Ten atak jest szczególnie interesujący, ponieważ domyślnie publiczne aplikacje Office365 będą miały uprawnienia do dostępu do niektórych danych.

Inne aplikacje

Domyślnie inne aplikacje tworzone przez użytkowników nie będą miały uprawnień i mogą być prywatne. Jednak użytkownicy mogą również tworzyć publiczne aplikacje, przyznając im pewne uprawnienia.

Potencjalny scenariusz, w którym polityka jest ustawiona na wymaganie MFA do uzyskania dostępu do aplikacji, gdy użytkownik korzysta z przeglądarki (może dlatego, że jest to aplikacja internetowa i dlatego będzie to jedyny sposób), jeśli istnieje aplikacja proxy - aplikacja dozwolona do interakcji z innymi aplikacjami w imieniu użytkowników - użytkownik mógłby zalogować się do aplikacji proxy, a następnie przez tę aplikację proxy zalogować się do początkowo chronionej aplikacji MFA.

Sprawdź techniki Invoke-MFASweep i donkeytoken.

Inne obejścia MFA Az

Dzwonek

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.

Zgodne urządzenia

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ą:

$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials

$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

Znajdź więcej informacji na temat tego rodzaju ataku na następującej stronie:

Az - Pass the PRT

Narzędzia

Pobierz wszystkie polityki

roadrecon plugin policies

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.

Invoke-MFASweep -Username <username> -Password <pass>

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.

Import-Module 'C:\Users\Administrador\Desktop\Azure\Modulos ps1\donkeytoken' -Force

Przetestuj każdy portal, czy możliwe jest zalogowanie się bez MFA:

Test-MFA -credential $cred -Verbose -Debug -InformationAction Continue

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:

$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token

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:

$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl

References

Wsparcie HackTricks

Last updated