GCP - Cloud Run Enum
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Cloud Run é uma plataforma de computação gerenciada sem servidor que permite que você execute contêineres diretamente sobre a 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 junto com outros serviços no Google Cloud, para que você possa construir aplicações completas.
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 trabalho (um trabalho) e encerra quando o trabalho é concluído.
O Cloud Run do Google é outra oferta sem servidor onde você também pode pesquisar variáveis de ambiente. O Cloud Run cria um pequeno servidor web, executando na porta 8080 dentro do contêiner por padrão, que fica aguardando uma solicitação HTTP GET. Quando a solicitação é recebida, um trabalho é executado e o log do trabalho é enviado via uma resposta HTTP.
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 contatar o servidor web pode ser permitindo 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 utilizada é a padrão do Compute Engine, que tem acesso de Editor sobre o projeto e possui o escopo cloud-platform
.
É possível definir variáveis de ambiente em texto claro para a execução, e até mesmo montar segredos da nuvem ou adicionar segredos da nuvem às variáveis de ambiente.
Também é possível adicionar conexões com o Cloud SQL e montar um sistema de arquivos.
As URLs dos serviços implantados são semelhantes a https://<svc-name>-<random>.a.run.app
Um Serviço Run pode ter mais de 1 versão ou revisão, e dividir o tráfego entre várias revisões.
Os jobs do Cloud Run são mais adequados para containers que são executados até a conclusão e não atendem a solicitações. Os jobs não têm a capacidade de atender a solicitações ou escutar em uma porta. Isso significa que, ao contrário dos serviços do Cloud Run, os jobs não devem incluir um servidor web. Em vez disso, os containers de jobs devem sair quando terminarem.
Na página a seguir, você pode verificar como abusar das permissões do cloud run para escalar privilégios:
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)