Azure Pentesting
ICH BAUE IMMER NOCH AN DER AZURE-METHODOLOGIE
Grundlegende Informationen
pageAz - Basic InformationAzure Pentester/Red-Team-Methodik
Um eine AZURE-Umgebung zu überprüfen, ist es sehr wichtig zu wissen: welche Dienste verwendet werden, was offengelegt wird, wer auf was Zugriff hat und wie interne Azure-Dienste und externe Dienste verbunden sind.
Aus der Sicht eines Red Teams ist der erste Schritt zur Kompromittierung einer Azure-Umgebung, einige Anmeldeinformationen für Azure AD zu erhalten. Hier sind einige Ideen, wie Sie das erreichen können:
Lecks in GitHub (oder ähnlich) - OSINT
Social Engineering
Passwort-Wiederverwendung (Passwortlecks)
Schwachstellen in Azure-gehosteten Anwendungen
Serverseitige Anfragenfälschung mit Zugriff auf Metadaten-Endpunkt
Lokales Dateilesen
/home/BENUTZERNAME/.azure
C:\Benutzer\BENUTZERNAME\.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
. Es speichert auch ServicePrincipalSecret im Klartext inAzureRmContext.json
. Das CmdletSave-AzContext
kann verwendet werden, um Token zu speichern. Verwenden SieDisconnect-AzAccount
, um sie zu entfernen.Von Dritten gehackt
Interne Mitarbeiter
Gängiges Phishing (Anmeldeinformationen oder Oauth-App)
Auch wenn Sie keinen Benutzer innerhalb des von Ihnen angegriffenen Azure-Mandanten kompromittiert haben, können Sie einige Informationen daraus sammeln:
pageAz - Unauthenticated Enum & Initial EntryNachdem Sie es geschafft haben, Anmeldeinformationen zu erhalten, müssen Sie wissen, wem diese Anmeldeinformationen gehören, und worüber sie Zugriff haben, daher müssen Sie eine grundlegende Aufzählung durchführen:
Grundlegende Aufzählung
Denken Sie daran, dass der lauteste Teil der Aufzählung der Anmeldevorgang ist, nicht die Aufzählung selbst.
SSRF
Wenn Sie einen SSRF in einer Maschine innerhalb von Azure gefunden haben, überprüfen Sie diese Seite auf Tricks:
Umgehung von Anmeldebedingungen
In Fällen, in denen Sie gültige Anmeldeinformationen haben, sich jedoch nicht anmelden können, könnten diese gängigen Schutzmaßnahmen vorhanden sein:
IP-Whitelisting -- Sie müssen eine gültige IP kompromittieren
Geografische Einschränkungen -- Finden Sie heraus, wo der Benutzer lebt oder wo sich die Büros des Unternehmens befinden, und erhalten Sie eine IP aus derselben Stadt (oder zumindest demselben Land)
Browser -- Möglicherweise ist nur ein Browser aus einem bestimmten Betriebssystem (Windows, Linux, Mac, Android, iOS) zugelassen. Finden Sie heraus, welches Betriebssystem das Opfer/Unternehmen verwendet.
Sie können auch versuchen, Service-Principal-Anmeldeinformationen zu kompromittieren, da sie normalerweise weniger eingeschränkt sind und deren Anmeldung weniger überprüft wird
Nachdem Sie es umgangen haben, könnten Sie zu Ihrem ursprünglichen Setup zurückkehren und immer noch Zugriff haben.
Subdomain Takeover
Wer bin ich
Erfahren Sie, wie Sie az cli, AzureAD und Az PowerShell in der Az - AzureAD Sektion installieren.
Eine der ersten Dinge, die Sie wissen müssen, ist, wer Sie sind (in welcher Umgebung Sie sich befinden):
Azure AD Enumeration
User Enumeration
Azure AD user enumeration can be performed using the Graph API. By making requests to the /users
endpoint, an attacker can gather information about users in the Azure AD tenant. This information can include user IDs, usernames, email addresses, and other details that can be useful for further attacks.
Group Enumeration
Similarly, group enumeration can be done by querying the /groups
endpoint in the Graph API. This can provide an attacker with a list of groups in the Azure AD tenant, including group names, IDs, and members. Understanding the group structure can help an attacker identify high-privileged groups or groups with sensitive information.
Application Enumeration
By querying the /applications
endpoint in the Graph API, an attacker can enumerate applications registered in the Azure AD tenant. This can reveal details about the applications, such as IDs, names, owners, and permissions. Understanding the applications in use can help an attacker identify potential entry points or misconfigurations.
Service Principal Enumeration
Service principals represent the applications and services that are authorized to access resources in a specific Azure AD tenant. By querying the /servicePrincipals
endpoint, an attacker can enumerate these service principals and gather information about their permissions and configurations. This can help identify potential misconfigurations or weak points in the Azure AD tenant.
Device Enumeration
Querying the /devices
endpoint in the Graph API allows an attacker to enumerate devices registered in the Azure AD tenant. This can include information about device IDs, names, types, and owners. Understanding the devices registered in the tenant can help an attacker identify potential targets for attacks, such as compromised or high-privileged devices.
Recommendations
Implement strong access controls and least privilege principles to limit the exposure of sensitive information.
Regularly review and audit Azure AD configurations, including users, groups, applications, service principals, and devices.
Monitor Azure AD logs for suspicious activities, such as multiple failed enumeration attempts or unauthorized access to sensitive resources.
Enable multi-factor authentication (MFA) for all users to add an extra layer of security to Azure AD accounts.
Keep all Azure AD components, including applications and service principals, up to date with the latest security patches and configurations.
Azure PowerShell
Azure PowerShell ist ein leistungsstarkes Skripting-Tool, das es Ihnen ermöglicht, Azure-Ressourcen zu verwalten und zu automatisieren. Es bietet eine Vielzahl von Cmdlets, mit denen Sie verschiedene Aufgaben in Ihrer Azure-Umgebung ausführen können. Sie können Azure PowerShell verwenden, um virtuelle Maschinen bereitzustellen, Ressourcengruppen zu verwalten, Netzwerkeinstellungen zu konfigurieren und vieles mehr.
Installation von Azure PowerShell
Um Azure PowerShell zu verwenden, müssen Sie es zuerst installieren. Sie können es entweder über den PowerShell Gallery oder das Web Platform Installer installieren. Stellen Sie sicher, dass Sie die neueste Version von Azure PowerShell verwenden, um von den neuesten Funktionen und Verbesserungen zu profitieren.
Verbindung mit Ihrem Azure-Konto
Sobald Azure PowerShell installiert ist, können Sie eine Verbindung mit Ihrem Azure-Konto herstellen, um auf Ihre Azure-Ressourcen zuzugreifen. Verwenden Sie das Connect-AzAccount
-Cmdlet, um sich anzumelden und eine Verbindung herzustellen. Geben Sie Ihre Anmeldeinformationen ein, um sich bei Ihrem Azure-Konto anzumelden.
Verwalten von Azure-Ressourcen
Nachdem Sie eine Verbindung hergestellt haben, können Sie mit Azure PowerShell verschiedene Aktionen ausführen, z. B. das Erstellen neuer Ressourcen, das Aktualisieren von Konfigurationen und das Überwachen des Status Ihrer Ressourcen. Verwenden Sie die verfügbaren Cmdlets, um Ihre Azure-Ressourcen effizient zu verwalten.
Azure PowerShell ist ein nützliches Tool für die Automatisierung von Azure-Aufgaben und die Verwaltung Ihrer Cloud-Ressourcen. Lernen Sie die verschiedenen Cmdlets und Funktionen kennen, um das Beste aus Azure PowerShell herauszuholen.
Einer der wichtigsten Befehle zur Auflistung von Azure ist Get-AzResource
von Az PowerShell, da er es Ihnen ermöglicht, die Ressourcen zu kennen, die Ihr aktueller Benutzer sehen kann.
Sie können dieselben Informationen auch in der Webkonsole abrufen, indem Sie zu https://portal.azure.com/#view/HubsExtension/BrowseAll gehen oder nach "Alle Ressourcen" suchen.
AzureAD Enumeration
Standardmäßig sollte jeder Benutzer ausreichende Berechtigungen haben, um Dinge wie Benutzer, Gruppen, Rollen, Dienstprinzipale usw. aufzulisten (überprüfen Sie Standardberechtigungen von AzureAD). Hier finden Sie eine Anleitung:
pageAz - AzureAD (AAD)Nun, da Sie einige Informationen zu Ihren Anmeldeinformationen haben (und wenn Sie ein Red-Team sind, hoffentlich nicht entdeckt wurden), ist es an der Zeit herauszufinden, welche Dienste in der Umgebung verwendet werden. Im folgenden Abschnitt können Sie einige Möglichkeiten finden, um einige gängige Dienste aufzulisten.
Service Principal 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 minimalen Rechts), 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 am App-Dienst-'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 Bilddatei in einem Speicherkonto gespeichert.
Azure DevOps
Azure DevOps ist separat von Azure. Es verfügt über Repositories, Pipelines (YAML oder Release), Boards, Wiki und mehr. Variable Gruppen werden verwendet, um Variablenwerte und Geheimnisse zu speichern.
Automatisierte Rekognoszierungs-Tools
Azucar ist ein Tool, das entwickelt wurde, um Sicherheitsprüfungen in Azure-Umgebungen durchzuführen. Es kann verwendet werden, um Sicherheitslücken in Azure-Implementierungen zu identifizieren und zu überprüfen. Das Tool bietet verschiedene Module, die spezifische Schwachstellen und Konfigurationsfehler abdecken. Es ist ein nützliches Werkzeug für Sicherheitsexperten, die Azure-Plattformen auf Schwachstellen überprüfen möchten.
Last updated