GCP Pentesting
Last updated
Last updated
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Bevor du mit dem Pentesting einer GCP-Umgebung beginnst, gibt es einige grundlegende Dinge, die du wissen musst, um zu verstehen, wie es funktioniert, was du tun musst, wie du Fehlkonfigurationen findest und wie du sie ausnutzen kannst.
Konzepte wie Organisation Hierarchie, Berechtigungen und andere grundlegende Konzepte werden erklärt in:
GCP - Basic InformationUm eine GCP-Umgebung zu auditieren, ist es sehr wichtig zu wissen: welche Dienste verwendet werden, was exponiert wird, wer Zugriff auf was hat und wie interne GCP-Dienste mit externen Diensten verbunden sind.
Aus der Sicht eines Red Teams ist der erste Schritt, um eine GCP-Umgebung zu kompromittieren, die Erlangung von Anmeldeinformationen. Hier sind einige Ideen, wie du das tun kannst:
Leaks in GitHub (oder ähnlichem) - OSINT
Soziale Ingenieurkunst (Überprüfe die Seite Workspace Security)
Passwort-Wiederverwendung (Passwortlecks)
Schwachstellen in GCP-gehosteten Anwendungen
Server Side Request Forgery mit Zugriff auf den Metadaten-Endpunkt
Lokales Datei Lesen
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
3rd Party gehackt
Interner Mitarbeiter
Oder durch Kompromittierung eines nicht authentifizierten Dienstes, der exponiert ist:
GCP - Unauthenticated Enum & AccessOder wenn du eine Überprüfung machst, könntest du einfach nach Anmeldeinformationen mit diesen Rollen fragen:
GCP - Permissions for a PentestNachdem du es geschafft hast, Anmeldeinformationen zu erhalten, musst du wissen, zu wem diese Anmeldeinformationen gehören, und auf was sie Zugriff haben, also musst du einige grundlegende Aufzählungen durchführen:
Für weitere Informationen darüber, wie man GCP-Metadaten auflistet, überprüfe die folgende Hacktricks-Seite:
In GCP kannst du mehrere Optionen ausprobieren, um zu erraten, wer du bist:
Sie können auch den API-Endpunkt /userinfo
verwenden, um weitere Informationen über den Benutzer zu erhalten:
Wenn Sie genügend Berechtigungen haben, wird das Überprüfen der Berechtigungen jeder Entität im GCP-Konto Ihnen helfen zu verstehen, was Sie und andere Identitäten tun können und wie Sie Berechtigungen eskalieren können.
Wenn Sie nicht genügend Berechtigungen haben, um IAM zu enumerieren, können Sie sie stehlen oder brute-forcen, um sie herauszufinden. Überprüfen Sie wie man die Enumeration und das Brute-Forcing durchführt in:
GCP - IAM, Principals & Org Policies EnumJetzt, da Sie einige Informationen über Ihre Anmeldeinformationen haben (und wenn Sie ein Red Team sind, hoffen wir, dass Sie 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 überprüfen, um einige gängige Dienste zu enumerieren.
GCP hat eine erstaunliche Anzahl von Diensten. Auf der folgenden Seite finden Sie grundlegende Informationen, Enumeration Cheatsheets, wie man Erkennung vermeidet, Persistenz erlangt und andere Post-Exploitation Tricks über einige von ihnen:
GCP - ServicesBeachten Sie, dass Sie nicht die gesamte Arbeit manuell durchführen müssen. Unten in diesem Beitrag finden Sie einen Abschnitt über automatische Tools.
Darüber hinaus könnten Sie in diesem Stadium weitere Dienste entdeckt haben, die für nicht authentifizierte Benutzer exponiert sind. Möglicherweise können Sie diese ausnutzen:
GCP - Unauthenticated Enum & AccessDer häufigste Weg, nachdem Sie einige Cloud-Anmeldeinformationen erhalten oder einen Dienst, der in der Cloud läuft, kompromittiert haben, besteht darin, fehlerhaft konfigurierte Berechtigungen des kompromittierten Kontos auszunutzen. Daher sollten Sie als erstes Ihre Berechtigungen enumerieren.
Darüber hinaus denken Sie während dieser Enumeration daran, dass Berechtigungen auch auf der höchsten Ebene der "Organisation" festgelegt werden können.
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistenceWährend Sie GCP-Dienste enumerieren, haben Sie möglicherweise einige gefunden, die Elemente ins Internet exponieren (VM/Container-Ports, Datenbanken oder Warteschlangendienste, Snapshots oder Buckets...). Als Pentester/Red Teamer sollten Sie immer überprüfen, ob Sie sensible Informationen / Schwachstellen auf ihnen finden können, da sie Ihnen weiteren Zugang zum AWS-Konto bieten könnten.
In diesem Buch sollten Sie Informationen darüber finden, wie man exponierte GCP-Dienste findet und wie man sie überprüft. Um Schwachstellen in exponierten Netzwerkdiensten zu finden, empfehle ich Ihnen, nach dem spezifischen Dienst zu suchen in:
Das Kompromittieren von Principals in einer Plattform könnte es einem Angreifer ermöglichen, die andere zu kompromittieren, überprüfen Sie es in:
GCP <--> Workspace PivotingIn der GCloud-Konsole, unter https://console.cloud.google.com/iam-admin/asset-inventory/dashboard können Sie Ressourcen und IAMs sehen, die von Projekten verwendet werden.
Hier können Sie die von dieser API unterstützten Assets sehen: https://cloud.google.com/asset-inventory/docs/supported-asset-types
Überprüfen Sie Tools, die in mehreren Clouds hier verwendet werden können.
gcp_scanner: Dies ist ein GCP-Ressourcenscanner, der helfen kann zu bestimmen, welches Zugriffslevel bestimmte Anmeldeinformationen auf GCP besitzen.
gcp_enum: Bash-Skript zur Aufzählung einer GCP-Umgebung mit gcloud cli und zum Speichern der Ergebnisse in einer Datei.
GCP-IAM-Privilege-Escalation: Skripte zur Aufzählung hoher IAM-Berechtigungen und zur Eskalation von Berechtigungen in GCP durch deren Missbrauch (ich konnte das Aufzählungsskript nicht ausführen).
BF My GCP Permissions: Skript zum Brute-Forcen Ihrer Berechtigungen.
Denken Sie daran, dass Sie den Parameter --log-http
mit der gcloud
CLI verwenden können, um die Anfragen anzuzeigen, die das Tool ausführt. Wenn Sie nicht möchten, dass die Protokolle den Token-Wert redigieren, verwenden Sie gcloud config set log_http_redact_token false
Darüber hinaus, um die Kommunikation abzufangen:
Um ein exfiltriertes Service-Account-OAuth-Token vom Metadaten-Endpunkt zu verwenden, können Sie einfach Folgendes tun:
Lerne & übe AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Lerne & übe GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)