GCP - Kontejneri i GKE Enum
Reading time: 5 minutes
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.
Kontejneri
U GCP kontejnerima možete pronaći većinu usluga zasnovanih na kontejnerima 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>
Privesc
Na sledećoj stranici možete proveriti kako da zloupotrebite dozvole kontejnera za eskalaciju privilegija:
Node Pools
Ovo su bazeni mašina (čvorova) koji čine kubernetes klastere.
# 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>
Kubernetes
Za informacije o tome šta je Kubernetes, proverite ovu stranicu:
Prvo, možete proveriti da li postoje neki Kubernetes klasteri u vašem projektu.
gcloud container clusters list
Ako imate klaster, možete da omogućite gcloud
da automatski konfiguriše vaš ~/.kube/config
fajl. Ovaj fajl se koristi za autentifikaciju kada koristite kubectl, nativni CLI za interakciju sa K8s klasterima. Pokušajte ovu komandu.
gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]
Zatim, pogledajte ~/.kube/config
datoteku da vidite generisane akreditive. Ova datoteka će se koristiti za automatsko osvežavanje pristupnih tokena na osnovu iste identitete koju vaša aktivna gcloud
sesija koristi. To naravno zahteva odgovarajuće dozvole.
Kada je ovo postavljeno, možete pokušati sledeću komandu da dobijete konfiguraciju klastera.
kubectl cluster-info
Možete pročitati više o gcloud
za kontejnere ovde.
Ovo je jednostavan skript za enumeraciju kubernetes-a u GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
TLS Boostrap Privilege Escalation
U početku je ova tehnika eskalacije privilegija omogućila privesc unutar GKE klastera, što je efikasno omogućilo napadaču da potpuno kompromituje.
To je zato što GKE pruža TLS Bootstrap kredencijale u metapodacima, koji su dostupni svima samo kompromitovanjem poda.
Tehnika koja se koristi objašnjena je u sledećim postovima:
- https://www.4armed.com/blog/hacking-kubelet-on-gke/
- https://www.4armed.com/blog/kubeletmein-kubelet-hacking-tool/
- https://rhinosecuritylabs.com/cloud-security/kubelet-tls-bootstrap-privilege-escalation/
I ovaj alat je kreiran da automatizuje proces: https://github.com/4ARMED/kubeletmein
Međutim, tehnika je zloupotrebljavala činjenicu da je sa metapodacima bilo moguće generisati CSR (Zahtev za potpisivanje sertifikata) za novi čvor, koji je bio automatski odobren.
U mom testu sam proverio da ti zahtevi više nisu automatski odobreni, tako da nisam siguran da li je ova tehnika još uvek validna.
Tajne u Kubelet API
U ovom postu otkrivena je Kubelet API adresa dostupna iznutra poda u GKE koja daje detalje o pokrenutim podovima:
curl -v -k http://10.124.200.1:10255/pods
Čak i ako API ne dozvoljava modifikaciju resursa, može biti moguće pronaći osetljive informacije u odgovoru. Endpoint /pods je pronađen korišćenjem Kiterunner.
tip
Učite i vežbajte AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Učite i vežbajte GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Učite i vežbajte Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Podržite HackTricks
- Proverite planove pretplate!
- Pridružite se 💬 Discord grupi ili telegram grupi ili pratite nas na Twitteru 🐦 @hacktricks_live.
- Podelite hakerske trikove slanjem PR-ova na HackTricks i HackTricks Cloud github repozitorijume.