GCP - Containers, GKE & Composer Enum

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Kontejneri

U GCP kontejnerima možete pronaći većinu kontejnerskih usluga koje GCP nudi, ovde možete videti kako da enumerišete najčešće:

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>

Povećanje privilegija

Na sledećoj stranici možete proveriti kako zloupotrebiti dozvole kontejnera da biste povećali privilegije:

GCP - Container Privesc

Čvorovi bazena

Ovo su skup mašina (čvorova) koji čine Kubernetes klaster.

# 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

Ovo je upravljana verzija Airflow-a za GCP.

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

Privesc

Na sledećoj stranici možete proveriti kako zloupotrebiti dozvole kompozitora da biste povećali privilegije:

GCP - Composer Privesc

Kubernetes

Za informacije o tome šta je Kubernetes, pogledajte ovu stranicu:

Kubernetes Pentesting

Prvo, možete proveriti da li postoje bilo koji Kubernetes klasteri u vašem projektu.

gcloud container clusters list

Ako imate klaster, možete podesiti da gcloud automatski konfiguriše vaš ~/.kube/config fajl. Ovaj fajl se koristi za autentifikaciju prilikom korišćenja kubectl, osnovnog CLI-a za interakciju sa K8s klasterima. Isprobajte ovu komandu.

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

Zatim, pogledajte ~/.kube/config datoteku da biste videli generisane akreditive. Ova datoteka će se koristiti za automatsko osvežavanje pristupnih tokena na osnovu istog identiteta koji koristi vaša aktivna gcloud sesija. Naravno, ovo zahteva odgovarajuće dozvole.

Kada je ovo podešeno, možete pokušati sledeću komandu da biste dobili konfiguraciju klastera.

kubectl cluster-info

Možete pročitati više o gcloud za kontejnere ovde.

Ovo je jednostavan skript za enumeraciju Kubernetesa u GCP-u: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum

Privilegije za eskalaciju TLS Bootstrap

Inicialno, ova tehnika za eskalaciju privilegija omogućavala je eskalkaciju privilegija unutar GKE klastera, efektivno omogućavajući napadaču da ga potpuno kompromituje.

To je zato što GKE pruža TLS Bootstrap akreditive u metapodacima, koji su dostupni svima koji kompromituju pod.

Tehnika koja se koristi objašnjena je u sledećim postovima:

A ovaj alat je napravljen da automatizuje proces: https://github.com/4ARMED/kubeletmein

Međutim, tehnika je zloupotrebljavala činjenicu da je sa akreditivima metapodataka bilo moguće generisati CSR (Zahtev za potpisivanje sertifikata) za novi čvor, koji je automatski odobren. U mom testu sam proverio da ti zahtevi više nisu automatski odobreni, pa nisam siguran da li je ova tehnika još uvek važeća.

Tajne u Kubelet API

U ovom postu je otkrivena adresa Kubelet API-ja koja je dostupna iznutra u podu u GKE-u i pruža detalje o pokrenutim podovima:

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

Čak i ako API ne dozvoljava izmenu resursa, moguće je pronaći osetljive informacije u odgovoru. Korišćenjem Kiterunner alata, pronađen je endpoint /pods.

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini da podržite HackTricks:

Last updated