GCP - Cloud Run Enum

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

Cloud Run

Cloud Run एक सर्वरलेस प्रबंधित कंप्यूट प्लेटफ़ॉर्म है जो आपको कंटेनर को सीधे Google के स्केलेबल इन्फ्रास्ट्रक्चर पर चलाने की अनुमति देता है।

आप अपने कंटेनर को चला सकते हैं या यदि आप Go, Node.js, Python, Java, .NET Core, या Ruby का उपयोग कर रहे हैं, तो आप source-based deployment विकल्प का उपयोग कर सकते हैं जो आपके लिए कंटेनर बनाता है।

Google ने Cloud Run को अन्य सेवाओं के साथ अच्छी तरह से काम करने के लिए बनाया है, ताकि आप पूर्ण विशेषताओं वाले अनुप्रयोग बना सकें।

Services and jobs

Cloud Run पर, आपका कोड या तो सेवा के रूप में लगातार चल सकता है या नौकरी के रूप में। दोनों सेवाएँ और नौकरियाँ एक ही वातावरण में चलती हैं और Google Cloud पर अन्य सेवाओं के साथ समान एकीकरण का उपयोग कर सकती हैं।

  • Cloud Run सेवाएँ। वेब अनुरोधों या घटनाओं का उत्तर देने के लिए कोड चलाने के लिए उपयोग की जाती हैं।
  • Cloud Run नौकरियाँ। वे कोड चलाने के लिए उपयोग की जाती हैं जो कार्य (एक नौकरी) करती हैं और जब कार्य पूरा हो जाता है तो समाप्त हो जाती हैं।

Cloud Run Service

Google Cloud Run एक और सर्वरलेस पेशकश है जहाँ आप env variables के लिए खोज कर सकते हैं। Cloud Run एक छोटा वेब सर्वर बनाता है, जो डिफ़ॉल्ट रूप से कंटेनर के अंदर पोर्ट 8080 पर चल रहा है, जो HTTP GET अनुरोध की प्रतीक्षा करता है। जब अनुरोध प्राप्त होता है, तो एक नौकरी निष्पादित होती है और नौकरी का लॉग HTTP प्रतिक्रिया के माध्यम से आउटपुट होता है।

Relevant details

  • डिफ़ॉल्ट के अनुसार, वेब सर्वर तक पहुँच सार्वजनिक है, लेकिन इसे आंतरिक ट्रैफ़िक (VPC...) तक भी सीमित किया जा सकता है।
    इसके अलावा, वेब सर्वर से संपर्क करने के लिए प्रमाणीकरण सभी को अनुमति देने या IAM के माध्यम से प्रमाणीकरण की आवश्यकता कर सकता है।
  • डिफ़ॉल्ट रूप से, एन्क्रिप्शन एक Google प्रबंधित कुंजी का उपयोग करता है, लेकिन एक CMEK (Customer Managed Encryption Key) KMS से भी चुना जा सकता है।
  • डिफ़ॉल्ट के अनुसार, उपयोग की जाने वाली सेवा खाता Compute Engine का डिफ़ॉल्ट है जिसमें परियोजना पर Editor पहुँच है और इसका scope cloud-platform.
  • निष्पादन के लिए स्पष्ट-टेक्स्ट वातावरण चर को परिभाषित करना संभव है, और यहां तक कि क्लाउड सीक्रेट्स को माउंट करना या पर्यावरण चर में क्लाउड सीक्रेट्स जोड़ना भी संभव है।
  • Cloud SQL के साथ कनेक्शन जोड़ना और फाइल सिस्टम माउंट करना भी संभव है।
  • तैनात सेवाओं के URLs https://<svc-name>-<random>.a.run.app के समान होते हैं।
  • एक Run Service में 1 से अधिक संस्करण या संशोधन हो सकते हैं, और कई संशोधनों के बीच ट्रैफ़िक विभाजित किया जा सकता है।

Enumeration

bash
# List services
gcloud run services list
gcloud run services list --platform=managed
gcloud run services list --platform=gke

# Get info of a service
gcloud run services describe --region <region> <svc-name>

# Get info of all the services together
gcloud run services list --format=yaml
gcloud run services list --platform=managed --format=json
gcloud run services list --platform=gke --format=json

# Get policy
gcloud run services get-iam-policy --region <region> <svc-name>

# Get revisions
gcloud run revisions list --region <region>
gcloud run revisions describe --region <region> <revision>

# Get domains
gcloud run domain-mappings list
gcloud run domain-mappings describe <name>

# Attempt to trigger a job unauthenticated
curl <url>

# Attempt to trigger a job with your current gcloud authorization
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" <url>

Cloud Run Jobs

Cloud Run jobs उन कंटेनरों के लिए बेहतर होते हैं जो पूर्णता तक चलते हैं और अनुरोधों की सेवा नहीं करते। Jobs में अनुरोधों की सेवा करने या किसी पोर्ट पर सुनने की क्षमता नहीं होती। इसका मतलब है कि Cloud Run सेवाओं के विपरीत, jobs को एक वेब सर्वर को बंडल नहीं करना चाहिए। इसके बजाय, jobs कंटेनरों को समाप्त हो जाना चाहिए जब वे समाप्त हो जाएं।

Enumeration

bash
gcloud beta run jobs list
gcloud beta run jobs describe --region <region> <job-name>
gcloud beta run jobs get-iam-policy --region <region> <job-name>

विशेषाधिकार वृद्धि

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

GCP - Run Privesc

अनधिकृत पहुंच

GCP - Cloud Run Unauthenticated Enum

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

GCP - Cloud Run Post Exploitation

स्थिरता

GCP - Cloud Run Persistence

संदर्भ

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