GCP - Artifact Registry 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 o Artifact Registry, confira:
GCP - Artifact Registry EnumCom esta permissão, um atacante poderia fazer upload de novas versões dos artefatos com código malicioso, como imagens Docker:
Foi verificado que é possível fazer upload de uma nova imagem docker maliciosa com o mesmo nome e tag da que já está presente, então a antiga perderá a tag e na próxima vez que essa imagem com essa tag for baixada, a maliciosa será baixada.
Não é possível fazer upload de uma biblioteca python com a mesma versão que a já presente, mas é possível fazer upload de versões maiores (ou adicionar um extra .0
no final da versão se isso funcionar -não em python, no entanto-), ou deletar a última versão e fazer upload de uma nova com (necessário artifactregistry.versions.delete)
:
artifactregistry.repositories.downloadArtifacts
Com esta permissão, você pode baixar artefatos e procurar por informações sensíveis e vulnerabilidades.
Baixar uma imagem Docker:
Baixe uma biblioteca python:
O que acontece se um registro remoto e um registro padrão forem misturados em um virtual e um pacote existir em ambos? Confira esta página:
artifactregistry.tags.delete
, artifactregistry.versions.delete
, artifactregistry.packages.delete
, (artifactregistry.repositories.get
, artifactregistry.tags.get
, artifactregistry.tags.list
)Excluir artefatos do registro, como imagens docker:
artifactregistry.repositories.delete
Excluir um repositório completo (mesmo que tenha conteúdo):
artifactregistry.repositories.setIamPolicy
Um atacante com essa permissão poderia se conceder permissões para realizar alguns dos ataques de repositório mencionados anteriormente.
Cloud Functions
Quando uma Cloud Function é criada, uma nova imagem docker é enviada para o Artifact Registry do projeto. Tentei modificar a imagem por uma nova, e até mesmo deletar a imagem atual (e a imagem cache
), e nada mudou, a função em nuvem continuou funcionando. Portanto, talvez possa ser possível abusar de um ataque de Condição de Corrida como com o bucket para mudar o contêiner docker que será executado, mas apenas modificar a imagem armazenada não é possível comprometer a Cloud Function.
App Engine
Embora o App Engine crie imagens docker dentro do Artifact Registry. Foi testado que mesmo que você modifique a imagem dentro deste serviço e remova a instância do App Engine (para que uma nova seja implantada), o código executado não muda. Pode ser possível que realizando um ataque de Condição de Corrida como com os buckets, pode ser possível sobrescrever o código executado, mas isso não foi testado.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)