Az - Unauthenticated Enum & Initial Entry
Azure Tenant
Enumeracja Tenantów
Istnieją publiczne interfejsy API Azure, które znając jedynie domenę tenantów, atakujący może zapytać, aby uzyskać więcej informacji na ich temat. Możesz zapytać bezpośrednio API lub skorzystać z biblioteki PowerShell AADInternals:
API | Informacje | Funkcja AADInternals |
---|---|---|
login.microsoftonline.com/<domain>/.well-known/openid-configuration | Informacje logowania, w tym identyfikator tenantów |
|
autodiscover-s.outlook.com/autodiscover/autodiscover.svc | Wszystkie domeny tenantów |
|
login.microsoftonline.com/GetUserRealm.srf?login=<UserName> | Informacje logowania tenantów, w tym nazwa tenantów i domena typu uwierzytelniania.
Jeśli |
|
login.microsoftonline.com/common/GetCredentialType | Informacje logowania, w tym informacje o jednokrotnym logowaniu do pulpitu |
|
Możesz zapytać o wszystkie informacje dotyczące tenantów Azure za pomocą tylko jednej komendy z biblioteki AADInternals:
Przykładowy wynik informacji o dzierżawcy Azure:
Możliwe jest obserwowanie szczegółów dotyczących nazwy, identyfikatora i nazwy "marki" najemcy. Dodatkowo wyświetlany jest status funkcji Jednokrotnego Logowania do Pulpitu (SSO), znanej również jako Seamless SSO. Gdy jest włączona, ta funkcja ułatwia określenie obecności (enumeracji) określonego użytkownika w organizacji docelowej.
Co więcej, wynik prezentuje nazwy wszystkich zweryfikowanych domen powiązanych z docelowym najemcą, wraz z odpowiadającymi im typami tożsamości. W przypadku domen federowanych ujawniany jest również Pełna Nazwa Domeny (FQDN) dostawcy tożsamości używanego, zazwyczaj serwera ADFS. Kolumna "MX" określa, czy e-maile są kierowane do Exchange Online, podczas gdy kolumna "SPF" oznacza wymienienie Exchange Online jako nadawcy e-maili. Warto zauważyć, że obecna funkcja rozpoznawania nie analizuje instrukcji "include" w rekordach SPF, co może prowadzić do fałszywych negatywów.
Enumeracja Użytkowników
Możliwe jest sprawdzenie, czy nazwa użytkownika istnieje wewnątrz najemcy. Dotyczy to również użytkowników gości, których nazwa użytkownika ma format:
Adres e-mail to adres e-mail użytkownika, w którym znak „@” został zastąpiony podkreśleniem „_“.
Z AADInternals łatwo sprawdzisz, czy użytkownik istnieje, czy nie:
Nieskategoryzowane: Wyliczanie i Początkowe Wejście
W tym module dowiesz się, jak przeprowadzić wyliczanie informacji i uzyskać początkowy dostęp do zasobów Azure bez uwierzytelnienia. To obejmuje wykorzystanie publicznie dostępnych informacji, takich jak subdomeny, adresy IP, nazwy kontenerów i wiele innych, aby zebrać istotne informacje i znaleźć potencjalne wejścia do ataku.
Możesz również użyć pliku tekstowego zawierającego jeden adres e-mail na wiersz:
Istnieją trzy różne metody wyliczania do wyboru:
Metoda | Opis |
---|---|
Normal | Odnosi się to do wspomnianego powyżej interfejsu API GetCredentialType. Metoda domyślna. |
Login | Ta metoda próbuje zalogować się jako użytkownik. Uwaga: zapytania zostaną zapisane w dzienniku logowań logowań. |
Autologon | Ta metoda próbuje zalogować się jako użytkownik za pomocą punktu końcowego autologowania. Zapytania nie są rejestrowane w dzienniku logowań logowań! Dlatego dobrze działa również dla ataków typu password spray i brute-force. |
Po odkryciu prawidłowych nazw użytkowników możesz uzyskać informacje o użytkowniku za pomocą:
Skrypt o365creeper pozwala również odkryć, czy adres e-mail jest poprawny.
Wymienianie użytkowników za pomocą Microsoft Teams
Kolejnym dobrym źródłem informacji jest Microsoft Teams.
API Microsoft Teams umożliwia wyszukiwanie użytkowników. W szczególności punkty końcowe "wyszukiwanie użytkowników" externalsearchv3 i searchUsers mogą być używane do żądania ogólnych informacji o kontach użytkowników zarejestrowanych w Teams.
W zależności od odpowiedzi API można odróżnić między nieistniejącymi użytkownikami a istniejącymi użytkownikami posiadającymi ważną subskrypcję Teams.
Skrypt TeamsEnum może być użyty do sprawdzenia określonego zestawu nazw użytkowników w stosunku do API Teams.
Nieskategoryzowane: Wyliczanie i Początkowe Wejście
W tym module omówimy techniki wyliczania informacji i początkowego dostępu bez uwierzytelnienia. To obejmuje identyfikację publicznie dostępnych zasobów, wykorzystanie niezabezpieczonych interfejsów API, przeglądanie publicznie dostępnych repozytoriów kodu źródłowego, oraz inne techniki pozwalające na zdobycie informacji lub dostęp do systemu bez konieczności posiadania poprawnych danych uwierzytelniających.
Ponadto istnieje możliwość wyliczenia informacji o dostępności istniejących użytkowników, takich jak:
Dostępny
Z dala
Nie przeszkadzać
Zajęty
Offline
Jeśli skonfigurowano wiadomość o nieobecności, możliwe jest również pobranie tej wiadomości za pomocą TeamsEnum. Jeśli określono plik wyjściowy, wiadomości o nieobecności są automatycznie przechowywane w pliku JSON:
Nieuweryfikowana enumeracja i początkowe wejście
W przypadku braku autoryzacji, atakujący może wykorzystać różne techniki do zbierania informacji i uzyskiwania dostępu do zasobów w chmurze. Poniżej znajdują się niektóre z tych technik:
Enumeracja usług
Atakujący może przeprowadzić enumerację usług chmurowych, takich jak Storage Accounts, Databases, Key Vaults, czy Virtual Machines, aby zebrać informacje na temat dostępnych zasobów.
Skanowanie otwartych portów
Wykorzystując narzędzia do skanowania portów, atakujący może identyfikować otwarte porty na maszynach w chmurze, co może pomóc w określeniu potencjalnych wektorów ataku.
Analiza konfiguracji
Analiza konfiguracji zasobów chmurowych może ujawnić słabe punkty, takie jak niewłaściwe ustawienia uprawnień dostępu czy niezabezpieczone dane, które mogą zostać wykorzystane do uzyskania nieautoryzowanego dostępu.
Próby ataków słownikowych
Atakujący może przeprowadzać próby ataków słownikowych na interfejsy API lub panele logowania, aby uzyskać dostęp do kont użytkowników lub kluczy API.
Wykorzystanie luk w zabezpieczeniach
Wykorzystując znalezione luki w zabezpieczeniach, atakujący może zdobyć dostęp do poufnych danych lub uzyskać kontrolę nad zasobami w chmurze.
Usługi Azure
Teraz, gdy znamy domeny, których używa najemca Azure, czas spróbować znaleźć odsłonięte usługi Azure.
Możesz skorzystać z metody z MicroBust w celu osiągnięcia tego celu. Ta funkcja będzie przeszukiwać nazwę domeny podstawowej (oraz kilka permutacji) w kilku domenach usług Azure:
Otwarte magazynowanie
Możesz odkryć otwarte magazynowanie za pomocą narzędzia takiego jak InvokeEnumerateAzureBlobs.ps1, które będzie używać pliku Microburst/Misc/permitations.txt
do generowania permutacji (bardzo proste) w celu znalezienia otwartych kont magazynowych.
URL SAS
Wspólny podpis dostępu (SAS) to URL, który zapewnia dostęp do określonej części konta Storage (może to być pełny kontener, plik...) z określonymi uprawnieniami (odczyt, zapis...) do zasobów. Jeśli znajdziesz wyciekły, możesz uzyskać dostęp do poufnych informacji, wyglądają one tak (to jest dostęp do kontenera, jeśli dotyczył tylko pliku, ścieżka URL również zawierałaby ten plik):
https://<nazwa_konta_storage>.blob.core.windows.net/nowykontener?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D
Użyj Storage Explorer, aby uzyskać dostęp do danych
Skompromitowane Dane Logowania
Phishing
Powszechne Phishing (dane logowania lub OAuth App -Atak Illegitymnej Zgody-)
Spraying Hasła / Bruteforce
pageAz - Password SprayingOdnośniki
Last updated