GCP - Containers, GKE & Composer Enum
कंटेनर्स
GCP कंटेनर्स में आप GCP द्वारा प्रदान की गई अधिकांश कंटेनर आधारित सेवाएं पा सकते हैं, यहाँ आप देख सकते हैं कि सबसे आम लोगों का कैसे एनम करें:
Privesc
निम्नलिखित पृष्ठ पर आप जांच सकते हैं कि कैसे container permissions का दुरुपयोग करके privileges को बढ़ाया जा सकता है:
pageGCP - Container PrivescNode Pools
ये मशीनों के पूल (nodes) होते हैं जो kubernetes clusters का निर्माण करते हैं।
Composer
यह GCP प्रबंधित संस्करण है Airflow का।
Privesc
निम्नलिखित पृष्ठ पर आप जांच सकते हैं कि कैसे composer की अनुमतियों का दुरुपयोग करके अधिकारों को बढ़ाया जा सकता है:
pageGCP - Composer PrivescKubernetes
Kubernetes क्या है, इसकी जानकारी के लिए इस पृष्ठ को देखें:
pageKubernetes Pentestingसबसे पहले, आप यह जांच सकते हैं कि क्या आपके प्रोजेक्ट में कोई Kubernetes क्लस्टर मौजूद हैं।
यदि आपके पास एक क्लस्टर है, तो आप gcloud
को अपनी ~/.kube/config
फ़ाइल को स्वचालित रूप से कॉन्फ़िगर करने दे सकते हैं। यह फ़ाइल आपको प्रमाणित करने के लिए इस्तेमाल की जाती है जब आप kubectl का उपयोग करते हैं, जो K8s क्लस्टर्स के साथ इंटरैक्ट करने के लिए नेटिव CLI है। इस कमांड को आजमाएं।
फिर, उत्पन्न क्रेडेंशियल्स को देखने के लिए ~/.kube/config
फाइल को देखें। यह फाइल आपके सक्रिय gcloud
सत्र की समान पहचान के आधार पर स्वचालित रूप से एक्सेस टोकन्स को रिफ्रेश करने के लिए उपयोग की जाएगी। इसके लिए निश्चित रूप से सही अनुमतियाँ होना आवश्यक है।
एक बार यह सेट अप हो जाने के बाद, आप निम्नलिखित कमांड को आज़मा सकते हैं ताकि क्लस्टर कॉन्फ़िगरेशन प्राप्त कर सकें।
आप gcloud
के बारे में कंटेनरों के लिए यहाँ और पढ़ सकते हैं।
यह GCP में कुबेरनेट्स को सूचीबद्ध करने के लिए एक सरल स्क्रिप्ट है: https://gitlab.com/gitlab-com/gl-security/security-operations/gl-redteam/gcp_k8s_enum
TLS बूटस्ट्रैप प्रिविलेज एस्केलेशन
शुरुआत में यह प्रिविलेज एस्केलेशन तकनीक ने GKE क्लस्टर के अंदर privesc की अनुमति दी थी, जिससे एक हमलावर को इसे पूरी तरह से समझौता करने की क्षमता मिली थी।
यह इसलिए है क्योंकि GKE मेटाडेटा में TLS बूटस्ट्रैप क्रेडेंशियल्स प्रदान करता है, जो किसी भी पॉड को समझौता करके कोई भी एक्सेस कर सकता है।
इस्तेमाल की गई तकनीक निम्नलिखित पोस्ट्स में समझाई गई है:
और यह टूल प्रक्रिया को स्वचालित करने के लिए बनाया गया था: https://github.com/4ARMED/kubeletmein
हालांकि, तकनीक ने इस तथ्य का दुरुपयोग किया कि मेटाडेटा क्रेडेंशियल्स के साथ यह संभव था कि एक CSR (Certificate Signing Request) नए नोड के लिए उत्पन्न किया जाए, जिसे स्वतः स्वीकृत किया जाता था। मेरे परीक्षण में मैंने जांच की कि वे अनुरोध अब स्वतः स्वीकृत नहीं किए जाते हैं, इसलिए मुझे यकीन नहीं है कि यह तकनीक अभी भी मान्य है।
Kubelet API में सीक्रेट्स
इस पोस्ट में यह पता चला कि GKE में एक पॉड के अंदर से एक्सेस किए जाने वाले Kubelet API पते का पता चला जो चल रहे पॉड्स का विवरण देता है:
Last updated