GCP - Compute Privesc

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Computação

Para mais informações sobre Computação e VPC (rede) no GCP, verifique:

pageGCP - Compute Enum

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 de 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 em execução em instâncias de VM têm, por padrão, um escopo muito limitado

  • Você precisará ser capaz de entrar em contato com o servidor SSH para fazer login

Para mais informações sobre como explorar essa permissão, verifique:

pageGCP - Add Custom SSH Metadata

compute.instances.setMetadata

Essa permissão concede os mesmos privilégios da permissão anterior, mas em 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 uma função com as permissões anteriores e escalone privilégios abusando delas.

compute.instances.osLogin

Se o OSLogin estiver ativado na instância, com essa permissão você pode simplesmente executar gcloud compute ssh [INSTÂNCIA] e se conectar à instância. Você não terá privilégios de root dentro da instância.

compute.instances.osAdminLogin

Se o OSLogin estiver ativado na instância, com essa permissão você pode simplesmente executar gcloud compute ssh [INSTÂNCIA] e se conectar à instância. Você terá privilégios de root dentro da instância.

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 exploração 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 ou implantação de patch. Isso permitirá que você se mova lateralmente no ambiente e obtenha execução de código em todas as instâncias de computação dentro de um projeto.

Se você deseja explorar manualmente isso, precisará criar um trabalho de patch ou implantação para um trabalho de patch, execute:

gcloud compute os-config patch-jobs execute --file=patch.json

Para implantar uma implantação de patch:

gcloud compute os-config patch-deployments create my-update --file=patch.json

Ferramentas automatizadas como patchy existem para detectar permissões frouxas e se mover lateralmente automaticamente.

Você também pode abusar disso para persistência.

compute.machineImages.setIamPolicy

Conceda a si mesmo permissões extras para 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.

Bypass de Escopos de Acesso

Seguindo este link, você encontrará algumas ideias para tentar burlar os escopos de acesso.

Escalação de Privilégios Local na Instância de Computação do GCP

pageGCP - local privilege escalation ssh pivoting

Referências

Aprenda hacking na AWS do zero ao herói com htARTE (HackTricks AWS Red Team Expert)!

Outras maneiras de apoiar o HackTricks:

Última actualización