GCP - Containers, GKE & Composer Enum

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Houers

In GCP-houers kan jy die meeste van die houersgebaseerde dienste wat GCP bied, vind. Hier kan jy sien hoe om die mees algemene eenhede op te som:

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>

Privesc

In die volgende bladsy kan jy sien hoe om houer toestemmings te misbruik om voorregte te verhoog:

Node Pools

Dit is die groep masjiene (nodes) wat die kubernetes-klusters vorm.

# 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>

Komponis

Dit is die GCP-bestuurde weergawe van Airflow.

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

Privesc

In die volgende bladsy kan jy sien hoe om komponis-toestemmings te misbruik om voorregte te verhoog:

Kubernetes

Vir inligting oor wat Kubernetes is, kyk na hierdie bladsy:

Eerstens kan jy kyk of daar enige Kubernetes-klusters in jou projek bestaan.

gcloud container clusters list

As jy 'n groep het, kan jy gcloud outomaties jou ~/.kube/config lêer konfigureer. Hierdie lêer word gebruik om jou te outentiseer wanneer jy kubectl gebruik, die inheemse CLI vir interaksie met K8s groepe. Probeer hierdie bevel.

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

Neem dan 'n kykie na die ~/.kube/config lêer om die gegenereerde geloofsbriewe te sien. Hierdie lêer sal gebruik word om toegangstokens outomaties te hernu gebaseer op dieselfde identiteit wat jou aktiewe gcloud sessie gebruik. Dit vereis natuurlik die korrekte toestemmings.

Sodra dit opgestel is, kan jy die volgende bevel probeer om die klasterkonfigurasie te kry.

kubectl cluster-info

Jy kan meer lees oor gcloud vir houers hier.

Dit is 'n eenvoudige skripsie om kubernetes in GCP te ondersoek: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum

TLS Boostrap Privilege Escalation

Aanvanklik het hierdie voorregverhogingstegniek toegelaat om privesc binne die GKE-kluster uit te voer en dit moontlik gemaak vir 'n aanvaller om dit volledig te kompromitteer.

Dit is omdat GKE TLS Bootstrap-legitimasie in die metadata voorsien, wat toeganklik is vir enigiemand wat 'n houer kompromitteer.

Die tegniek wat gebruik word, word verduidelik in die volgende plasings:

En hierdie instrument is geskep om die proses te outomatiseer: https://github.com/4ARMED/kubeletmein

Tog het die tegniek misbruik gemaak van die feit dat met die metadata-legitimasie dit moontlik was om 'n CSR (Certificate Signing Request) vir 'n nuwe node te genereer, wat outomaties goedgekeur is. In my toets het ek vasgestel dat daardie versoeke nie meer outomaties goedgekeur word nie, so ek is nie seker of hierdie tegniek nog geldig is nie.

Geheime in Kubelet API

In hierdie pos is daar ontdek dat daar 'n Kubelet API-adres is wat toeganklik is van binne 'n houer in GKE en die besonderhede van die houers wat loop, verskaf:

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

Selfs as die API nie toelaat om hulpbronne te wysig nie, kan dit moontlik wees om sensitiewe inligting in die respons te vind. Die eindpunt /pods is gevind met behulp van Kiterunner.

Leer AWS-hacking van nul tot held met htARTE (HackTricks AWS Red Team Expert)!

Ander maniere om HackTricks te ondersteun:

Last updated