GCP Pentesting

Reading time: 10 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 का समर्थन करें

Basic Information

GCP वातावरण का pentesting शुरू करने से पहले, कुछ बुनियादी बातें हैं जो आपको जाननी चाहिए कि यह कैसे काम करता है, ताकि आप समझ सकें कि आपको क्या करना है, कैसे गलत कॉन्फ़िगरेशन खोजने हैं और उन्हें कैसे शोषण करना है।

संगठन पदानुक्रम, अनुमतियाँ और अन्य बुनियादी अवधारणाएँ इस में समझाई गई हैं:

GCP - Basic Information

Labs to learn

GCP Pentester/Red Team Methodology

GCP वातावरण का ऑडिट करने के लिए यह जानना बहुत महत्वपूर्ण है: कौन सी सेवाएँ उपयोग की जा रही हैं, क्या प्रदर्शित किया जा रहा है, किसके पास पहुँच है, और आंतरिक GCP सेवाएँ और बाहरी सेवाएँ कैसे जुड़ी हुई हैं।

Red Team के दृष्टिकोण से, GCP वातावरण को समझौता करने का पहला कदम कुछ क्रेडेंशियल्स प्राप्त करना है। यहाँ कुछ विचार दिए गए हैं कि आप ऐसा कैसे कर सकते हैं:

  • github (या समान) में लीक - OSINT
  • सोशल इंजीनियरिंग (पृष्ठ Workspace Security देखें)
  • पासवर्ड पुन: उपयोग (पासवर्ड लीक)
  • GCP-Hosted Applications में कमजोरियाँ
  • Server Side Request Forgery के साथ मेटाडेटा एंडपॉइंट तक पहुँच
  • स्थानीय फ़ाइल पढ़ें
  • /home/USERNAME/.config/gcloud/*
  • C:\Users\USERNAME\.config\gcloud\*
  • 3rd पार्टियों के भंग
  • आंतरिक कर्मचारी

या अप्रमाणित सेवा को समझौता करके जो प्रदर्शित है:

GCP - Unauthenticated Enum & Access

या यदि आप एक समीक्षा कर रहे हैं तो आप बस इन भूमिकाओं के साथ क्रेडेंशियल्स के लिए पूछ सकते हैं:

GCP - Permissions for a Pentest

note

एक बार जब आप क्रेडेंशियल्स प्राप्त करने में सफल हो जाते हैं, तो आपको यह जानना होगा कि ये क्रेडेंशियल्स किसके हैं, और इनके पास क्या पहुँच है, इसलिए आपको कुछ बुनियादी एन्यूमरेशन करना होगा:

Basic Enumeration

SSRF

GCP मेटाडेटा को एन्यूमरेट करने के बारे में अधिक जानकारी के लिए निम्नलिखित हैक्ट्रिक्स पृष्ठ देखें:

Cloud SSRF - HackTricks

Whoami

GCP में आप यह अनुमान लगाने के लिए कई विकल्प आजमा सकते हैं कि आप कौन हैं:

bash
#If you are inside a compromise machine
gcloud auth list
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=$(gcloud auth print-access-token)" https://www.googleapis.com/oauth2/v1/tokeninfo
gcloud auth print-identity-token #Get info from the token

#If you compromised a metadata token or somehow found an OAuth token
curl -H "Content-Type: application/x-www-form-urlencoded" -d "access_token=<token>" https://www.googleapis.com/oauth2/v1/tokeninfo

आप /userinfo API एंडपॉइंट का उपयोग करके उपयोगकर्ता के बारे में अधिक जानकारी प्राप्त कर सकते हैं:

bash
curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: OAuth $(gcloud auth print-access-token)" https://www.googleapis.com/oauth2/v1/userinfo

curl -H "Content-Type: application/x-www-form-urlencoded" -H "Authorization: OAuth <access_token>" https://www.googleapis.com/oauth2/v1/userinfo

संगठन Enumeration

bash
# Get organizations
gcloud organizations list #The DIRECTORY_CUSTOMER_ID is the Workspace ID
gcloud resource-manager folders list --organization <org_number> # Get folders
gcloud projects list # Get projects

Principals & IAM Enumeration

यदि आपके पास पर्याप्त अनुमतियाँ हैं, तो GCP खाते के अंदर प्रत्येक इकाई के विशेषाधिकारों की जांच करना आपको यह समझने में मदद करेगा कि आप और अन्य पहचान क्या कर सकते हैं और कैसे विशेषाधिकार बढ़ा सकते हैं

यदि आपके पास IAM को सूचीबद्ध करने के लिए पर्याप्त अनुमतियाँ नहीं हैं, तो आप उन्हें ब्रूट-फोर्स करके चुरा सकते हैं
जांचें सूचीकरण और ब्रूट-फोर्सिंग कैसे करें में:

GCP - IAM, Principals & Org Policies Enum

note

अब जब आपके पास आपकी क्रेडेंशियल्स के बारे में कुछ जानकारी है (और यदि आप एक रेड टीम हैं, तो उम्मीद है कि आप पता नहीं चले)। यह पता लगाने का समय है कि वातावरण में कौन सी सेवाएँ उपयोग की जा रही हैं।
अगले अनुभाग में आप कुछ सामान्य सेवाओं को सूचीबद्ध करने के कुछ तरीके देख सकते हैं।

Services Enumeration

GCP में सेवाओं की एक आश्चर्यजनक मात्रा है, अगले पृष्ठ में आप बुनियादी जानकारी, सूचीकरण चीटशीट, पता लगाने से बचने के तरीके, स्थायीता प्राप्त करने, और उनमें से कुछ के बारे में अन्य पोस्ट-एक्सप्लॉइटेशन ट्रिक्स पाएंगे:

GCP - Services

ध्यान दें कि आपको सभी कार्य हाथ से करने की आवश्यकता नहीं है, इस पोस्ट के नीचे आप स्वचालित उपकरणों के बारे में एक अनुभाग पा सकते हैं automatic tools

इसके अलावा, इस चरण में आप अधिक सेवाएँ अनधिकृत उपयोगकर्ताओं के लिए उजागर कर सकते हैं, आप उन्हें शोषण करने में सक्षम हो सकते हैं:

GCP - Unauthenticated Enum & Access

Privilege Escalation, Post Exploitation & Persistence

जब आपने कुछ क्लाउड क्रेडेंशियल्स प्राप्त कर लिए हैं या क्लाउड के अंदर चल रही कुछ सेवा से समझौता कर लिया है, तो सबसे सामान्य तरीका है गलत कॉन्फ़िगर की गई विशेषाधिकारों का दुरुपयोग करना जो समझौता किए गए खाते के पास हो सकते हैं। इसलिए, आपको सबसे पहले अपने विशेषाधिकारों को सूचीबद्ध करना चाहिए।

इसके अलावा, इस सूचीकरण के दौरान, याद रखें कि अनुमतियाँ "संगठन" के उच्चतम स्तर पर सेट की जा सकती हैं

GCP - Privilege Escalation

GCP - Post Exploitation

GCP - Persistence

Publicly Exposed Services

जब आप GCP सेवाओं को सूचीबद्ध कर रहे थे, तो आप उनमें से कुछ को इंटरनेट पर तत्वों को उजागर करते हुए पा सकते हैं (VM/Containers पोर्ट, डेटाबेस या कतार सेवाएँ, स्नैपशॉट या बकेट...)।
एक पेंटेस्टर/रेड टीमर के रूप में, आपको हमेशा यह जांचना चाहिए कि क्या आप उन पर संवेदनशील जानकारी / कमजोरियों को खोज सकते हैं क्योंकि वे आपको AWS खाते में आगे की पहुँच प्रदान कर सकते हैं।

इस पुस्तक में आपको जानकारी मिलेगी कि कैसे उजागर GCP सेवाओं को खोजें और उन्हें कैसे जांचें। उजागर नेटवर्क सेवाओं में कमजोरियों को खोजने के लिए, मैं आपको विशिष्ट सेवा के लिए खोजने की सिफारिश करूंगा:

HackTricks - HackTricks

GCP <--> Workspace Pivoting

एक प्लेटफ़ॉर्म में समझौता करना एक हमलावर को दूसरे को समझौता करने की अनुमति दे सकता है, इसे जांचें:

GCP <--> Workspace Pivoting

Automatic Tools

bash
# Install
git clone https://github.com/google/gcp_scanner.git
cd gcp_scanner
virtualenv -p python3 venv
source venv/bin/activate
pip install -r requirements.txt
# Execute with gcloud creds
python3 __main__.py -o /tmp/output/ -g "$HOME/.config/gcloud"
  • gcp_enum: GCP वातावरण को gcloud cli का उपयोग करके सूचीबद्ध करने और परिणामों को एक फ़ाइल में सहेजने के लिए Bash स्क्रिप्ट।
  • GCP-IAM-Privilege-Escalation: उच्च IAM विशेषाधिकारों को सूचीबद्ध करने और GCP में उनका दुरुपयोग करके विशेषाधिकारों को बढ़ाने के लिए स्क्रिप्ट (मैं सूचीबद्ध स्क्रिप्ट को चलाने में असमर्थ था)।
  • BF My GCP Permissions: आपके अनुमतियों को ब्रूटफोर्स करने के लिए स्क्रिप्ट।

gcloud config & debug

bash
# Login so gcloud can use your credentials
gcloud auth login
gcloud config set project security-devbox
gcloud auth print-access-token

# Login so SDKs can use your user credentials
gcloud auth application-default login
gcloud auth application-default set-quota-project security-devbox
gcloud auth application-default print-access-token

# Update gcloud
gcloud components update

Capture gcloud, gsutil... network

याद रखें कि आप gcloud cli के साथ --log-http पैरामीटर का उपयोग करके उपकरण द्वारा किए जा रहे अनुरोधों को प्रिंट कर सकते हैं। यदि आप नहीं चाहते कि लॉग टोकन मान को छुपाएं, तो gcloud config set log_http_redact_token false का उपयोग करें।

इसके अलावा, संचार को इंटरसेप्ट करने के लिए:

bash
gcloud config set proxy/address 127.0.0.1
gcloud config set proxy/port 8080
gcloud config set proxy/type http
gcloud config set auth/disable_ssl_validation True

# If you don't want to completely disable ssl_validation use:
gcloud config set core/custom_ca_certs_file cert.pem

# Back to normal
gcloud config unset proxy/address
gcloud config unset proxy/port
gcloud config unset proxy/type
gcloud config unset auth/disable_ssl_validation
gcloud config unset core/custom_ca_certs_file

OAuth टोकन gcloud में कॉन्फ़िगर करें

मेटाडेटा एंडपॉइंट से निकाले गए सेवा खाते के OAuth टोकन का उपयोग करने के लिए आप बस यह कर सकते हैं:

bash
# Via env vars
export CLOUDSDK_AUTH_ACCESS_TOKEN=<token>
gcloud projects list

# Via setup
echo "<token>" > /some/path/to/token
gcloud config set auth/access_token_file /some/path/to/token
gcloud projects list
gcloud config unset auth/access_token_file

संदर्भ

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 का समर्थन करें