GCP - Compute Post Exploitation
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 Computação e VPC (Rede) confira:
GCP - Compute EnumIsso permitiria que um atacante acessasse os dados contidos dentro de imagens já existentes ou criasse novas imagens de VMs em execução e acessasse seus dados sem ter acesso à VM em execução.
É possível exportar uma imagem de VM para um bucket e depois baixá-la e montá-la localmente com o comando:
Para realizar esta ação, o atacante pode precisar de privilégios sobre o bucket de armazenamento e, com certeza, privilégios sobre o cloudbuild, pois é o serviço que será solicitado para realizar a exportação.
Além disso, para que isso funcione, o SA do codebuild e o SA do compute precisam de permissões privilegiadas.
O SA do cloudbuild <project-id>@cloudbuild.gserviceaccount.com
precisa de:
roles/iam.serviceAccountTokenCreator
roles/compute.admin
roles/iam.serviceAccountUser
E o SA <project-id>-compute@developer.gserviceaccount.com
precisa de:
roles/compute.storageAdmin
roles/storage.objectAdmin
Não é possível exportar snapshots e discos diretamente, mas é possível transformar um snapshot em um disco, um disco em uma imagem e, seguindo a seção anterior, exportar essa imagem para inspecioná-la localmente.
Com o objetivo de acessar os dados armazenados em uma imagem ou dentro de uma VM em execução de onde um atacante criou uma imagem, é possível conceder a uma conta externa acesso à imagem:
e então crie uma nova VM a partir disso:
Se você não puder conceder acesso à sua conta externa sobre a imagem, poderá iniciar uma VM usando essa imagem no projeto da vítima e fazer os metadados executarem um reverse shell para acessar a imagem adicionando o parâmetro:
Com o objetivo de acessar os dados armazenados em um disco ou um snapshot, você poderia transformar o snapshot em um disco, um disco em uma imagem e seguir os passos anteriores.
Ou você poderia conceder acesso a uma conta externa sobre o disco (se o ponto de partida for um snapshot, conceda acesso sobre o snapshot ou crie um disco a partir dele):
Anexar o disco a uma instância:
Montar o disco dentro da VM:
SSH na VM:
Identificar o Disco: Uma vez dentro da VM, identifique o novo disco listando os dispositivos de disco. Normalmente, você pode encontrá-lo como /dev/sdb
, /dev/sdc
, etc.
Formatar e Montar o Disco (se for um disco novo ou bruto):
Crie um ponto de montagem:
Monte o disco:
Se você não puder dar acesso a um projeto externo ao snapshot ou disco, pode ser necessário realizar essas ações dentro de uma instância no mesmo projeto que o snapshot/disco.
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)