Azure Pentesting
WCIĄŻ BUDUJĘ METODOLOGIĘ AZURE
Podstawowe informacje
pageAz - Basic InformationMetodologia testera penetracyjnego/Red Teamu Azure
Aby przeprowadzić audyt środowiska AZURE, bardzo ważne jest poznanie: jakie 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 Teamu, 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 podobne) - OSINT
Inżynieria społeczna
Ponowne użycie hasła (wycieki haseł)
Luki w aplikacjach hostowanych w Azure
Server Side Request Forgery z dostępem do punktu końcowego metadanych
Odczyt lokalnego pliku
/home/NAZWA_UŻYTKOWNIKA/.azure
C:\Users\NAZWA_UŻYTKOWNIKA\.azure
Plik
accessTokens.json
waz cli
przed wersją 2.30 - styczeń 2022 - przechowywał tokeny dostępu w postaci tekstu jawnegoPlik
azureProfile.json
zawiera informacje o zalogowanym użytkowniku.az logout
usuwa token.Starsze wersje
Az PowerShell
przechowywały tokeny dostępu w postaci tekstu jawnego wTokenCache.dat
. Przechowuje również ServicePrincipalSecret w postaci tekstu jawnego wAzureRmContext.json
. PolecenieSave-AzContext
może być użyte do przechowywania tokenów. UżyjDisconnect-AzAccount
, aby je usunąć.Firmy naruszone
Wewnętrzny pracownik
Powszechne Phishing (poświadczenia lub aplikacja Oauth)
Nawet jeśli nie skompromitowałeś żadnego użytkownika w atakowanym najemcy Azure, możesz zdobyć pewne informacje z niego:
pageAz - Unauthenticated Enum & Initial EntryPo uzyskaniu poświadczeń musisz wiedzieć, do kogo należą te poświadczenia, i do czego mają dostęp, dlatego musisz przeprowadzić podstawową enumerację:
Podstawowa enumeracja
Pamiętaj, że najbardziej hałaśliwą częścią enumeracji jest logowanie, a nie sama enumeracja.
SSRF
Jeśli znalazłeś SSRF w maszynie wewnątrz Azure, sprawdź tę stronę z trikami:
Ominięcie Warunków Logowania
W przypadkach, gdy masz pewne ważne poświadczenia, ale nie możesz się zalogować, mogą być stosowane pewne powszechne zabezpieczenia:
Biała lista IP -- Musisz skompromitować ważne IP
Ograniczenia geograficzne -- Znajdź, gdzie mieszka użytkownik lub gdzie są biura firmy i uzyskaj IP z tego samego miasta (lub przynajmniej kraju)
Przeglądarka -- Być może dozwolona jest tylko przeglądarka z określonego systemu operacyjnego (Windows, Linux, Mac, Android, iOS). Dowiedz się, który system operacyjny używa ofiara/firma.
Możesz również spróbować skompromitować poświadczenia Service Principal, ponieważ zazwyczaj są one mniej ograniczone, a ich logowanie jest rzadziej sprawdzane
Po ominięciu tego, możesz być w stanie wrócić do 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):
AzureAD Enumeration
User Enumeration
To enumerate users in AzureAD, you can use tools like Azure AD Connect
or Azure AD Graph API
. These tools can help you gather information about users, such as usernames, email addresses, and group memberships.
Group Enumeration
For enumerating groups in AzureAD, tools like Azure AD Graph API
or Azure Portal
can be used. By querying the API or using the Azure Portal, you can retrieve information about groups, including group names, descriptions, and members.
Device Enumeration
To enumerate devices in AzureAD, tools like Azure AD Graph API
or Azure Portal
can be utilized. These tools allow you to gather information about devices registered in AzureAD, such as device names, types, and associated users.
Application Enumeration
For enumerating applications in AzureAD, you can use tools like Azure AD Graph API
or Azure Portal
. By querying the API or accessing the Azure Portal, you can retrieve details about applications registered in AzureAD, including names, owners, and permissions.
Service Principal Enumeration
To enumerate service principals in AzureAD, tools like Azure AD Graph API
or Azure Portal
can be employed. By querying the API or using the Azure Portal, you can collect information about service principals, such as names, application IDs, and permissions.
Role Enumeration
For enumerating roles in AzureAD, tools like Azure AD Graph API
or Azure Portal
can be helpful. These tools enable you to retrieve information about roles defined in AzureAD, including role names, descriptions, and assigned members.
Policy Enumeration
To enumerate policies in AzureAD, tools like Azure AD Graph API
or Azure Portal
can be used. By querying the API or accessing the Azure Portal, you can gather information about policies configured in AzureAD, such as policy names, settings, and assigned users or groups.
Privileged Identity Management (PIM) Enumeration
For enumerating privileged roles and users using PIM in AzureAD, you can utilize tools like Azure Portal
or PowerShell
. These tools allow you to view and manage privileged roles and users, including information about role assignments, activation, and approval workflows.
Azure PowerShell
Azure PowerShell to zestaw poleceń do zarządzania zasobami w chmurze za pomocą poleceń PowerShell. Umożliwia automatyzację zadań i skryptowanie operacji w środowisku Azure.
Instalacja Azure PowerShell
Aby zainstalować Azure PowerShell, wykonaj następujące polecenia:
Konfiguracja połączenia
Po zainstalowaniu Azure PowerShell, użyj polecenia Connect-AzAccount
do uwierzytelnienia się i połączenia z Twoim kontem Azure.
Podstawowe polecenia
Get-AzResource
: Pobiera zasoby z subskrypcji.New-AzResourceGroup
: Tworzy nową grupę zasobów.Set-AzVM
: Konfiguruje maszynę wirtualną.
Więcej informacji na temat poleceń Azure PowerShell można znaleźć w dokumentacji Microsoftu.
Jedną z najważniejszych komend do wyliczenia zasobów w Azure jest Get-AzResource
z Az PowerShell, ponieważ pozwala ona sprawdzić zasoby, które są widoczne dla bieżącego użytkownika.
Możesz uzyskać te same informacje w konsoli internetowej, przechodząc pod https://portal.azure.com/#view/HubsExtension/BrowseAll lub szukając "All resources".
Wyliczanie AzureAD
Domyślnie każdy użytkownik powinien mieć wystarczające uprawnienia do wyliczenia takich rzeczy jak użytkownicy, grupy, role, podmioty usług... (sprawdź domyślne uprawnienia AzureAD). Tutaj znajdziesz przewodnik:
pageAz - AzureAD (AAD)Teraz, gdy masz pewne informacje o swoich poświadczeniach (i jeśli jesteś czerwoną drużyną, miejmy nadzieję, że nie zostałeś wykryty). Nadszedł czas, aby dowiedzieć się, które usługi są używane w środowisku. W następnej sekcji możesz sprawdzić kilka sposobów wyliczenia niektórych powszechnych usług.
Identyfikator usługi i polityka dostępu
Usługa Azure może mieć Identyfikator Systemowy (samej usługi) lub korzystać z Przypisanego Identyfikatora Zarządzanego Użytkownika. Ten Identyfikator może mieć Politykę Dostępu do, na przykład, KeyVault do odczytu tajemnic. Te Polityki Dostępu powinny być ograniczone (z zasady najmniejszych uprawnień), ale mogą mieć więcej uprawnień niż wymagane. Typowo usługa aplikacji używa KeyVault do pobierania tajemnic i certyfikatów.
Dlatego warto zbadać te tożsamości.
Konsola SCM usługi aplikacji
Konsola Kudu do zalogowania się do 'kontenera' usługi aplikacji.
Powłoka internetowa
Użyj portal.azure.com i wybierz powłokę, lub użyj shell.azure.com, aby uzyskać dostęp do basha lub powershella. 'Dysk' tej powłoki jest przechowywany jako plik obrazu w koncie przechowywania.
Azure DevOps
Azure DevOps jest oddzielony od Azure. Posiada repozytoria, potoki (yaml lub wydanie), tablice, wiki i wiele innych. Grupy zmiennych są używane do przechowywania wartości zmiennych i tajemnic.
Automatyczne narzędzia rozpoznawcze
Last updated