GCP - Sourcerepos Privesc
Reading time: 4 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
- 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.
Repositórios de Código Fonte
Para mais informações sobre Repositórios de Código Fonte, consulte:
GCP - Source Repositories Enum
source.repos.get
Com esta permissão, é possível baixar o repositório localmente:
gcloud source repos clone <repo-name> --project=<project-uniq-name>
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:
- Owner
- Editor
- Source Repository Administrator (
roles/source.admin
) - Source Repository Writer (
roles/source.writer
)
Para escrever, basta realizar um git push
regular.
source.repos.setIamPolicy
Com esta permissão, um atacante poderia conceder a si mesmo as permissões anteriores.
Acesso a segredos
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, verifique:
Adicionar chaves SSH
É possível adicionar chaves ssh ao projeto do Source Repository 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:
git clone ssh://username@domain.com@source.developers.google.com:2022/p/<proj-name>/r/<repo-name>
E então use os comandos git
como de costume.
Credenciais Manuais
É possível criar credenciais manuais para acessar os Repositórios de Fonte:
.png)
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á ou 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
.png)
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 Fonte para não fazer upload de código contendo Chaves Privadas:
gcloud source project-configs update --disable-pushblock
Você também pode configurar um tópico pub/sub diferente ou até mesmo desativá-lo completamente:
gcloud source project-configs update --remove-topic=REMOVE_TOPIC
gcloud source project-configs update --remove-topic=UPDATE_TOPIC
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.