GCP - Sourcerepos Privesc
Repositórios de Origem
Para mais informações sobre Repositórios de Origem, verifique:
pageGCP - Source Repositories Enumsource.repos.get
source.repos.get
Com essa permissão, é possível baixar o repositório localmente:
source.repos.update
source.repos.update
Um usuário com essa permissão poderá escrever código dentro de um repositório clonado com gcloud source repos clone <repo>
. Mas observe que essa permissão não pode ser anexada a funções personalizadas, portanto, deve ser concedida por meio de uma função predefinida como:
Proprietário
Editor
Administrador do Repositório de Origem (
roles/source.admin
)Escritor do Repositório de Origem (
roles/source.writer
)
Para escrever, basta executar um git push
regular.
source.repos.setIamPolicy
source.repos.setIamPolicy
Com essa permissão, um invasor poderia conceder a si mesmo as permissões anteriores.
Acesso a segredos
Se o invasor tiver acesso aos segredos onde os tokens são armazenados, ele poderá roubá-los. Para obter mais informações sobre como acessar um segredo, consulte:
pageGCP - Secretmanager PrivescAdicionar chaves SSH
É possível adicionar chaves SSH ao projeto do Repositório de Origem 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
Depois que sua chave SSH estiver configurada, você poderá acessar um repositório com:
E então use os comandos git
como de costume.
Credenciais Manuais
É possível criar credenciais manuais para acessar os Repositórios de Origem:
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 uma 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á então usar git clone, push... e funcionará.
source.repos.updateProjectConfig
source.repos.updateProjectConfig
Com essa permissão, é possível desativar a proteção padrão dos Repositórios de Origem 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:
Última actualización