Az - OAuth Apps Phishing
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)
Aplikacje Azure są konfigurowane z uprawnieniami, które będą mogły być używane, gdy użytkownik wyrazi zgodę na aplikację (takimi jak enumerowanie katalogu, dostęp do plików lub wykonywanie innych działań). Należy pamiętać, że aplikacja będzie działać w imieniu użytkownika, więc nawet jeśli aplikacja może prosić o uprawnienia administracyjne, jeśli użytkownik, który wyraża zgodę, nie ma tych uprawnień, aplikacja nie będzie mogła wykonywać działań administracyjnych.
Domyślnie każdy użytkownik może wyrazić zgodę na aplikacje, chociaż można to skonfigurować tak, aby użytkownicy mogli wyrażać zgodę tylko na aplikacje od zweryfikowanych wydawców dla wybranych uprawnień lub nawet usunąć uprawnienie dla użytkowników do wyrażania zgody na aplikacje.
Jeśli użytkownicy nie mogą wyrazić zgody, administratorzy tacy jak GA
, Administrator aplikacji
lub Administrator aplikacji w chmurze
mogą wyrazić zgodę na aplikacje, które użytkownicy będą mogli używać.
Co więcej, jeśli użytkownicy mogą wyrażać zgodę tylko na aplikacje używające niskiego ryzyka uprawnień, te uprawnienia to domyślnie openid, profil, email, User.Read i offline_access, chociaż możliwe jest dodanie więcej do tej listy.
A jeśli mogą wyrażać zgodę na wszystkie aplikacje, mogą wyrażać zgodę na wszystkie aplikacje.
Nieautoryzowany: Z zewnętrznego konta utwórz aplikację z niskim ryzykiem uprawnień User.Read
i User.ReadBasic.All
, na przykład, phishinguj użytkownika, a będziesz mógł uzyskać dostęp do informacji katalogowych.
To wymaga, aby phished użytkownik był w stanie zaakceptować aplikacje OAuth z zewnętrznego najemcy.
Jeśli phished użytkownik jest jakimś administratorem, który może wyrażać zgodę na każdą aplikację z dowolnymi uprawnieniami, aplikacja może również żądać uprawnień uprzywilejowanych.
Autoryzowany: Po skompromitowaniu podmiotu z wystarczającymi uprawnieniami, utwórz aplikację wewnątrz konta i phishinguj jakiegoś uprzywilejowanego użytkownika, który może zaakceptować uprzywilejowane uprawnienia OAuth.
W tym przypadku możesz już uzyskać dostęp do informacji katalogowych, więc uprawnienie User.ReadBasic.All
nie jest już interesujące.
Prawdopodobnie interesują cię uprawnienia, które wymagają, aby administrator je przyznał, ponieważ zwykły użytkownik nie może przyznać aplikacjom OAuth żadnych uprawnień, dlatego musisz phishingować tylko tych użytkowników (więcej na temat ról/uprawnień, które przyznają to uprawnienie później).
Zauważ, że musisz wykonać to polecenie z konta użytkownika wewnątrz najemcy, nie możesz znaleźć tej konfiguracji najemcy z zewnętrznego. Następujące cli mogą pomóc ci zrozumieć uprawnienia użytkowników:
Użytkownicy mogą wyrażać zgodę na wszystkie aplikacje: Jeśli w permissionGrantPoliciesAssigned
znajdziesz: ManagePermissionGrantsForSelf.microsoft-user-default-legacy
, to użytkownicy mogą akceptować każdą aplikację.
Użytkownicy mogą wyrażać zgodę na aplikacje od zweryfikowanych wydawców lub twojej organizacji, ale tylko na uprawnienia, które wybierzesz: Jeśli w permissionGrantPoliciesAssigned
znajdziesz: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, to użytkownicy mogą akceptować każdą aplikację.
Wyłącz zgodę użytkownika: Jeśli w permissionGrantPoliciesAssigned
znajdziesz tylko: ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-chat
i ManagePermissionGrantsForOwnedResource.microsoft-dynamically-managed-permissions-for-team
, to użytkownicy nie mogą wyrażać zgody na żadne.
Możliwe jest znalezienie znaczenia każdej z komentowanych polityk w:
Sprawdź użytkowników, którzy są uważani za administratorów aplikacji (mogą akceptować nowe aplikacje):
Atak obejmuje kilka kroków, które mają na celu atak na ogólną firmę. Oto jak może się to rozwinąć:
Rejestracja Domeny i Hosting Aplikacji: Atakujący rejestruje domenę przypominającą zaufaną stronę, na przykład "safedomainlogin.com". Pod tą domeną tworzony jest subdomena (np. "companyname.safedomainlogin.com"), aby hostować aplikację zaprojektowaną do przechwytywania kodów autoryzacyjnych i żądania tokenów dostępu.
Rejestracja Aplikacji w Azure AD: Następnie atakujący rejestruje aplikację wielo-tenantową w swoim dzierżawcy Azure AD, nadając jej nazwę po docelowej firmie, aby wyglądała na legalną. Konfiguruje URL przekierowania aplikacji, aby wskazywał na subdomenę hostującą złośliwą aplikację.
Ustawienie Uprawnień: Atakujący ustawia aplikację z różnymi uprawnieniami API (np. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
). Te uprawnienia, po przyznaniu przez użytkownika, pozwalają atakującemu na wydobycie wrażliwych informacji w imieniu użytkownika.
Dystrybucja Złośliwych Linków: Atakujący tworzy link zawierający identyfikator klienta złośliwej aplikacji i dzieli się nim z docelowymi użytkownikami, oszukując ich, aby przyznali zgodę.
Zarejestruj nową aplikację. Może być tylko dla bieżącego katalogu, jeśli używasz użytkownika z zaatakowanego katalogu lub dla dowolnego katalogu, jeśli jest to atak zewnętrzny (jak na poniższym obrazku).
Ustaw również URI przekierowania na oczekiwaną URL, gdzie chcesz otrzymać kod do uzyskania tokenów (http://localhost:8000/callback
domyślnie).
Następnie utwórz tajny klucz aplikacji:
Wybierz uprawnienia API (np. Mail.Read
, Notes.Read.All
, Files.ReadWrite.All
, User.ReadBasic.All
, User.Read
)
Wykonaj stronę internetową (azure_oauth_phishing_example), która prosi o uprawnienia:
Wyślij URL do ofiary
W tym przypadku http://localhost:8000
Ofiary muszą zaakceptować monit:
Użyj tokena dostępu, aby uzyskać żądane uprawnienia:
365-Stealer: Sprawdź https://www.alteredsecurity.com/post/introduction-to-365-stealer, aby dowiedzieć się, jak go skonfigurować.
W zależności od żądanych uprawnień możesz być w stanie uzyskać dostęp do różnych danych najemcy (lista użytkowników, grup... lub nawet modyfikować ustawienia) oraz informacji o użytkowniku (pliki, notatki, e-maile...). Następnie możesz wykorzystać te uprawnienia do wykonania tych działań.
Sprawdź sekcje Aplikacje i Główne zasady usługi na stronie:
Az - EntraID PrivescUcz 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)