GCP Pentesting
Grundlegende Informationen
Bevor Sie mit dem Pentesting einer GCP-Umgebung beginnen, gibt es einige Grundlagen, die Sie kennen müssen, wie es funktioniert, um Ihnen zu helfen zu verstehen, was Sie tun müssen, wie Sie Misskonfigurationen finden und wie Sie sie ausnutzen können.
Konzepte wie Organisationshierarchie, Berechtigungen und andere grundlegende Konzepte werden erklärt in:
pageGCP - Basic InformationLernlabore
GCP Pentester/Red Team Methodik
Um eine GCP-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 GCP-Dienste mit externen Diensten verbunden sind.
Aus der Sicht eines Red Teams ist der erste Schritt zur Kompromittierung einer GCP-Umgebung, einige Anmeldeinformationen zu erhalten. Hier sind einige Ideen, wie Sie das erreichen können:
Lecks in GitHub (oder ähnlich) - OSINT
Social Engineering (Überprüfen Sie die Seite Workspace Security)
Passwort-Wiederverwendung (Passwortlecks)
Schwachstellen in GCP-gehosteten Anwendungen
Serverseitige Anforderungsfälschung mit Zugriff auf Metadaten-Endpunkt
Lokales Dateilesen
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
Parteien gehackt
Interne Mitarbeiter
Oder durch Kompromittierung eines unauthentifizierten Dienstes, der freigegeben ist:
pageGCP - Unauthenticated Enum & AccessOder wenn Sie eine Überprüfung durchführen, könnten Sie einfach um Anmeldeinformationen mit diesen Rollen bitten:
pageGCP - Permissions for a PentestNachdem Sie es geschafft haben, Anmeldeinformationen zu erhalten, müssen Sie wissen, wem diese Anmeldeinformationen gehören, und auf was sie Zugriff haben, daher müssen Sie eine grundlegende Aufzählung durchführen:
Grundlegende Aufzählung
SSRF
Für weitere Informationen darüber, wie Sie GCP-Metadaten aufzählen, überprüfen Sie die folgende Hacktricks-Seite:
Whoami
In GCP können Sie verschiedene Optionen ausprobieren, um herauszufinden, wer Sie sind:
Org Enumeration
Organisationen auflisten
Prinzipien & IAM-Aufzählung
Wenn Sie über ausreichende Berechtigungen verfügen, wird Ihnen das Überprüfen der Berechtigungen jeder Entität im GCP-Konto helfen zu verstehen, was Sie und andere Identitäten tun können und wie Sie Berechtigungen eskalieren können.
Wenn Sie nicht über ausreichende Berechtigungen zum Aufzählen von IAM verfügen, können Sie versuchen, sie bruteforce zu stehlen, um sie herauszufinden. Überprüfen Sie, wie die Aufzählung und das Brute-Forcing durchgeführt werden in:
pageGCP - IAM, Principals & Org Policies EnumNun, da Sie einige Informationen zu Ihren 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.
Dienste Aufzählung
GCP verfügt über eine erstaunliche Anzahl von Diensten, auf der folgenden Seite finden Sie Grundinformationen, Aufzählungs- Spickzettel, wie man Entdeckung vermeidet, Persistenz erlangt und andere Post-Exploitation-Tricks zu einigen von ihnen:
pageGCP - ServicesBeachten Sie, dass Sie nicht alle Arbeiten manuell durchführen müssen, weiter unten in diesem Beitrag finden Sie einen Abschnitt über automatische Tools.
Darüber hinaus haben Sie in diesem Stadium möglicherweise mehr Dienste entdeckt, die unauthentifizierten Benutzern ausgesetzt sind, die Sie möglicherweise ausnutzen können:
pageGCP - Unauthenticated Enum & AccessBerechtigungseskalation, Post-Exploitation & Persistenz
Der häufigste Weg, sobald Sie einige Cloud-Anmeldeinformationen erhalten haben oder einen Dienst kompromittiert haben, der in einer Cloud ausgeführt wird, besteht darin, falsch konfigurierte Berechtigungen des kompromittierten Kontos zu missbrauchen. Daher sollten Sie zuerst Ihre Berechtigungen aufzählen.
Während dieser Aufzählung sollten Sie sich daran erinnern, dass Berechtigungen auch auf der höchsten Ebene der "Organisation" festgelegt werden können.
pageGCP - Privilege EscalationpageGCP - Post ExploitationpageGCP - PersistenceÖffentlich zugängliche Dienste
Beim Aufzählen von GCP-Diensten haben Sie möglicherweise festgestellt, dass einige von ihnen 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 darauf finden können, da sie Ihnen möglicherweise weiteren Zugriff auf das AWS-Konto ermöglichen könnten.
In diesem Buch sollten Sie Informationen darüber finden, wie Sie exponierte GCP-Dienste finden und überprüfen können. Wie Sie Schwachstellen in exponierten Netzwerkdiensten finden, empfehle ich Ihnen, nach dem spezifischen Dienst unter folgendem Link zu suchen:
GCP <--> Workspace Pivoting
Das Kompromittieren von Prinzipalen in einer Plattform könnte einem Angreifer ermöglichen, die andere zu kompromittieren, überprüfen Sie dies unter:
pageGCP <--> Workspace PivotingAutomatische Tools
In 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 verwendet werden können, hier.
gcp_scanner: Dies ist ein GCP-Ressourcen-Scanner, der dabei helfen kann, festzustellen, welches Zugriffsniveau bestimmte Anmeldeinformationen auf GCP haben.
gcp_enum: Bash-Skript zur Auflistung einer GCP-Umgebung unter Verwendung von gcloud cli und Speicherung der Ergebnisse in einer Datei.
GCP-IAM-Privilege-Escalation: Skripte zur Auflistung hoher IAM-Berechtigungen und zum Eskalieren von Berechtigungen in GCP durch deren Missbrauch (Ich konnte das Auflistungsskript nicht ausführen).
gcloud Konfiguration & Debugging
Erfassen von gcloud, gsutil... Netzwerk
Denken Sie daran, dass Sie den Parameter --log-http
mit der gcloud
-Befehlszeile verwenden können, um die Anfragen anzuzeigen, die das Tool ausführt. Wenn Sie nicht möchten, dass die Protokolle den Tokenwert schwärzen, verwenden Sie gcloud config set log_http_redact_token false
Darüber hinaus, um die Kommunikation abzufangen:
OAuth-Token-Konfiguration in gcloud
Um einen extrahierten Dienstkonten-OAuth-Token vom Metadaten-Endpunkt zu verwenden, können Sie einfach Folgendes tun:
Referenzen
Last updated