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 का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।
कंटेनर
GCP कंटेनरों में आप GCP द्वारा प्रदान की जाने वाली अधिकांश कंटेनर आधारित सेवाएँ पा सकते हैं, यहाँ आप सबसे सामान्य सेवाओं को सूचीबद्ध करने का तरीका देख सकते हैं:
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
इस पृष्ठ पर आप देख सकते हैं कि कंटेनर अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं:
Node Pools
ये मशीनों (नोड्स) का पूल हैं जो कुबेरनेट्स क्लस्टर बनाते हैं।
# 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 क्लस्टर मौजूद हैं।
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://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/
और इस उपकरण को प्रक्रिया को स्वचालित करने के लिए बनाया गया था: 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 का समर्थन करें
- सदस्यता योजनाओं की जांच करें!
- हमारे 💬 Discord समूह या टेलीग्राम समूह में शामिल हों या हमें Twitter 🐦 @hacktricks_live** पर फॉलो करें।**
- हैकिंग ट्रिक्स साझा करें, PRs को HackTricks और HackTricks Cloud गिटहब रिपोजिटरी में सबमिट करके।