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 0a1efb0a6..ffd446f91 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 @@ -10,9 +10,24 @@ Per ulteriori informazioni su Cloud Build controlla: ../gcp-services/gcp-cloud-build-enum.md {{#endref}} -### `cloudbuild.builds.create` +### `cloudbuild.builds.create`, `iam.serviceAccounts.actAs` -Con questo permesso puoi **inviare un cloud build**. La macchina cloudbuild avrà nel suo filesystem per **default un token dell'Account di Servizio cloudbuild**: `@cloudbuild.gserviceaccount.com`. Tuttavia, puoi **indicare qualsiasi account di +Con questo permesso puoi **inviare un cloud build**. La macchina cloudbuild avrà nel suo filesystem per **default un token dell'Account di Servizio cloudbuild**: `@cloudbuild.gserviceaccount.com`. Tuttavia, puoi **indicare qualsiasi account di servizio all'interno del progetto** nella configurazione di cloudbuild.\ +Pertanto, puoi semplicemente far esfiltrare alla macchina il token verso il tuo server o **ottenere una reverse shell all'interno di essa e recuperare il token** (il file contenente il token potrebbe cambiare). + +Puoi trovare lo script di exploit originale [**qui su GitHub**](https://github.com/RhinoSecurityLabs/GCP-IAM-Privilege-Escalation/blob/master/ExploitScripts/cloudbuild.builds.create.py) (ma la posizione da cui prende il token non ha funzionato per me). Pertanto, controlla uno script per automatizzare la [**creazione, sfruttamento e pulizia di un ambiente vulnerabile qui**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.sh) e uno script python per ottenere una reverse shell all'interno della macchina cloudbuild e [**rubare il token qui**](https://github.com/carlospolop/gcp_privesc_scripts/blob/main/tests/f-cloudbuild.builds.create.py) (nel codice puoi trovare come specificare altri account di servizio)**.** + +Per una spiegazione più dettagliata, visita [https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/](https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/) + +### `cloudbuild.builds.update` + +**Potenzialmente** con questo permesso sarai in grado di **aggiornare un cloud build e semplicemente rubare il token dell'account di servizio** come è stato fatto con il permesso precedente (ma sfortunatamente al momento della scrittura non sono riuscito a trovare alcun modo per chiamare quella API). + +TODO + +### `cloudbuild.repositories.accessReadToken` + +Con questo permesso l'utente può ottenere il **token di accesso in lettura** utilizzato per accedere al repository: ```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \