GCP - Enumeração Não Autenticada do Cloud Build

Reading time: 3 minutes

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

Cloud Build

Para mais informações sobre o Cloud Build, consulte:

GCP - Cloud Build Enum

cloudbuild.yml

Se você comprometer o acesso de escrita a um repositório contendo um arquivo chamado cloudbuild.yml, você poderia injetar um backdoor neste arquivo, que especifica os comandos que serão executados dentro de um Cloud Build e exfiltrar os segredos, comprometer o que é feito e também comprometer a conta de serviço do Cloud Build.

note

Observe que o GCP tem a opção de permitir que administradores controlem a execução de sistemas de build a partir de PRs externos via "Comment Control". O Comment Control é um recurso onde colaboradores/proprietários do projeto precisam comentar “/gcbrun” para acionar o build contra o PR e usar esse recurso impede inerentemente que qualquer pessoa na internet acione seus sistemas de build.

Para algumas informações relacionadas, você pode consultar a página sobre como atacar o Github Actions (semelhante a isso):

Abusing Github Actions

Aprovações de PR

Quando o gatilho é PR, porque qualquer um pode realizar PRs para repositórios públicos, seria muito perigoso apenas permitir a execução do gatilho com qualquer PR. Portanto, por padrão, a execução será automática apenas para proprietários e colaboradores, e para executar o gatilho com PRs de outros usuários, um proprietário ou colaborador deve comentar /gcbrun.

caution

Portanto, se isso estiver definido como Not required, um atacante poderia realizar um PR para o branch que acionará a execução, adicionando a execução de código malicioso ao arquivo cloudbuild.yml e comprometer a execução do cloudbuild (note que o cloudbuild fará o download do código DO PR, então ele executará o malicioso cloudbuild.yml).

Além disso, é fácil ver se alguma execução do cloudbuild precisa ser realizada quando você envia um PR, porque aparece no Github:

warning

Então, mesmo que o cloudbuild não seja executado, o atacante poderá ver o nome do projeto de um projeto GCP que pertence à empresa.

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