GCP - Sourcerepos Privesc
Last updated
Last updated
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Para mais informações sobre Repositórios de Código Fonte, confira:
GCP - Source Repositories Enumsource.repos.get
Com esta permissão, é possível baixar o repositório localmente:
source.repos.update
Um principal com esta permissão poderá escrever código dentro de um repositório clonado com gcloud source repos clone <repo>
. Mas note que esta permissão não pode ser anexada a funções personalizadas, então deve ser concedida através de uma função predefinida como:
Proprietário
Editor
Administrador do Repositório de Código-Fonte (roles/source.admin
)
Escritor do Repositório de Código-Fonte (roles/source.writer
)
Para escrever, basta realizar um git push
normal.
source.repos.setIamPolicy
Com esta permissão, um atacante poderia conceder a si mesmo as permissões anteriores.
Se o atacante tiver acesso aos segredos onde os tokens estão armazenados, ele poderá roubá-los. Para mais informações sobre como acessar um segredo, consulte:
GCP - Secretmanager PrivescÉ possível adicionar chaves ssh ao projeto do Repositório de Código-Fonte no console da web. Isso faz uma solicitação POST para /v1/sshKeys:add
e pode ser configurado em https://source.cloud.google.com/user/ssh_keys
Uma vez que sua chave ssh esteja configurada, você pode acessar um repositório com:
E então use os comandos git
como de costume.
É possível criar credenciais manuais para acessar os Repositórios de Código:
Clicando no primeiro link, você será direcionado para https://source.developers.google.com/auth/start?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcloud-platform&state&authuser=3
O que irá solicitar um prompt de autorização Oauth para dar acesso ao Google Cloud Development. Portanto, você precisará das credenciais do usuário ou de uma sessão aberta no navegador para isso.
Isso o levará a uma página com um script bash para executar e configurar um cookie git em $HOME/.gitcookies
Executando o script, você poderá usar git clone, push... e funcionará.
source.repos.updateProjectConfig
Com essa permissão, é possível desativar a proteção padrão dos Repositórios de Código para não fazer upload de código contendo Chaves Privadas:
Você também pode configurar um tópico pub/sub diferente ou até mesmo desativá-lo completamente:
Aprenda e pratique Hacking AWS:HackTricks Treinamento AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Treinamento GCP Red Team Expert (GRTE)