# GCP - Privilegieneskalation {{#include ../../../banners/hacktricks-training.md}} ## Einführung in die GCP-Privilegieneskalation GCP hat, wie jede andere Cloud, einige **Prinzipien**: Benutzer, Gruppen und Dienstkonten sowie einige **Ressourcen** wie Compute Engine, Cloud Functions…\ Dann werden über Rollen **Berechtigungen diesen Prinzipien über die Ressourcen gewährt**. Dies ist der Weg, um die Berechtigungen, die ein Prinzip über eine Ressource in GCP hat, zu spezifizieren.\ Es gibt bestimmte Berechtigungen, die es einem Benutzer ermöglichen, **noch mehr Berechtigungen** über die Ressource oder Drittanbieter-Ressourcen zu erhalten, und das nennt man **Privilegieneskalation** (auch die Ausnutzung von Schwachstellen, um mehr Berechtigungen zu erhalten). Daher möchte ich die Techniken zur Privilegieneskalation in GCP in **2 Gruppen** unterteilen: - **Privesc zu einem Prinzip**: Dies ermöglicht es Ihnen, **ein anderes Prinzip zu impersonifizieren** und somit wie es mit all seinen Berechtigungen zu handeln. z.B.: Missbrauch von _getAccessToken_, um ein Dienstkonto zu impersonifizieren. - **Privesc auf der Ressource**: Dies ermöglicht es Ihnen, **mehr Berechtigungen über die spezifische Ressource zu erhalten**. z.B.: Sie können die Berechtigung _setIamPolicy_ über Cloud Functions missbrauchen, um die Funktion auszulösen. - Beachten Sie, dass einige **Ressourcenberechtigungen es Ihnen auch ermöglichen, ein beliebiges Dienstkonto** an die Ressource anzuhängen. Das bedeutet, dass Sie eine Ressource mit einem SA starten, in die Ressource gelangen und **das SA-Token stehlen** können. Daher wird dies ermöglichen, über eine Ressourcenskalation zu einem Prinzip zu eskalieren. Dies ist in mehreren Ressourcen zuvor passiert, aber jetzt ist es seltener (kann aber immer noch passieren). Offensichtlich sind die interessantesten Techniken zur Privilegieneskalation die der **zweiten Gruppe**, da sie es Ihnen ermöglichen, **mehr Privilegien außerhalb der Ressourcen zu erhalten, über die Sie bereits einige Privilegien haben**. Beachten Sie jedoch, dass **Eskalation in Ressourcen** Ihnen auch Zugang zu **sensiblen Informationen** oder sogar zu **anderen Prinzipien** geben kann (vielleicht durch das Lesen eines Geheimnisses, das ein Token eines SA enthält). > [!WARNING] > Es ist auch wichtig zu beachten, dass in **GCP Dienstkonten sowohl Prinzipien als auch Berechtigungen sind**, sodass die Eskalation von Berechtigungen in einem SA es Ihnen auch ermöglicht, es zu impersonifizieren. > [!NOTE] > Die in Klammern angegebenen Berechtigungen geben die Berechtigungen an, die erforderlich sind, um die Schwachstelle mit `gcloud` auszunutzen. Diese könnten nicht erforderlich sein, wenn sie über die API ausgenutzt werden. ## Berechtigungen für die Methodik zur Privilegieneskalation So **teste ich spezifische Berechtigungen**, um spezifische Aktionen innerhalb von GCP durchzuführen. 1. Laden Sie das GitHub-Repo [https://github.com/carlospolop/gcp_privesc_scripts](https://github.com/carlospolop/gcp_privesc_scripts) herunter. 2. Fügen Sie im Verzeichnis tests/ das neue Skript hinzu. ## Umgehung von Zugriffsscoping Tokens von SA, die aus dem GCP-Metadatenservice geleakt wurden, haben **Zugriffsscoping**. Dies sind **Einschränkungen** für die **Berechtigungen**, die das Token hat. Zum Beispiel, wenn das Token den **`https://www.googleapis.com/auth/cloud-platform`** Scope hat, hat es **vollen Zugriff** auf alle GCP-Dienste. Wenn das Token jedoch den **`https://www.googleapis.com/auth/cloud-platform.read-only`** Scope hat, hat es nur **schreibgeschützten Zugriff** auf alle GCP-Dienste, selbst wenn das SA mehr Berechtigungen in IAM hat. Es gibt keinen direkten Weg, diese Berechtigungen zu umgehen, aber Sie könnten immer versuchen, nach **neuen Anmeldeinformationen** im kompromittierten Host zu suchen, **den Dienstschlüssel zu finden**, um ein OAuth-Token ohne Einschränkungen zu generieren, oder **zu einer anderen VM mit weniger Einschränkungen zu springen**. Wenn [Zugriffsscoping](https://cloud.google.com/compute/docs/access/service-accounts#accesscopesiam) verwendet wird, hat das OAuth-Token, das für die Recheninstanz (VM) generiert wird, eine **Scope**-Einschränkung. Sie könnten jedoch in der Lage sein, diese Einschränkung zu **umgehen** und die Berechtigungen des kompromittierten Kontos auszunutzen. Der **beste Weg, diese Einschränkung zu umgehen**, besteht darin, entweder **neue Anmeldeinformationen** im kompromittierten Host zu finden, **den Dienstschlüssel zu finden, um ein OAuth-Token** ohne Einschränkungen zu generieren, oder **eine andere VM mit einem weniger eingeschränkten SA zu kompromittieren**. Überprüfen Sie SA mit Schlüsseln, die generiert wurden mit: ```bash for i in $(gcloud iam service-accounts list --format="table[no-heading](email)"); do echo "Looking for keys for $i:" gcloud iam service-accounts keys list --iam-account $i done ``` ## Privilegieneskalationstechniken Der Weg, um Ihre Berechtigungen in AWS zu eskalieren, besteht darin, genügend Berechtigungen zu haben, um auf die Berechtigungen anderer Dienstkonten/Nutzer/Gruppen zugreifen zu können. Ketteneskalationen, bis Sie Administratorzugriff auf die Organisation haben. > [!WARNING] > GCP hat **Hunderte** (wenn nicht Tausende) von **Berechtigungen**, die einer Entität gewährt werden können. In diesem Buch finden Sie **alle Berechtigungen, die ich kenne**, die Sie missbrauchen können, um **Privilegien zu eskalieren**, aber wenn Sie **einen Pfad kennen**, der hier nicht erwähnt wird, **teilen Sie ihn bitte**. **Die Unterseiten dieses Abschnitts sind nach Diensten geordnet. Sie finden in jedem Dienst verschiedene Möglichkeiten, um Privilegien auf den Diensten zu eskalieren.** ### Missbrauch von GCP zur lokalen Eskalation von Berechtigungen Wenn Sie sich auf einer Maschine in GCP befinden, könnten Sie in der Lage sein, Berechtigungen zu missbrauchen, um Privilegien sogar lokal zu eskalieren: {{#ref}} gcp-local-privilege-escalation-ssh-pivoting.md {{#endref}} ## Referenzen - [https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/](https://rhinosecuritylabs.com/gcp/privilege-escalation-google-cloud-platform-part-1/) - [https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/](https://rhinosecuritylabs.com/cloud-security/privilege-escalation-google-cloud-platform-part-2/#gcp-privesc-scanner) - [https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/](https://about.gitlab.com/blog/2020/02/12/plundering-gcp-escalating-privileges-in-google-cloud-platform/) {{#include ../../../banners/hacktricks-training.md}}