GCP - Containers, GKE & Composer Enum

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Konteynerler

GCP konteynerlerinde, GCP'nin sunduğu çoğu konteyner tabanlı hizmeti bulabilirsiniz, burada en yaygın olanlarını nasıl sıralayacağınızı 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>

Privilege Escalation

Aşağıdaki sayfada, ayrıcalıkları yükseltmek için konteyner izinlerini kötüye kullanma yöntemlerini kontrol edebilirsiniz:

pageGCP - Container Privesc

Düğüm Havuzları

Bunlar, Kubernetes küme oluşturan makinelerin (düğümlerin) havuzudur.

# 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

Bu, Airflow'un GCP tarafından yönetilen sürümüdür.

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

Privesc

Aşağıdaki sayfada, ayrıcalıkları yükseltmek için besteci izinlerini kötüye kullanma yöntemlerini kontrol edebilirsiniz:

pageGCP - Composer Privesc

Kubernetes

Kubernetes nedir hakkında bilgi için bu sayfayı kontrol edebilirsiniz:

pageKubernetes Pentesting

İlk olarak, projenizde herhangi bir Kubernetes kümesi 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ümeyle etkileşimde bulunmak için kullanılan 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]

Ardından, oluşturulan kimlik bilgilerini görmek için ~/.kube/config dosyasına bakın. Bu dosya, erişim belirteçlerini otomatik olarak yenilemek için etkin gcloud oturumunuzun kullandığı aynı kimlik bilgisini kullanır. Tabii ki, bunun için doğru izinlerin olması gerekmektedir.

Bu yapılandırma 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 bilgiye buradan ulaşabilirsiniz.

Bu, GCP'deki Kubernetes'i sıralamak için basit bir betiktir: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum

TLS Boostrap Yetki Yükseltme

Başlangıçta bu yetki yükseltme tekniği, bir saldırganın GKE kümesi içinde yetki yükseltme yapmasına ve onu tamamen ele geçirmesine izin veriyordu.

Bu, GKE'nin TLS Bootstrap kimlik bilgilerini metadata içinde sağlaması nedeniyle mümkündü ve bu metadata, bir pod'un sadece ele geçirilmesiyle herkes tarafından erişilebilir.

Kullanılan teknik aşağıdaki gönderilerde açıklanmıştır:

Ve bu araç, süreci otomatikleştirmek için oluşturuldu: https://github.com/4ARMED/kubeletmein

Ancak, teknik, metadata kimlik bilgileriyle bir yeni düğüm için CSR (Sertifika İmzalama İsteği) oluşturmanın ve bunun otomatik olarak onaylanmasının mümkün olduğu gerçeğini istismar etti. 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 Sırlar

Bu gönderide GKE içinde bir pod'dan erişilebilen bir Kubelet API adresinin, çalışan pod'ların ayrıntılarını verdiği keşfedildi.

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

API kaynakları değiştirmeye izin vermediği halde, yanıtta hassas bilgiler bulunabilir. /pods uç noktası Kiterunner kullanılarak bulundu.

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahraman olmak için AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated