GCP - local privilege escalation ssh pivoting

हैकट्रिक्स का समर्थन करें

इस स्थिति में हम मानेंगे कि आपने एक गणना इंजन पर एक गैर विशेषाधिकार खाता कंप्रमाइज़ कर लिया है।

आश्चर्यजनक रूप से, आपके द्वारा कंप्रमाइज़ किए गए गणना इंजन की GPC अनुमतियाँ आपको मशीन के भीतर स्थानीय रूप से विशेषाधिकारों को उन्नत करने में मदद कर सकती हैं। यहाँ तक कि यह बादल वातावरण में हमेशा बहुत मददगार नहीं होगा, लेकिन यह जानना भी अच्छा है कि यह संभव है।

स्क्रिप्ट पढ़ें

गणना उदाहरण शायद वहाँ हैं जो कुछ स्क्रिप्ट्स को चलाने के लिए उनके सेवा खातों के साथ कार्रवाई करने के लिए।

जैसे कि IAM गो ग्रैनुलर है, एक खाता किसी संसाधन पर पढ़ने/लिखने की अनुमति रख सकता है लेकिन सूची अनुमतियाँ नहीं

इसका एक शानदार कल्पनात्मक उदाहरण यह है कि एक गणना इंस्टेंस को instance82736-long-term-xyz-archive-0332893 नामक एक स्टोरेज बकेट में बैकअप पढ़ने/लिखने की अनुमति है।

कमांड लाइन से gsutil ls चलाने पर कुछ नहीं लौटता, क्योंकि सेवा खाता को storage.buckets.list IAM अनुमति की कमी है। हालांकि, यदि आपने gsutil ls gs://instance82736-long-term-xyz-archive-0332893 चलाया तो आपको पूर्ण फ़ाइल सिस्टम बैकअप मिल सकता है, जिससे आपको डेटा तक पहुँचने का स्पष्ट-पाठ उपयोगकर्ता है जिसकी आपके स्थानीय लिनक्स खाते में कमी है।

आप इस बकेट नाम को किसी स्क्रिप्ट (बैश, पायथन, रूबी...) में ढूंढ़ सकते हैं।

कस्टम मेटाडेटा

प्रशासक इंस्टेंस और प्रोजेक्ट स्तर पर कस्टम मेटाडेटा जोड़ सकते हैं। यह बस एक तरीका है एक इंस्टेंस में विभिन्न कुंजी/मूल्य जोड़ने का, और आमतौर पर वातावरण चर और स्टार्टअप/शटडाउन स्क्रिप्ट के लिए उपयोग किया जाता है।

इसके अतिरिक्त, उपयोगकर्ता डेटा भी जोड़ा जा सकता है, जो एक स्क्रिप्ट होगा जो हर बार मशीन को शुरू या पुनरारंभ किया जाएगा और जिसे मेटाडेटा एंडपॉइंट से भी पहुँचा जा सकता है।

अधिक जानकारी के लिए जांचें:

IAM अनुमतियों का दुरुपयोग

प्रस्तावित अधिकांश निम्नलिखित अनुमतियाँ डिफ़ॉल्ट कंप्यूट एसए को दी जाती है, केवल समस्या यह है कि डिफ़ॉल्ट एक्सेस स्कोप एसए को उनका उपयोग करने से रोकता है। हालांकि, यदि cloud-platform स्कोप सक्षम है या केवल compute स्कोप सक्षम है, तो आप इनका दुरुपयोग कर सकते हैं

निम्नलिखित अनुमतियों की जांच करें:

फ़ाइल सिस्टम में कुंजियों की खोज

जांचें कि अन्य उपयोगकर्ता बॉक्स में gcloud में लॉगिन किया है और उन्होंने अपनी प्रमाणिकता को फ़ाइल सिस्टम में छोड़ दिया है:

sudo find / -name "gcloud"

ये सबसे दिलचस्प फ़ाइलें हैं:

  • ~/.config/gcloud/credentials.db

  • ~/.config/gcloud/legacy_credentials/[खाता]/adc.json

  • ~/.config/gcloud/legacy_credentials/[खाता]/.boto

  • ~/.credentials.json

अधिक API कुंजी रेजेक्सेस

TARGET_DIR="/path/to/whatever"

# Service account keys
grep -Pzr "(?s){[^{}]*?service_account[^{}]*?private_key.*?}" \
"$TARGET_DIR"

# Legacy GCP creds
grep -Pzr "(?s){[^{}]*?client_id[^{}]*?client_secret.*?}" \
"$TARGET_DIR"

# Google API keys
grep -Pr "AIza[a-zA-Z0-9\\-_]{35}" \
"$TARGET_DIR"

# Google OAuth tokens
grep -Pr "ya29\.[a-zA-Z0-9_-]{100,200}" \
"$TARGET_DIR"

# Generic SSH keys
grep -Pzr "(?s)-----BEGIN[ A-Z]*?PRIVATE KEY[a-zA-Z0-9/\+=\n-]*?END[ A-Z]*?PRIVATE KEY-----" \
"$TARGET_DIR"

# Signed storage URLs
grep -Pir "storage.googleapis.com.*?Goog-Signature=[a-f0-9]+" \
"$TARGET_DIR"

# Signed policy documents in HTML
grep -Pzr '(?s)<form action.*?googleapis.com.*?name="signature" value=".*?">' \
"$TARGET_DIR"

संदर्भ

हैकट्रिक्स का समर्थन करें

Last updated