GCP - Cloudbuild Privesc
Reading time: 3 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
cloudbuild
Za više informacija o Cloud Build, proverite:
cloudbuild.builds.create
, iam.serviceAccounts.actAs
Sa ovom dozvolom možete podneti cloud build. Cloudbuild mašina će imati u svom fajl sistemu po defaultu token cloudbuild Service Account-a: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com
. Međutim, možete navesti bilo koji servisni nalog unutar projekta u cloudbuild konfiguraciji.
Stoga, možete jednostavno naterati mašinu da exfiltrira token na vaš server ili dobiti reverznu ljusku unutar nje i dobiti token (fajl koji sadrži token može se promeniti).
Možete pronaći originalni exploit skript ovde na GitHub-u (ali lokacija sa koje uzima token nije radila za mene). Stoga, proverite skript za automatizaciju kreiranja, eksploatacije i čišćenja ranjivog okruženja ovde i python skript za dobijanje reverzne ljuske unutar cloudbuild mašine i krađu ovde (u kodu možete pronaći kako da navedete druge servisne naloge).
Za detaljnije objašnjenje, posetite https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.builds.update
Potencijalno sa ovom dozvolom bićete u mogućnosti da ažurirate cloud build i jednostavno ukradete token servisnog naloga kao što je to učinjeno sa prethodnom dozvolom (ali nažalost u vreme pisanja ovog teksta nisam mogao pronaći način da pozovem taj API).
TODO
cloudbuild.repositories.accessReadToken
Sa ovom dozvolom korisnik može dobiti token za čitanje koji se koristi za pristup repozitorijumu:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>/repositories/<repo-id>:accessReadToken"
cloudbuild.repositories.accessReadWriteToken
Sa ovom dozvolom korisnik može dobiti token za čitanje i pisanje koji se koristi za pristup repozitorijumu:
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json" \
-d '{}' \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>/repositories/<repo-id>:accessReadWriteToken"
cloudbuild.connections.fetchLinkableRepositories
Sa ovom dozvolom možete dobiti repozitorijume kojima konekcija ima pristup:
curl -X GET \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
"https://cloudbuild.googleapis.com/v2/projects/<PROJECT_ID>/locations/<LOCATION>/connections/<CONN_ID>:fetchLinkableRepositories"
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.