GCP - Containers, GKE & Composer Enum

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

Outras formas de apoiar o HackTricks:

Containers

Nos containers do GCP você pode encontrar a maioria dos serviços baseados em containers que o GCP oferece, aqui você pode ver como enumerar os mais comuns:

gcloud container images list
gcloud container images list --repository us.gcr.io/<project-name> #Search in other subdomains repositories
gcloud container images describe <name>
gcloud container subnets list-usable
gcloud container clusters list
gcloud container clusters describe <name>
gcloud container clusters get-credentials [NAME]

# Run a container locally
docker run --rm -ti gcr.io/<project-name>/secret:v1 sh

# Login & Download
sudo docker login -u oauth2accesstoken -p $(gcloud auth print-access-token) https://HOSTNAME
## where HOSTNAME is gcr.io, us.gcr.io, eu.gcr.io, or asia.gcr.io.
sudo docker pull HOSTNAME/<project-name>/<image-name>

Escalonamento de Privilégios

Na página a seguir, você pode verificar como abusar das permissões de contêiner para escalar privilégios:

pageGCP - Container Privesc

Pools de Nós

Estes são os grupos de máquinas (nós) que formam os clusters kubernetes.

# Pool of machines used by the cluster
gcloud container node-pools list --zone <zone> --cluster <cluster>
gcloud container node-pools describe --cluster <cluster> --zone <zone> <node-pool>

Composer

Esta é a versão gerenciada pelo GCP do Airflow.

gcloud composer environments list --locations <loc>
gcloud composer environments describe --location <loc> <environment>s

Escalonamento de Privilégios

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

pageGCP - Composer Privesc

Kubernetes

Para informações sobre o que é Kubernetes, consulte esta página:

pageKubernetes Pentesting

Primeiro, você pode verificar se existem clusters Kubernetes no seu projeto.

gcloud container clusters list

Se você possui um cluster, pode configurar automaticamente o arquivo ~/.kube/config com gcloud. Este arquivo é usado para autenticá-lo quando você usa kubectl, a CLI nativa para interagir com clusters K8s. Experimente este comando.

gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]

Então, dê uma olhada no arquivo ~/.kube/config para ver as credenciais geradas. Este arquivo será usado para atualizar automaticamente os tokens de acesso com base na mesma identidade que sua sessão ativa gcloud está usando. Isso, claro, requer as permissões corretas configuradas.

Uma vez configurado, você pode tentar o seguinte comando para obter a configuração do cluster.

kubectl cluster-info

Você pode ler mais sobre gcloud para containers aqui.

Este é um script simples para enumerar kubernetes no GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum

Escalada de Privilégio TLS Boostrap

Inicialmente, esta técnica de escalada de privilégio permitia privesc dentro do cluster GKE, permitindo efetivamente que um atacante comprometesse completamente.

Isso ocorre porque o GKE fornece credenciais de Bootstrap TLS nos metadados, que são acessíveis por qualquer pessoa apenas comprometendo um pod.

A técnica utilizada é explicada nos seguintes posts:

E esta ferramenta foi criada para automatizar o processo: https://github.com/4ARMED/kubeletmein

No entanto, a técnica abusava do fato de que com as credenciais dos metadados era possível gerar um CSR (Pedido de Assinatura de Certificado) para um novo nó, que era automaticamente aprovado. No meu teste, verifiquei que esses pedidos não são mais aprovados automaticamente, então não tenho certeza se esta técnica ainda é válida.

Segredos na API Kubelet

Neste post foi descoberto um endereço da API Kubelet acessível de dentro de um pod no GKE, dando detalhes dos pods em execução:

curl -v -k http://10.124.200.1:10255/pods

Mesmo que a API não permita modificar recursos, pode ser possível encontrar informações sensíveis na resposta. O endpoint /pods foi encontrado usando Kiterunner.

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

Outras formas de apoiar o HackTricks:

Última actualización