GCP - Cloudbuild Privesc
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Per ulteriori informazioni su Cloud Build controlla:
GCP - Cloud Build Enumcloudbuild.builds.create
Con questo permesso puoi inviare una build cloud. La macchina cloudbuild avrà nel suo filesystem per default un token dell'Account di Servizio cloudbuild: <PROJECT_NUMBER>@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 (ma la posizione da cui sta prendendo il token non ha funzionato per me). Pertanto, controlla uno script per automatizzare la creazione, sfruttamento e pulizia di un ambiente vulnerabile qui e uno script python per ottenere una reverse shell all'interno della macchina cloudbuild e rubare il token qui (nel codice puoi trovare come specificare altri account di servizio).
Per una spiegazione più approfondita, visita https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.builds.update
Potenzialmente con questo permesso sarai in grado di aggiornare una build cloud 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 quell'API).
TODO
cloudbuild.repositories.accessReadToken
Con questo permesso l'utente può ottenere il token di accesso in lettura utilizzato per accedere al repository:
cloudbuild.repositories.accessReadWriteToken
Con questo permesso, l'utente può ottenere il token di accesso in lettura e scrittura utilizzato per accedere al repository:
cloudbuild.connections.fetchLinkableRepositories
Con questo permesso puoi ottenere i repo a cui la connessione ha accesso:
Impara e pratica Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)