GCP - Kontenery i GKE Enum
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
Kontenery
W kontenerach GCP można znaleźć większość usług opartych na kontenerach oferowanych przez GCP, tutaj można zobaczyć, jak enumerować najczęściej występujące:
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 poniższej stronie możesz sprawdzić, jak nadużyć uprawnień kontenera, aby eskalować uprawnienia:
Node Pools
To są pule maszyn (węzłów), które tworzą klastry 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>
Kubernetes
Aby uzyskać informacje na temat tego, czym jest Kubernetes, sprawdź tę stronę:
Najpierw możesz sprawdzić, czy w twoim projekcie istnieją jakiekolwiek klastry Kubernetes.
gcloud container clusters list
Jeśli masz klaster, możesz mieć gcloud, aby automatycznie skonfigurować swój plik ~/.kube/config. Plik ten jest używany do uwierzytelniania, gdy używasz kubectl, natywnego interfejsu CLI do interakcji z klastrami K8s. Spróbuj tego polecenia.
gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]
Następnie sprawdź plik ~/.kube/config, aby zobaczyć wygenerowane poświadczenia. Plik ten będzie używany do automatycznego odświeżania tokenów dostępu na podstawie tej samej tożsamości, której używa Twoja aktywna sesja gcloud. Oczywiście wymaga to odpowiednich uprawnień.
Gdy to zostanie skonfigurowane, możesz spróbować następującego polecenia, aby uzyskać konfigurację klastra.
kubectl cluster-info
Możesz przeczytać więcej o gcloud dla kontenerów tutaj.
To jest prosty skrypt do enumeracji kubernetes w GCP: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
TLS Boostrap Privilege Escalation
Początkowo ta technika eskalacji uprawnień pozwalała na privesc wewnątrz klastra GKE, co skutecznie pozwalało atakującemu na pełne skompromitowanie go.
Dzieje się tak, ponieważ GKE zapewnia TLS Bootstrap credentials w metadanych, które są dostępne dla każdego, kto tylko skompromituje pod.
Technika użyta jest wyjaśniona w następujących postach:
- 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/
A to narzędzie zostało stworzone, aby zautomatyzować ten proces: https://github.com/4ARMED/kubeletmein
Jednak technika wykorzystywała fakt, że z danymi uwierzytelniającymi metadanych możliwe było wygenerowanie CSR (Certificate Signing Request) dla nowego węzła, który był automatycznie zatwierdzany.
W moim teście sprawdziłem, że te żądania nie są już automatycznie zatwierdzane, więc nie jestem pewien, czy ta technika jest nadal ważna.
Secrets in Kubelet API
W tym poście odkryto, że adres API Kubelet jest dostępny z wnętrza podu w GKE, podając szczegóły działających podów:
curl -v -k http://10.124.200.1:10255/pods
Nawet jeśli API nie pozwala na modyfikację zasobów, możliwe jest znalezienie wrażliwych informacji w odpowiedzi. Punkt końcowy /pods został znaleziony za pomocą Kiterunner.
Tip
Ucz się & ćwicz AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Ucz się & ćwicz GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Ucz się & ćwicz Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Wspieraj HackTricks
- Sprawdź subscription plans!
- Dołącz do 💬 Discord group lub telegram group lub śledź nas na Twitterze 🐦 @hacktricks_live.
- Podziel się hacking tricks, zgłaszając PRy do HackTricks i HackTricks Cloud github repos.
HackTricks Cloud

