Az - Conditional Access Policies / MFA Bypass

Nauka hakowania AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Podstawowe informacje

Polityki dostępu warunkowego w Azure to zasady ustawione w Microsoft Azure, które narzucają kontrole dostępu do usług i aplikacji Azure na podstawie określonych warunków. Te polityki pomagają organizacjom zabezpieczyć swoje zasoby, stosując odpowiednie kontrole dostępu w odpowiednich okolicznościach. Polityki dostępu warunkowego 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 wymagać uwierzytelnienia wielopoziomowego (MFA), gdy wykryte zostanie ryzyko logowania. Na przykład, jeśli zachowanie logowania użytkownika jest nietypowe w porównaniu z ich regularnym wzorcem, takim jak logowanie z innego kraju, system może poprosić o dodatkowe uwierzytelnienie.

  2. Polityka zgodności urządzenia: Ta polityka może ograniczyć dostęp do usług Azure tylko do urządzeń zgodnych z standardami bezpieczeństwa organizacji. Na przykład dostęp może być dozwolony tylko z urządzeń posiadających aktualne oprogramowanie antywirusowe lub pracujących na określonej wersji systemu operacyjnego.

Bypassy polityk dostępu warunkowego

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

Platformy urządzeń - Warunek urządzenia

Możliwe jest ustawienie warunku opartego na platformie urządzenia (Android, iOS, Windows, macOS), jednak jest to oparte na user-agent, więc jest dość łatwe do obejścia. Nawet ustawiając wszystkie opcje na wymaganie MFA, jeśli użyjesz user-agenta, którego nie rozpoznaje, będziesz mógł ominąć MFA.

Lokalizacje: Kraje, zakresy IP - Warunek urządzenia

Oczywiście, jeśli to jest ustawione w polityce warunkowej, atakujący mógłby po prostu użyć VPN w dozwolonym kraju lub spróbować znaleźć sposób na dostęp z dozwolonego adresu IP, aby ominąć te warunki.

Aplikacje klienta Office365

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

Aby ominąć to, można udawać, że logujesz się do aplikacji z aplikacji desktopowej (na przykład do Microsoft Teams w poniższym przykładzie), co ominie ochronę:

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

<token>

Ponieważ aplikacja Microsoft Teams ma wiele uprawnień, będziesz mógł skorzystać z tego dostępu.

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

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

Inne aplikacje

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

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

Sprawdź techniki Invoke-MFASweep i donkeytoken.

Inne sposoby bypassowania Az MFA

Dzwonek

Jedną z opcji Azure MFA jest otrzymanie połączenia na skonfigurowany numer telefonu, gdzie użytkownikowi zostanie poproszony o wysłanie znaku #.

Ponieważ znaki to po prostu dźwięki, atakujący mógłby skompromitować wiadomość na poczcie głosowej numeru telefonu, skonfigurować jako wiadomość dźwiękowy znak #, a następnie, podczas żądania MFA, upewnić się, że telefon ofiary jest zajęty (dzwoniąc), aby połączenie Azure zostało przekierowane na pocztę głosową.

Urządzenia zgodne

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 ominąć 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ępnej stronie:

Narzędzia

Pobierz wszystkie zasady.

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 konfiguracji polityk dostępu warunkowego i innych ustawień uwierzytelniania wieloskładnikowego, niektóre protokoły mogą pozostać jednoskładnikowe. Posiada również dodatkową weryfikację konfiguracji ADFS i może próbować zalogować się do serwera ADFS lokalnie, jeśli zostanie wykryty.

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

Donkey token to zestaw funkcji, które mają na celu pomóc konsultantom ds. bezpieczeństwa, którzy muszą zweryfikować polityki dostępu warunkowego, testować portale firmy Microsoft z włączoną autoryzacją dwuetapową, itp.

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

Przetestuj każdą z platform, aby sprawdzić, czy jest możliwe zalogowanie bez MFA:

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

Ponieważ portal Azure nie jest ograniczony, istnieje możliwość pobrania tokena z punktu końcowego portalu w celu uzyskania dostępu do dowolnej usługi wykrytej podczas poprzedniego wykonania. W tym przypadku zidentyfikowano Sharepoint, a żądany jest token dostępu do niego:

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

Załóżmy, że token ma uprawnienie Sites.Read.All (z Sharepoint), nawet jeśli nie możesz uzyskać dostępu do Sharepoint z sieci z powodu MFA, można użyć tokenu do uzyskania dostępu do plików za pomocą wygenerowanego tokenu:

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

Odnośniki

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

Last updated