Azure Pentesting
ICH BAUE NOCH AN DER AZURE-METHODOLOGIE
Grundlegende Informationen
Az - Basic InformationAzure Pentester/Red Team Methodologie
Um eine AZURE-Umgebung zu prüfen, ist es sehr wichtig zu wissen: welche Dienste verwendet werden, was exponiert wird, wer Zugriff auf was hat und wie interne Azure-Dienste und externe Dienste verbunden sind.
Aus der Sicht eines Red Teams ist der erste Schritt, eine Azure-Umgebung zu kompromittieren, einige Anmeldeinformationen für Azure AD zu erhalten. Hier sind einige Ideen, wie man das erreichen kann:
Leaks in GitHub (oder ähnliches) - OSINT
Social Engineering
Passwort-Wiederverwendung (Passwort-Leaks)
Schwachstellen in Azure-gehosteten Anwendungen
Server Side Request Forgery mit Zugriff auf den Metadata-Endpunkt
Lokales Datei-Lesen
/home/USERNAME/.azure
C:\Users\USERNAME\.azure
Die Datei
accessTokens.json
inaz cli
vor 2.30 - Jan2022 - speicherte Zugriffstoken im KlartextDie Datei
azureProfile.json
enthält Informationen über den angemeldeten Benutzer.az logout
entfernt das Token.Ältere Versionen von
Az PowerShell
speicherten Zugriffstoken im Klartext inTokenCache.dat
. Sie speicherten auch ServicePrincipalSecret im Klartext inAzureRmContext.json
. Das CmdletSave-AzContext
kann verwendet werden, um Token zu speichern. VerwendeDisconnect-AzAccount
, um sie zu entfernen.3rd Parties kompromittiert
Interner Mitarbeiter
Common Phishing (Anmeldeinformationen oder Oauth-App)
Auch wenn du keinen Benutzer innerhalb des Azure-Mandanten, den du angreifst, kompromittiert hast, kannst du einige Informationen daraus sammeln:
Az - Unauthenticated Enum & Initial EntryNachdem du Anmeldeinformationen erhalten hast, musst du wissen, zu wem diese Anmeldeinformationen gehören und worauf sie Zugriff haben, daher musst du einige grundlegende Aufzählungen durchführen:
Grundlegende Aufzählung
Denke daran, dass der lauteste Teil der Aufzählung das Login ist, nicht die Aufzählung selbst.
SSRF
Wenn du eine SSRF in einer Maschine innerhalb von Azure gefunden hast, überprüfe diese Seite für Tricks:
Login-Bedingungen umgehen
In Fällen, in denen du einige gültige Anmeldeinformationen hast, dich aber nicht anmelden kannst, sind dies einige häufige Schutzmaßnahmen, die vorhanden sein könnten:
IP-Whitelisting -- Du musst eine gültige IP kompromittieren
Geo-Beschränkungen -- Finde heraus, wo der Benutzer lebt oder wo die Büros des Unternehmens sind und besorge dir eine IP aus derselben Stadt (oder zumindest aus dem Land)
Browser -- Vielleicht ist nur ein Browser von einem bestimmten Betriebssystem (Windows, Linux, Mac, Android, iOS) erlaubt. Finde heraus, welches Betriebssystem das Opfer/Unternehmen verwendet.
Du kannst auch versuchen, Service Principal-Anmeldeinformationen zu kompromittieren, da diese normalerweise weniger eingeschränkt sind und deren Login weniger überprüft wird
Nachdem du es umgangen hast, kannst du möglicherweise zu deinem ursprünglichen Setup zurückkehren und hast weiterhin Zugriff.
Subdomain-Übernahme
Whoami
Lerne wie man az cli, AzureAD und Az PowerShell in der Az - AzureAD Sektion installiert.
Eines der ersten Dinge, die du wissen musst, ist wer du bist (in welcher Umgebung du dich befindest):
Einer der wichtigsten Befehle zur Aufzählung von Azure ist Get-AzResource
aus Az PowerShell, da er Ihnen ermöglicht, die Ressourcen zu kennen, über die Ihr aktueller Benutzer Sichtbarkeit hat.
Sie können die gleichen Informationen in der Webkonsole erhalten, indem Sie zu https://portal.azure.com/#view/HubsExtension/BrowseAll gehen oder nach "Alle Ressourcen" suchen.
AzureAD-Aufzählung
Standardmäßig sollte jeder Benutzer ausreichende Berechtigungen haben, um Dinge wie Benutzer, Gruppen, Rollen, Dienstprinzipale usw. aufzulisten (siehe Standard AzureAD-Berechtigungen). Hier finden Sie eine Anleitung:
Az - AzureAD (AAD)Nun, da Sie einige Informationen über Ihre Anmeldeinformationen haben (und wenn Sie ein Red Team sind, hoffentlich nicht entdeckt wurden). Es ist an der Zeit herauszufinden, welche Dienste in der Umgebung verwendet werden. Im folgenden Abschnitt können Sie einige Möglichkeiten zur Aufzählung einiger gängiger Dienste überprüfen.
Dienstprinzipal und Zugriffsrichtlinie
Ein Azure-Dienst kann eine Systemidentität (des Dienstes selbst) haben oder eine Benutzerzugewiesene Verwaltete Identität verwenden. Diese Identität kann eine Zugriffsrichtlinie haben, um beispielsweise auf einen KeyVault zuzugreifen, um Geheimnisse zu lesen. Diese Zugriffsrichtlinien sollten eingeschränkt sein (Prinzip des geringsten Privilegs), könnten jedoch mehr Berechtigungen haben als erforderlich. Typischerweise würde ein App-Dienst KeyVault verwenden, um Geheimnisse und Zertifikate abzurufen.
Daher ist es nützlich, diese Identitäten zu erkunden.
App Service SCM
Kudu-Konsole, um sich beim App Service 'Container' anzumelden.
Webshell
Verwenden Sie portal.azure.com und wählen Sie die Shell aus, oder verwenden Sie shell.azure.com für eine Bash- oder PowerShell. Die 'Festplatte' dieser Shell wird als Image-Datei in einem Speicher-Account gespeichert.
Azure DevOps
Azure DevOps ist getrennt von Azure. Es hat Repositories, Pipelines (yaml oder Release), Boards, Wiki und mehr. Variable Groups werden verwendet, um Variablenwerte und Geheimnisse zu speichern.
Automatisierte Recon-Tools
Last updated