Azure Pentesting
NADAL BUDUJĘ METODOLOGIĘ AZURE
Podstawowe informacje
Az - Basic InformationMetodologia Pentestera/Red Team w Azure
Aby audytować środowisko AZURE, bardzo ważne jest, aby wiedzieć: które usługi są używane, co jest eksponowane, kto ma dostęp do czego i jak są połączone wewnętrzne usługi Azure oraz usługi zewnętrzne.
Z punktu widzenia Red Team, pierwszym krokiem do skompromitowania środowiska Azure jest uzyskanie jakichś poświadczeń dla Azure AD. Oto kilka pomysłów, jak to zrobić:
Wycieki w githubie (lub podobnych) - OSINT
Inżynieria społeczna
Ponowne użycie haseł (wycieki haseł)
Luki w aplikacjach hostowanych w Azure
Server Side Request Forgery z dostępem do punktu końcowego metadanych
Odczyt lokalnych plików
/home/USERNAME/.azure
C:\Users\USERNAME\.azure
Plik
accessTokens.json
waz cli
przed 2.30 - styczeń 2022 - przechowywał tokeny dostępu w czystym tekściePlik
azureProfile.json
zawiera informacje o zalogowanym użytkowniku.az logout
usuwa token.Starsze wersje
Az PowerShell
przechowywały tokeny dostępu w czystym tekście wTokenCache.dat
. Przechowuje również ServicePrincipalSecret w czystym tekście wAzureRmContext.json
. CmdletSave-AzContext
może być użyty do przechowywania tokenów. UżyjDisconnect-AzAccount
, aby je usunąć.Naruszenia przez osoby trzecie
Wewnętrzny pracownik
Typowe Phishing (poświadczenia lub aplikacja Oauth)
Nawet jeśli nie skompromitowałeś żadnego użytkownika w tenant Azure, który atakujesz, możesz zgromadzić pewne informacje z niego:
Az - Unauthenticated Enum & Initial EntryPo uzyskaniu poświadczeń musisz wiedzieć do kogo należą te poświadczenia i do czego mają dostęp, więc musisz przeprowadzić podstawową enumerację:
Podstawowa enumeracja
Pamiętaj, że najgłośniejszą częścią enumeracji jest logowanie, a nie sama enumeracja.
SSRF
Jeśli znalazłeś SSRF na maszynie w Azure, sprawdź tę stronę po triki:
Ominięcie warunków logowania
W przypadkach, gdy masz jakieś ważne poświadczenia, ale nie możesz się zalogować, oto kilka powszechnych zabezpieczeń, które mogą być wprowadzone:
Biała lista IP -- Musisz skompromitować ważny adres IP
Ograniczenia geograficzne -- Znajdź, gdzie mieszka użytkownik lub gdzie znajdują się biura firmy i uzyskaj adres IP z tego samego miasta (lub przynajmniej kraju)
Przeglądarka -- Może tylko przeglądarka z określonego systemu operacyjnego (Windows, Linux, Mac, Android, iOS) jest dozwolona. Dowiedz się, z jakiego systemu operacyjnego korzysta ofiara/firmy.
Możesz również spróbować skompromitować poświadczenia Service Principal, ponieważ zazwyczaj są mniej ograniczone, a ich logowanie jest mniej kontrolowane.
Po ominięciu tego, możesz być w stanie wrócić do swojego początkowego ustawienia i nadal mieć dostęp.
Przejęcie subdomeny
Whoami
Dowiedz się jak zainstalować az cli, AzureAD i Az PowerShell w sekcji Az - AzureAD.
Jedną z pierwszych rzeczy, które musisz wiedzieć, jest kim jesteś (w jakim środowisku się znajdujesz):
Jednym z najważniejszych poleceń do enumeracji Azure jest Get-AzResource
z Az PowerShell, ponieważ pozwala poznać zasoby, które są widoczne dla twojego aktualnego użytkownika.
Możesz uzyskać te same informacje w konsoli internetowej, przechodząc do https://portal.azure.com/#view/HubsExtension/BrowseAll lub wyszukując "Wszystkie zasoby"
Enumeracja AzureAD
Domyślnie każdy użytkownik powinien mieć wystarczające uprawnienia do enumeracji takich rzeczy jak użytkownicy, grupy, role, zasady usług... (sprawdź domyślne uprawnienia AzureAD). Możesz tutaj znaleźć przewodnik:
Az - AzureAD (AAD)Teraz, gdy masz pewne informacje o swoich poświadczeniach (i jeśli jesteś w red team, miejmy nadzieję, że nie zostałeś wykryty). Czas dowiedzieć się, które usługi są używane w środowisku. W następnej sekcji możesz sprawdzić kilka sposobów na enumerację niektórych powszechnych usług.
Zasada dostępu i tożsamość usługi
Usługa Azure może mieć tożsamość systemową (samej usługi) lub używać tożsamości zarządzanej przypisanej do użytkownika. Ta tożsamość może mieć zasady dostępu do, na przykład, KeyVault w celu odczytu sekretów. Te zasady dostępu powinny być ograniczone (zasada najmniejszych uprawnień), ale mogą mieć więcej uprawnień niż wymagane. Typowo usługa App Service używa KeyVault do pobierania sekretów i certyfikatów.
Dlatego warto zbadać te tożsamości.
App Service SCM
Konsola Kudu do logowania się do 'kontenera' App Service.
Webshell
Użyj portal.azure.com i wybierz powłokę, lub użyj shell.azure.com, aby uzyskać dostęp do bash lub powershell. 'Dysk' tej powłoki jest przechowywany jako plik obrazu w koncie magazynu.
Azure DevOps
Azure DevOps jest oddzielony od Azure. Ma repozytoria, potoki (yaml lub release), tablice, wiki i inne. Grupy zmiennych są używane do przechowywania wartości zmiennych i sekretów.
Narzędzia do automatycznego rekonesansu
Last updated