GCP - Konteynerler & GKE Enum
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Konteynerler
GCP konteynerlerinde, GCP’nin sunduğu en yaygın konteyner tabanlı hizmetlerin çoğunu bulabilirsiniz, burada en yaygın olanları nasıl listeleyeceğinizi görebilirsiniz:
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
Aşağıdaki sayfada konteyner izinlerini kötüye kullanarak ayrıcalıkları artırma yöntemini kontrol edebilirsiniz:
Node Havuzları
Bunlar, kubernetes kümelerini oluşturan makine (düğüm) havuzlarıdır.
# 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
Kubernetes nedir hakkında bilgi için bu sayfayı kontrol edin:
Öncelikle, projenizde herhangi bir Kubernetes kümesinin olup olmadığını kontrol edebilirsiniz.
gcloud container clusters list
Eğer bir kümeniz varsa, gcloud otomatik olarak ~/.kube/config dosyanızı yapılandırabilir. Bu dosya, K8s kümeleriyle etkileşimde bulunmak için yerel CLI olan kubectl kullanırken sizi kimlik doğrulamak için kullanılır. Bu komutu deneyin.
gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]
Sonra, oluşturulan kimlik bilgilerini görmek için ~/.kube/config dosyasına bakın. Bu dosya, aktif gcloud oturumunuzun kullandığı aynı kimlik temelinde erişim jetonlarını otomatik olarak yenilemek için kullanılacaktır. Bu elbette doğru izinlerin mevcut olmasını gerektirir.
Bu ayar yapıldıktan sonra, küme yapılandırmasını almak için aşağıdaki komutu deneyebilirsiniz.
kubectl cluster-info
gcloud için konteynerler hakkında daha fazla bilgi edinebilirsiniz burada.
Bu, GCP’de kubernetes’i listelemek için basit bir betiktir: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
TLS Bootstrap Yetki Yükseltme
Başlangıçta bu yetki yükseltme tekniği, bir saldırganın GKE kümesinin içinde privesc yapmasına olanak tanıyordu ve bu da tamamen ele geçirilmesine neden oluyordu.
Bunun nedeni, GKE’nin metadata’da TLS Bootstrap kimlik bilgileri sağlamasıdır; bu bilgiler bir pod’u ele geçirerek herkes tarafından erişilebilir.
Kullanılan teknik, aşağıdaki gönderilerde açıklanmaktadır:
- 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/
Ve bu aracı süreci otomatikleştirmek için oluşturuldu: https://github.com/4ARMED/kubeletmein
Ancak, bu teknik metadata kimlik bilgileri ile yeni bir node için CSR (Sertifika İmzalama İsteği) oluşturmanın mümkün olduğunu kötüye kullandı ve bu istekler otomatik olarak onaylandı.
Testimde, bu isteklerin artık otomatik olarak onaylanmadığını kontrol ettim, bu yüzden bu tekniğin hala geçerli olup olmadığından emin değilim.
Kubelet API’deki Gizli Bilgiler
Bu gönderide GKE’deki bir pod’un içinden erişilebilen bir Kubelet API adresinin, çalışan pod’ların detaylarını verdiği keşfedildi:
curl -v -k http://10.124.200.1:10255/pods
API kaynakları değiştirmeye izin vermese bile, yanıt içinde hassas bilgilerin bulunması mümkün olabilir. /pods uç noktası Kiterunner kullanılarak bulundu.
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

