GCP Pentesting
Basic Information
GCP environment का pentesting शुरू करने से पहले, आपको इसके काम करने के तरीके के बारे में कुछ मूल बातें जाननी होंगी ताकि आप समझ सकें कि आपको क्या करना है, misconfigurations को कैसे ढूंढना है और उनका exploit कैसे करना है।
organization hierarchy, permissions और अन्य मूलभूत अवधारणाओं जैसे concepts को समझाया गया है:
GCP - Basic InformationLabs to learn
GCP Pentester/Red Team Methodology
GCP environment का audit करने के लिए यह जानना बहुत महत्वपूर्ण है: कौन से services उपयोग किए जा रहे हैं, क्या exposed हो रहा है, किसके पास access है, और आंतरिक GCP services और external services कैसे जुड़े हुए हैं।
Red Team के दृष्टिकोण से, GCP environment को compromise करने का पहला कदम कुछ credentials प्राप्त करना है। यहां कुछ विचार दिए गए हैं कि इसे कैसे किया जाए:
github (या समान) में leaks - OSINT
Social Engineering (पृष्ठ देखें Workspace Security)
Password पुन: उपयोग (password leaks)
GCP-Hosted Applications में Vulnerabilities
Server Side Request Forgery metadata endpoint तक पहुंच के साथ
Local File Read
/home/USERNAME/.config/gcloud/*
C:\Users\USERNAME\.config\gcloud\*
3rd parties breached
Internal Employee
या unauthenticated service को compromise करके जो exposed है:
GCP - Unauthenticated Enum & Accessया यदि आप review कर रहे हैं तो आप बस इन roles के साथ credentials मांग सकते हैं:
GCP - Permissions for a Pentestएक बार जब आप credentials प्राप्त करने में सफल हो जाते हैं, तो आपको यह जानना होगा कि वे credentials किसके हैं, और उनके पास क्या access है, इसलिए आपको कुछ बुनियादी enumeration करना होगा:
Basic Enumeration
SSRF
GCP metadata को enumerate करने के बारे में अधिक जानकारी के लिए निम्नलिखित hacktricks पृष्ठ देखें:
Whoami
GCP में आप यह जानने के लिए कई विकल्प आजमा सकते हैं कि आप कौन हैं:
Org Enumeration
संगठन गणना
Principals & IAM Enumeration
यदि आपके पास पर्याप्त अनुमतियाँ हैं, तो GCP खाते के अंदर प्रत्येक इकाई के विशेषाधिकारों की जाँच करना आपको यह समझने में मदद करेगा कि आप और अन्य पहचानें क्या कर सकते हैं और विशेषाधिकार कैसे बढ़ा सकते हैं।
यदि आपके पास IAM को सूचीबद्ध करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो आप उन्हें पता लगाने के लिए ब्रूट-फोर्स चुरा सकते हैं। सूचीकरण और ब्रूट-फोर्सिंग कैसे करें देखें:
GCP - IAM, Principals & Org Policies Enumअब जब आपके पास अपने क्रेडेंशियल्स के बारे में कुछ जानकारी है (और यदि आप एक रेड टीम हैं तो उम्मीद है कि आप पता नहीं चले हैं)। यह पता लगाने का समय है कि पर्यावरण में कौन सी सेवाएँ उपयोग की जा रही हैं। निम्नलिखित अनुभाग में आप कुछ सामान्य सेवाओं को सूचीबद्ध करने के कुछ तरीके देख सकते हैं।
Services Enumeration
GCP में सेवाओं की एक आश्चर्यजनक मात्रा है, निम्नलिखित पृष्ठ पर आपको मूल जानकारी, सूचीकरण चीटशीट्स, पता लगाने से बचने, स्थायित्व प्राप्त करने, और उनमें से कुछ के बारे में अन्य पोस्ट-एक्सप्लॉइटेशन ट्रिक्स मिलेंगी:
GCP - Servicesध्यान दें कि आपको सारा काम मैन्युअल रूप से करने की आवश्यकता नहीं है, इस पोस्ट के नीचे आप स्वचालित उपकरणों के बारे में एक अनुभाग पा सकते हैं।
इसके अलावा, इस चरण में आपने अप्रमाणित उपयोगकर्ताओं के लिए अधिक सेवाएँ उजागर की हो सकती हैं, आप उन्हें शोषण करने में सक्षम हो सकते हैं:
GCP - Unauthenticated Enum & AccessPrivilege Escalation, Post Exploitation & Persistence
कुछ क्लाउड क्रेडेंशियल्स प्राप्त करने या क्लाउड के अंदर चल रही किसी सेवा से समझौता करने के बाद सबसे सामान्य तरीका समझौता किए गए खाते के पास हो सकने वाले गलत कॉन्फ़िगर किए गए विशेषाधिकारों का दुरुपयोग करना है। इसलिए, सबसे पहले आपको अपने विशेषाधिकारों को सूचीबद्ध करना चाहिए।
इसके अलावा, इस सूचीकरण के दौरान, याद रखें कि अनुमतियाँ "संगठन" के उच्चतम स्तर पर सेट की जा सकती हैं।
GCP - Privilege EscalationGCP - Post ExploitationGCP - PersistencePublicly Exposed Services
GCP सेवाओं को सूचीबद्ध करते समय आपने उनमें से कुछ को इंटरनेट पर तत्वों को उजागर करते हुए पाया होगा (VM/Containers पोर्ट्स, डेटाबेस या कतार सेवाएँ, स्नैपशॉट्स या बकेट्स...)। एक पेंटेस्टर/रेड टीमर के रूप में आपको हमेशा यह जांचना चाहिए कि क्या आप उनमें संवेदनशील जानकारी / कमजोरियाँ पा सकते हैं क्योंकि वे आपको AWS खाते में और अधिक पहुंच प्रदान कर सकते हैं।
इस पुस्तक में आपको उजागर GCP सेवाओं को खोजने और उनकी जांच करने के बारे में जानकारी मिलनी चाहिए। उजागर नेटवर्क सेवाओं में कमजोरियों को खोजने के बारे में मैं आपको विशिष्ट सेवा के लिए खोजने की सलाह दूंगा:
GCP <--> Workspace Pivoting
एक प्लेटफ़ॉर्म में प्रिंसिपल्स से समझौता करना एक हमलावर को दूसरे को समझौता करने की अनुमति दे सकता है, इसे देखें:
GCP <--> Workspace PivotingAutomatic Tools
GCloud कंसोल में, https://console.cloud.google.com/iam-admin/asset-inventory/dashboard पर आप प्रोजेक्ट द्वारा उपयोग किए जा रहे संसाधनों और IAMs को देख सकते हैं।
यहां आप इस API द्वारा समर्थित संपत्तियों को देख सकते हैं: https://cloud.google.com/asset-inventory/docs/supported-asset-types
उपकरणों की जांच करें जो कई क्लाउड्स में उपयोग किए जा सकते हैं।
gcp_scanner: यह एक GCP संसाधन स्कैनर है जो यह निर्धारित करने में मदद कर सकता है कि GCP पर कुछ क्रेडेंशियल्स के पास किस स्तर की पहुंच है।
gcp_enum: gcloud cli का उपयोग करके GCP वातावरण को सूचीबद्ध करने और परिणामों को एक फ़ाइल में सहेजने के लिए Bash स्क्रिप्ट।
GCP-IAM-Privilege-Escalation: उच्च IAM विशेषाधिकारों को सूचीबद्ध करने और GCP में उनका दुरुपयोग करके विशेषाधिकार बढ़ाने के लिए स्क्रिप्ट (मैं सूचीबद्ध स्क्रिप्ट को चला नहीं सका)।
BF My GCP Permissions: आपके अनुमतियों को ब्रूटफोर्स करने के लिए स्क्रिप्ट।
gcloud config & debug
gcloud, gsutil... नेटवर्क कैप्चर करें
याद रखें कि आप gcloud
cli के साथ --log-http
parameter का उपयोग करके requests को print कर सकते हैं जो टूल कर रहा है। यदि आप नहीं चाहते कि लॉग्स टोकन मान को हटा दें, तो gcloud config set log_http_redact_token false
का उपयोग करें।
इसके अलावा, संचार को इंटरसेप्ट करने के लिए:
OAuth token को gcloud में configure करना
metadata endpoint से exfiltrated service account OAuth token का उपयोग करने के लिए आप बस यह कर सकते हैं:
संदर्भ
Last updated