GCP - Cloudbuild Privesc

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

cloudbuild

Za više informacija o Cloud Build-u pogledajte:

GCP - Cloud Build Enum

cloudbuild.builds.create

Sa ovlašćenjem možete poslati cloud build. Cloudbuild mašina će po podrazumevanim postavkama imati token cloudbuild Service Account-a: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Međutim, možete navesti bilo koji service account unutar projekta u konfiguraciji cloudbuild-a. Stoga, možete jednostavno naterati mašinu da ekstrahuje token do vašeg servera ili dobiti obrnutu ljusku unutar nje i dobiti sami token (datoteka koja sadrži token može se promeniti).

Originalni skript za eksploataciju možete pronaći ovde na GitHub-u (ali lokacija sa koje uzima token nije radila za mene). Stoga, proverite skriptu za automatizaciju kreiranja, eksploatacije i čišćenja ranjivog okruženja ovde i python skriptu za dobijanje obrnute ljuske unutar cloudbuild mašine i ukradite je ovde (u kodu možete pronaći kako specificirati druge service account-ove).

Za detaljnije objašnjenje, posetite https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/

cloudbuild.builds.update

Potencijalno sa ovim ovlašćenjem moći ćete ažurirati cloud build i samo ukrasti token service account-a kao što je urađeno sa prethodnim ovlašćenjem (ali nažalost u trenutku pisanja ovoga nisam mogao pronaći način da pozovem tu API).

TODO

cloudbuild.repositories.accessReadToken

Sa ovim ovlašćenjem korisnik može dobiti token za čitanje pristupa 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 pristupanje 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 veza 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"
Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated