GCP - Cloudbuild Privesc
cloudbuild
Para mais informações sobre Cloud Build, confira:
GCP - Cloud Build Enumcloudbuild.builds.create
cloudbuild.builds.create
Com esta permissão, você pode submeter uma cloud build. A máquina cloudbuild terá em seu sistema de arquivos por padrão um token da Service Account do cloudbuild: <PROJECT_NUMBER>@cloudbuild.gserviceaccount.com
. No entanto, você pode indicar qualquer service account dentro do projeto na configuração do cloudbuild.
Portanto, você pode simplesmente fazer a máquina exfiltrar o token para o seu servidor ou obter um reverse shell dentro dela e pegar o token você mesmo (o arquivo contendo o token pode mudar).
Você pode encontrar o script de exploit original aqui no GitHub (mas a localização de onde ele pega o token não funcionou para mim). Portanto, confira um script para automatizar a criação, exploração e limpeza de um ambiente vulnerável aqui e um script em python para obter um reverse shell dentro da máquina cloudbuild e roubá-lo aqui (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.builds.update
cloudbuild.builds.update
Potencialmente com esta permissão você poderá atualizar uma cloud build e simplesmente roubar o token da service account como foi feito com a permissão anterior (mas infelizmente, no momento em que escrevo, não consegui encontrar nenhuma maneira de chamar essa API).
TODO
cloudbuild.repositories.accessReadToken
cloudbuild.repositories.accessReadToken
Com esta permissão, o usuário pode obter o token de acesso de leitura usado para acessar o repositório:
cloudbuild.repositories.accessReadWriteToken
cloudbuild.repositories.accessReadWriteToken
Com esta permissão, o usuário pode obter o token de acesso de leitura e escrita usado para acessar o repositório:
cloudbuild.connections.fetchLinkableRepositories
cloudbuild.connections.fetchLinkableRepositories
Com esta permissão, você pode obter os repositórios aos quais a conexão tem acesso:
Last updated