GCP - Cloud Functions Enum
Cloud Functions
Google Cloud Functions को इस तरह से डिज़ाइन किया गया है कि वे आपके कोड को होस्ट कर सकें, जो इवेंट्स के जवाब में निष्पादित होता है, बिना होस्ट ऑपरेटिंग सिस्टम के प्रबंधन की आवश्यकता के। इसके अलावा, ये फंक्शंस पर्यावरण वेरिएबल्स के भंडारण का समर्थन करते हैं, जिनका कोड उपयोग कर सकता है।
Storage
Cloud Functions का कोड GCP Storage में संग्रहीत होता है। इसलिए, GCP में बकेट्स पर पढ़ने की पहुंच रखने वाला कोई भी व्यक्ति Cloud Functions कोड को पढ़ने में सक्षम होगा। कोड निम्नलिखित में से किसी एक बकेट में संग्रहीत होता है:
gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip
gcf-v2-sources-<number>-<region>/<function-name>function-source.zip
उदाहरण के लिए:
gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip
बकेट पर पढ़ने की विशेषाधिकार रखने वाला कोई भी उपयोगकर्ता निष्पादित कोड को पढ़ सकता है।
Artifact Registry
यदि क्लाउड फंक्शन को इस प्रकार कॉन्फ़िगर किया गया है कि निष्पादित Docker कंटेनर को प्रोजेक्ट के अंदर एक Artifact Registry repo में संग्रहीत किया गया है, तो repo पर पढ़ने की पहुंच रखने वाला कोई भी व्यक्ति इमेज को डाउनलोड कर सकता है और स्रोत कोड की जांच कर सकता है। अधिक जानकारी के लिए देखें:
GCP - Artifact Registry EnumSA
यदि निर्दिष्ट नहीं किया गया है, तो डिफ़ॉल्ट रूप से App Engine Default Service Account के साथ Editor permissions प्रोजेक्ट पर Cloud Function से जुड़ा होगा।
Triggers, URL & Authentication
जब एक Cloud Function बनाई जाती है तो ट्रिगर निर्दिष्ट करना आवश्यक होता है। एक सामान्य ट्रिगर HTTPS है, यह एक URL बनाएगा जहां फंक्शन को वेब ब्राउज़िंग के माध्यम से ट्रिगर किया जा सकता है। अन्य ट्रिगर हैं pub/sub, Storage, Filestore...
URL प्रारूप है https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>
जब HTTPS ट्रिगर का उपयोग किया जाता है, तो यह भी निर्दिष्ट किया जाता है कि कॉलर को फंक्शन को कॉल करने के लिए IAM प्राधिकरण की आवश्यकता है या हर कोई इसे कॉल कर सकता है:
Inside the Cloud Function
कोड को फोल्डर /workspace
के अंदर डाउनलोड किया जाता है उसी फाइल नामों के साथ जो फाइलें Cloud Function में होती हैं और इसे उपयोगकर्ता www-data
के साथ निष्पादित किया जाता है।
डिस्क रीड-ओनली के रूप में माउंट नहीं किया गया है।
Enumeration
Privilege Escalation
निम्नलिखित पृष्ठ पर, आप देख सकते हैं कि क्लाउड फंक्शन अनुमतियों का दुरुपयोग करके विशेषाधिकार कैसे बढ़ाएं:
GCP - Cloudfunctions PrivescUnauthenticated Access
GCP - Cloud Functions Unauthenticated EnumPost Exploitation
GCP - Cloud Functions Post ExploitationPersistence
GCP - Cloud Functions PersistenceReferences
Last updated