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

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:

GCP - Container Privesc

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:

Kubernetes Pentesting

Ö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:

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