GCP - कंटेनर और GKE Enum

Reading time: 5 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

कंटेनर

GCP कंटेनरों में आप GCP द्वारा प्रदान की जाने वाली अधिकांश कंटेनर आधारित सेवाएँ पा सकते हैं, यहाँ आप सबसे सामान्य सेवाओं को सूचीबद्ध करने का तरीका देख सकते हैं:

bash
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

इस पृष्ठ पर आप देख सकते हैं कि कंटेनर अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं:

GCP - Container Privesc

Node Pools

ये मशीनों (नोड्स) का पूल हैं जो कुबेरनेट्स क्लस्टर बनाते हैं।

bash
# 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 क्या है इस बारे में जानकारी के लिए इस पृष्ठ को देखें:

Kubernetes Pentesting

पहले, आप यह जांच सकते हैं कि क्या आपके प्रोजेक्ट में कोई Kubernetes क्लस्टर मौजूद हैं।

gcloud container clusters list

यदि आपके पास एक क्लस्टर है, तो आप gcloud को अपने ~/.kube/config फ़ाइल को स्वचालित रूप से कॉन्फ़िगर करने के लिए कह सकते हैं। यह फ़ाइल आपको प्रमाणित करने के लिए उपयोग की जाती है जब आप kubectl का उपयोग करते हैं, जो K8s क्लस्टरों के साथ बातचीत करने के लिए मूल CLI है। इस कमांड को आजमाएँ।

gcloud container clusters get-credentials [CLUSTER NAME] --region [REGION]

फिर, उत्पन्न किए गए क्रेडेंशियल्स को देखने के लिए ~/.kube/config फ़ाइल पर नज़र डालें। इस फ़ाइल का उपयोग सक्रिय gcloud सत्र द्वारा उपयोग की जा रही समान पहचान के आधार पर स्वचालित रूप से एक्सेस टोकन को ताज़ा करने के लिए किया जाएगा। इसके लिए सही अनुमतियों की आवश्यकता होती है।

एक बार जब यह सेट हो जाए, तो आप क्लस्टर कॉन्फ़िगरेशन प्राप्त करने के लिए निम्नलिखित कमांड आज़मा सकते हैं।

kubectl cluster-info

आप gcloud के बारे में कंटेनरों के लिए यहाँ अधिक पढ़ सकते हैं।

यह GCP में कुबेरनेट्स को सूचीबद्ध करने के लिए एक सरल स्क्रिप्ट है: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum

TLS बूटस्ट्रैप विशेषाधिकार वृद्धि

शुरुआत में, इस विशेषाधिकार वृद्धि तकनीक ने GKE क्लस्टर के अंदर प्रिवेस्क की अनुमति दी, जिससे एक हमलावर को पूर्ण रूप से समझौता करने की अनुमति मिली।

यह इसलिए है क्योंकि GKE TLS बूटस्ट्रैप क्रेडेंशियल्स को मेटाडेटा में प्रदान करता है, जो किसी भी व्यक्ति द्वारा केवल एक पॉड को समझौता करके सुलभ है।

उपयोग की गई तकनीक निम्नलिखित पोस्ट में समझाई गई है:

और इस उपकरण को प्रक्रिया को स्वचालित करने के लिए बनाया गया था: https://github.com/4ARMED/kubeletmein

हालांकि, तकनीक ने इस तथ्य का दुरुपयोग किया कि मेटाडेटा क्रेडेंशियल्स के साथ एक नए नोड के लिए CSR (सर्टिफिकेट साइनिंग अनुरोध) जनरेट करना संभव था, जिसे स्वचालित रूप से स्वीकृत किया गया था।
मेरी परीक्षा में मैंने जांचा कि वे अनुरोध अब स्वचालित रूप से स्वीकृत नहीं होते, इसलिए मुझे यकीन नहीं है कि यह तकनीक अभी भी मान्य है।

Kubelet API में रहस्य

इस पोस्ट में यह खोजा गया था कि GKE में एक पॉड के अंदर से सुलभ Kubelet API पता है जो चल रहे पॉड्स के विवरण देता है:

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

भले ही API संसाधनों को संशोधित करने की अनुमति नहीं देती, फिर भी प्रतिक्रिया में संवेदनशील जानकारी मिलना संभव हो सकता है। एंडपॉइंट /pods को Kiterunner का उपयोग करके पाया गया।

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें