GCP - Cloudbuild Privesc
cloudbuild
Per ulteriori informazioni su Cloud Build, controlla:
pageGCP - Cloud Build Enumcloudbuild.builds.create
cloudbuild.builds.create
Con questa autorizzazione puoi inviare una build cloud. La macchina cloudbuild avrà nel suo filesystem per default un token del Service Account di cloudbuild: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com
. Tuttavia, puoi indicare qualsiasi service account all'interno del progetto nella configurazione di cloudbuild.
Pertanto, puoi semplicemente fare in modo che la macchina esfiltrati il token al tuo server o ottenere un reverse shell al suo interno e ottenere il token tu stesso (il file contenente il token potrebbe cambiare).
Puoi trovare lo script di exploit originale qui su GitHub (ma la posizione da cui prende il token non ha funzionato per me). Quindi, controlla uno script per automatizzare la creazione, l'exploit e la pulizia di un ambiente vulnerabile qui e uno script python per ottenere un reverse shell all'interno della macchina cloudbuild e rubarlo qui (nel codice puoi trovare come specificare altri service account).
Per una spiegazione più approfondita, visita https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.builds.update
cloudbuild.builds.update
Potenzialmente con questa autorizzazione sarai in grado di aggiornare una build cloud e rubare il token del service account come è stato fatto con l'autorizzazione precedente (ma sfortunatamente al momento della stesura di questo testo non ho trovato alcun modo per chiamare tale API).
TODO
cloudbuild.repositories.accessReadToken
cloudbuild.repositories.accessReadToken
Con questa autorizzazione l'utente può ottenere il token di accesso in lettura utilizzato per accedere al repository:
cloudbuild.repositories.accessReadWriteToken
cloudbuild.repositories.accessReadWriteToken
Con questa autorizzazione l'utente può ottenere il token di accesso in lettura e scrittura utilizzato per accedere al repository:
cloudbuild.connections.fetchLinkableRepositories
cloudbuild.connections.fetchLinkableRepositories
Con questa autorizzazione puoi ottenere i repository ai quali la connessione ha accesso:
Last updated