GCP - Compute 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 Compute e VPC (rede) no GCP, confira:
GCP - Compute EnumObserve que para realizar todos os ataques de escalonamento de privilégios que requerem modificar os metadados da instância (como adicionar novos usuários e chaves SSH) é necessário que você tenha permissões actAs
sobre a SA anexada à instância, mesmo que a SA já esteja anexada!
compute.projects.setCommonInstanceMetadata
Com essa permissão, você pode modificar as informações de metadados de uma instância e alterar as chaves autorizadas de um usuário, ou criar um novo usuário com permissões sudo. Portanto, você poderá executar via SSH em qualquer instância de VM e roubar a Conta de Serviço do GCP com a qual a Instância está sendo executada. Limitações:
Observe que as Contas de Serviço do GCP executando em instâncias de VM por padrão têm um escopo muito limitado
Você precisará ser capaz de contatar o servidor SSH para fazer login
Para mais informações sobre como explorar essa permissão, confira:
GCP - Add Custom SSH MetadataVocê também pode realizar esse ataque adicionando um novo script de inicialização e reiniciando a instância:
compute.instances.setMetadata
Esta permissão dá os mesmos privilégios que a permissão anterior, mas sobre instâncias específicas em vez de um projeto inteiro. Os mesmos exploits e limitações da seção anterior se aplicam.
compute.instances.setIamPolicy
Esse tipo de permissão permitirá que você conceda a si mesmo um papel com as permissões anteriores e escale privilégios abusando delas.
compute.instances.osLogin
Se OSLogin estiver habilitado na instância, com esta permissão você pode apenas executar gcloud compute ssh [INSTANCE]
e conectar-se à instância. Você não terá privilégios de root dentro da instância.
Para fazer login com sucesso com esta permissão dentro da instância VM, você precisa ter a permissão iam.serviceAccounts.actAs
sobre a SA anexada à VM.
compute.instances.osAdminLogin
Se OSLogin estiver habilitado na instância, com esta permissão você pode apenas executar gcloud compute ssh [INSTANCE]
e conectar-se à instância. Você terá privilégios de root dentro da instância.
Para fazer login com sucesso com esta permissão dentro da instância VM, você precisa ter a permissão iam.serviceAccounts.actAs
sobre a SA anexada à VM.
compute.instances.create
,iam.serviceAccounts.actAs, compute.disks.create
, compute.instances.create
, compute.instances.setMetadata
, compute.instances.setServiceAccount
, compute.subnetworks.use
, compute.subnetworks.useExternalIp
É possível criar uma máquina virtual com uma Conta de Serviço atribuída e roubar o token da conta de serviço acessando os metadados para escalar privilégios para ela.
O script de exploit para este método pode ser encontrado aqui.
osconfig.patchDeployments.create
| osconfig.patchJobs.exec
Se você tiver as permissões osconfig.patchDeployments.create
ou osconfig.patchJobs.exec
, você pode criar um trabalho de patch ou implantação. Isso permitirá que você se mova lateralmente no ambiente e ganhe execução de código em todas as instâncias de computação dentro de um projeto.
Observe que, no momento, você não precisa da permissão actAs
sobre a SA anexada à instância.
Se você quiser explorar isso manualmente, precisará criar um trabalho de patch ou implantação. Para um trabalho de patch execute:
Para implantar uma implantação de patch:
A ferramenta patchy poderia ter sido usada no passado para explorar essa má configuração (mas agora não está funcionando).
Um atacante também poderia abusar disso para persistência.
compute.machineImages.setIamPolicy
Conceda a si mesmo permissões extras para a imagem de computação.
compute.snapshots.setIamPolicy
Conceda a si mesmo permissões extras para um snapshot de disco.
compute.disks.setIamPolicy
Conceda a si mesmo permissões extras para um disco.
Seguindo este link, você encontrará algumas ideias para tentar contornar os escopos de acesso.
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)