GCP - Cloud Functions Enum

htARTE (HackTricks AWS Red Team Expert) के साथ जीरो से हीरो तक AWS हैकिंग सीखें htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

क्लाउड फंक्शन्स

Google Cloud Functions कोड को होस्ट करने के लिए डिज़ाइन किए गए हैं, जो घटनाओं के प्रतिक्रिया में निष्पादित होता है, बिना होस्ट ऑपरेटिंग सिस्टम का प्रबंधन करने की आवश्यकता के बिना। इसके अतिरिक्त, ये फंक्शन्स पर्यावरण चर भंडारण का समर्थन करते हैं, जिसका कोड उपयोग कर सकता है।

भंडारण

क्लाउड फंक्शन्स कोड GCP स्टोरेज में स्टोर किया जाता है। इसलिए, किसी के पास भी GCP में बकेट्स पर पढ़ने की पहुंच होने के साथ-साथ क्लाउड फंक्शन्स कोड पढ़ सकता है। कोड एक बकेट में स्टोर किया जाता है जैसे:

gcf-sources-<number>-<region>/<function-name>-<uuid>/version-<n>/function-source.zip उदाहरण के लिए: gcf-sources-645468741258-us-central1/function-1-003dcbdf-32e1-430f-a5ff-785a6e238c76/version-4/function-source.zip

किसी भी उपयोगकर्ता के पास क्लाउड फंक्शन को स्टोर करने वाले बकेट पर लिखने की अनुमति होने पर वह निष्पादित कोड को अधिलेखित कर सकता है

SA

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

ट्रिगर, URL और प्रमाणीकरण

जब एक क्लाउड फंक्शन बनाया जाता है, तो ट्रिगर को निर्दिष्ट किया जाना चाहिए। एक सामान्य ट्रिगर है HTTPS, यह एक URL बनाएगा जहां फ़ंक्शन को वेब ब्राउज़िंग के माध्यम से ट्रिगर किया जा सकता है। अन्य ट्रिगर हैं pub/sub, Storage, Filestore...

URL प्रारूप है https://<region>-<project-gcp-name>.cloudfunctions.net/<func_name>

जब HTTPS ट्रिगर का उपयोग किया जाता है, तो यह भी दिखाया जाता है कि कॉलर को IAM अधिकारी होना चाहिए फ़ंक्शन को कॉल करने के लिए या कि हर कोई बस इसे कॉल कर सकता है:

क्लाउड फंक्शन के अंदर

कोड फ़ोल्डर /workspace में डाउनलोड किया जाता है जिसमें फ़ाइलों के नाम हैं जैसे क्लाउड फंक्शन में फ़ाइलों के नाम होते हैं और उपयोगकर्ता www-data के साथ निष्पादित किया जाता है। डिस्क को केवल पढ़ने के रूप में माउंट नहीं किया गया है।

एनुमरेशन

# List functions
gcloud functions list
gcloud functions describe <func_name> # Check triggers to see how is this function invoked
gcloud functions get-iam-policy <func_name>

# Get logs of previous runs. By default, limits to 10 lines
gcloud functions logs read <func_name> --limit [NUMBER]

# Call a function
curl https://<region>-<project>.cloudfunctions.net/<func_name>
gcloud functions call <func_name> --data='{"message": "Hello World!"}'

# If you know the name of projects you could try to BF cloud functions names

# Get events that could be used to trigger a cloud function
gcloud functions event-types list

# Access function with authentication
curl -X POST https://<region>-<project>.cloudfunctions.net/<func_name> \
-H "Authorization: bearer $(gcloud auth print-identity-token)" \
-H "Content-Type: application/json" \
-d '{}'

विशेषाधिकार उन्नयन

निम्नलिखित पृष्ठ में, आप देख सकते हैं कि विशेषाधिकार उन्नयन के लिए क्लाउड फ़ंक्शन अनुमतियों का दुरुपयोग कैसे किया जा सकता है:

pageGCP - Cloudfunctions Privesc

अप्रमाणित पहुंच

pageGCP - Cloud Functions Unauthenticated Enum

पोस्ट एक्सप्लोइटेशन

pageGCP - Cloud Functions Post Exploitation

स्थिरता

pageGCP - Cloud Functions Persistence

संदर्भ

जानें AWS हैकिंग को शून्य से हीरो तक htARTE (HackTricks AWS Red Team Expert)!

HackTricks का समर्थन करने के अन्य तरीके:

Last updated