GCP - Cloud Run Enum

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

Outras maneiras de apoiar o HackTricks:

Cloud Run

O Cloud Run é uma plataforma de computação gerenciada sem servidor que permite executar containers diretamente na infraestrutura escalável do Google.

Você pode executar seu contêiner ou, se estiver usando Go, Node.js, Python, Java, .NET Core ou Ruby, pode usar a opção de implantação baseada em código-fonte que constrói o contêiner para você.

O Google construiu o Cloud Run para funcionar bem com outros serviços no Google Cloud, para que você possa construir aplicativos completos.

Serviços e trabalhos

No Cloud Run, seu código pode ser executado continuamente como um serviço ou como um trabalho. Tanto os serviços quanto os trabalhos são executados no mesmo ambiente e podem usar as mesmas integrações com outros serviços no Google Cloud.

  • Serviços do Cloud Run. Usados para executar código que responde a solicitações da web ou eventos.

  • Trabalhos do Cloud Run. Usados para executar código que realiza um trabalho (um trabalho) e encerra quando o trabalho é concluído.

Serviço do Cloud Run

O Google Cloud Run é outra oferta sem servidor onde você pode procurar variáveis de ambiente também. O Cloud Run cria um pequeno servidor web, executando na porta 8080 dentro do contêiner por padrão, que fica esperando por uma solicitação HTTP GET. Quando a solicitação é recebida, um trabalho é executado e o log do trabalho é exibido por meio de uma resposta HTTP.

Detalhes relevantes

  • Por padrão, o acesso ao servidor web é público, mas também pode ser limitado ao tráfego interno (VPC...) Além disso, a autenticação para entrar em contato com o servidor web pode ser permitir a todos ou exigir autenticação via IAM.

  • Por padrão, a criptografia usa uma chave gerenciada pelo Google, mas uma CMEK (Chave de Criptografia Gerenciada pelo Cliente) do KMS também pode ser escolhida.

  • Por padrão, a conta de serviço usada é a padrão do Compute Engine que tem acesso de Editor sobre o projeto e tem o escopo cloud-platform.

  • É possível definir variáveis de ambiente em texto claro para a execução e até mesmo montar segredos do Cloud ou adicionar segredos do Cloud às variáveis de ambiente.

  • Também é possível adicionar conexões com o Cloud SQL e montar um sistema de arquivos.

  • Os URLs dos serviços implantados são semelhantes a https://<nome-svc>-<aleatório>.a.run.app

  • Um Serviço do Run pode ter mais de 1 versão ou revisão e dividir o tráfego entre várias revisões.

Enumeração

# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke

# Get info of a service
gcloud run services describe --region <region> <svc-name>

# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json

# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>

# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>

# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>

# Attempt to trigger a job unauthenticated
curl <url>

# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>

Trabalhos do Cloud Run

Os trabalhos do Cloud Run são mais adequados para contêineres que são executados até a conclusão e não atendem a solicitações. Os trabalhos não têm a capacidade de atender a solicitações ou ouvir em uma porta. Isso significa que, ao contrário dos serviços do Cloud Run, os trabalhos não devem incluir um servidor web. Em vez disso, os contêineres de trabalhos devem ser encerrados quando concluírem.

Enumeração

gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>

Escalação de Privilégios

Na página a seguir, você pode verificar como abusar das permissões do Cloud Run para escalar privilégios:

pageGCP - Run Privesc

Acesso Não Autenticado

pageGCP - Cloud Run Unauthenticated Enum

Pós-Exploração

pageGCP - Cloud Run Post Exploitation

Persistência

pageGCP - Cloud Run Persistence

Referências

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

Outras formas de apoiar o HackTricks:

Última actualización