GCP - Compute Instances
Reading time: 6 minutes
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.
Informações Básicas
Google Cloud Compute Instances são máquinas virtuais personalizáveis na infraestrutura de nuvem do Google, oferecendo poder computacional escalável e sob demanda para uma ampla gama de aplicações. Elas fornecem recursos como implantação global, armazenamento persistente, opções flexíveis de SO e fortes integrações de rede e segurança, tornando-as uma escolha versátil para hospedar sites, processar dados e executar aplicações de forma eficiente na nuvem.
VM Confidencial
VMs Confidenciais usam recursos de segurança baseados em hardware oferecidos pela última geração de processadores AMD EPYC, que incluem criptografia de memória e virtualização criptografada segura. Esses recursos permitem que a VM proteja os dados processados e armazenados dentro dela, até mesmo do sistema operacional host e do hipervisor.
Para executar uma VM Confidencial, pode ser necessário alterar coisas como o tipo da máquina, interface de rede, imagem do disco de inicialização.
Disco e Criptografia de Disco
É possível selecionar o disco a ser usado ou criar um novo. Se você selecionar um novo, pode:
- Selecionar o tamanho do disco
- Selecionar o SO
- Indicar se deseja deletar o disco quando a instância for deletada
- Criptografia: Por padrão, uma chave gerenciada pelo Google será usada, mas você também pode selecionar uma chave do KMS ou indicar chave bruta a ser usada.
Implantar Contêiner
É possível implantar um contêiner dentro da máquina virtual.
É possível configurar a imagem a ser usada, definir o comando a ser executado dentro, argumentos, montar um volume e variáveis de ambiente (informações sensíveis?) e configurar várias opções para este contêiner, como executar como privilegiado, stdin e pseudo TTY.
Conta de Serviço
Por padrão, a conta de serviço padrão do Compute Engine será usada. O e-mail desta SA é como: <proj-num>-compute@developer.gserviceaccount.com
Esta conta de serviço tem papel de Editor sobre todo o projeto (altos privilégios).
E os escopos de acesso padrão são os seguintes:
- https://www.googleapis.com/auth/devstorage.read_only -- Acesso de leitura a buckets :)
- https://www.googleapis.com/auth/logging.write
- https://www.googleapis.com/auth/monitoring.write
- https://www.googleapis.com/auth/servicecontrol
- https://www.googleapis.com/auth/service.management.readonly
- https://www.googleapis.com/auth/trace.append
No entanto, é possível conceder cloud-platform
com um clique ou especificar personalizados.
.png)
Firewall
É possível permitir tráfego HTTP e HTTPS.
.png)
Rede
- Encaminhamento de IP: É possível habilitar o encaminhamento de IP a partir da criação da instância.
- Nome do Host: É possível dar à instância um nome de host permanente.
- Interface: É possível adicionar uma interface de rede.
Segurança Extra
Essas opções irão aumentar a segurança da VM e são recomendadas:
- Inicialização Segura: A inicialização segura ajuda a proteger suas instâncias de VM contra malware e rootkits em nível de inicialização e kernel.
- Habilitar vTPM: O Módulo de Plataforma Confiável Virtual (vTPM) valida a integridade de pré-inicialização e inicialização da sua VM convidada e oferece geração e proteção de chaves.
- Supervisão de Integridade: A supervisão de integridade permite que você monitore e verifique a integridade de inicialização em tempo de execução de suas instâncias de VM protegidas usando relatórios do Stackdriver. Requer que o vTPM esteja habilitado.
Acesso à VM
A maneira comum de habilitar o acesso à VM é permitindo certas chaves públicas SSH para acessar a VM.
No entanto, também é possível habilitar o acesso à VM via serviço os-config
usando IAM. Além disso, é possível habilitar 2FA para acessar a VM usando este serviço.
Quando este serviço está habilitado, o acesso via chaves SSH é desabilitado.
.png)
Metadados
É possível definir automação (userdata no AWS) que são comandos de shell que serão executados toda vez que a máquina ligar ou reiniciar.
É também possível adicionar valores de chave-valor de metadados extras que estarão acessíveis a partir do endpoint de metadados. Essas informações são comumente usadas para variáveis de ambiente e scripts de inicialização/desligamento. Isso pode ser obtido usando o método describe
de um comando na seção de enumeração, mas também pode ser recuperado de dentro da instância acessando o endpoint de metadados.
# view project metadata
curl "http://metadata.google.internal/computeMetadata/v1/project/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
# view instance metadata
curl "http://metadata.google.internal/computeMetadata/v1/instance/attributes/?recursive=true&alt=text" \
-H "Metadata-Flavor: Google"
Além disso, o token de autenticação para a conta de serviço anexada e informações gerais sobre a instância, rede e projeto também estarão disponíveis no endpoint de metadados. Para mais informações, consulte:
Criptografia
Uma chave de criptografia gerenciada pelo Google é usada por padrão, mas uma chave de criptografia gerenciada pelo cliente (CMEK) pode ser configurada. Você também pode configurar o que fazer quando o CMEK utilizado for revogado: Notificar ou desligar a VM.
.png)
tip
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE)
Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)
Aprenda e pratique Hacking Azure:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Confira os planos de assinatura!
- Junte-se ao 💬 grupo do Discord ou ao grupo do telegram ou siga-nos no Twitter 🐦 @hacktricks_live.
- Compartilhe truques de hacking enviando PRs para o HackTricks e HackTricks Cloud repositórios do github.