GCP - Storage Enum

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

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

भंडारण

Google Cloud Platform (GCP) भंडारण एक क्लाउड-आधारित भंडारण समाधान है जो अनियमित डेटा के लिए उच्च टिकाऊ और उपलब्ध ऑब्जेक्ट भंडारण प्रदान करता है। यह प्रदर्शन, उपलब्धता, और लागत के आधार पर विभिन्न भंडारण वर्ग प्रदान करता है, जिसमें स्टैंडर्ड, नियरलाइन, कोल्डलाइन, और आर्काइव शामिल हैं। GCP भंडारण भी जीवनकाल नीतियाँ, संस्करण, और पहुंच नियंत्रण जैसी उन्नत सुविधाएं प्रदान करता है ताकि डेटा को प्रबंधित और सुरक्षित रूप से रखा जा सके।

बकेट को एक क्षेत्र में, 2 क्षेत्रों में या बहु-क्षेत्र (डिफ़ॉल्ट) में स्टोर किया जा सकता है।

भंडारण प्रकार

  • स्टैंडर्ड भंडारण: यह एक डिफ़ॉल्ट भंडारण विकल्प है जो अक्सर उपयोग किए जाने वाले डेटा तक का उच्च-प्रदर्शन, कम-लैटेंसी पहुंच प्रदान करता है। यह वेबसाइट सामग्री, मीडिया स्ट्रीमिंग, और डेटा विश्लेषण पाइपलाइन होस्टिंग सहित विभिन्न उपयोग मामलों के लिए उपयुक्त है।

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

  • कोल्डलाइन भंडारण: यह भंडारण वर्ग अनियमित रूप से उपयोग किए जाने वाले डेटा के लंबे समय तक संग्रहण के लिए अनुकूलित है, जिसमें एक न्यूनतम भंडारण अवधि 90 दिन है। यह नियरलाइन भंडारण से कम भंडारण लागत प्रदान करता है, लेकिन अधिक पहुंच लागत के साथ।

  • आर्काइव भंडारण: यह भंडारण वर्ग ठंडे डेटा के लिए डिज़ाइन किया गया है जिसका बहुत ही अनियमित रूप से उपयोग होता है, जिसमें एक न्यूनतम भंडारण अवधि 365 दिन है। यह सभी GCP भंडारण विकल्पों में सबसे कम भंडारण लागत प्रदान करता है, लेकिन सबसे अधिक पहुंच लागत के साथ। यह डेटा के दीर्घकालिक रखरखाव के लिए उपयुक्त है जो नियमन या विनियामक कारणों से संग्रहित किया जाना चाहिए।

  • ऑटोक्लास: यदि आप नहीं जानते कि आप डेटा तक कितनी पहुंच करेंगे तो आप ऑटोक्लास का चयन कर सकते हैं और GCP आपके लिए लागत को कम करने के लिए स्टोरेज के प्रकार को स्वचालित रूप से बदल देगा।

पहुंच नियंत्रण

डिफ़ॉल्ट रूप से पहुंच को IAM के माध्यम से नियंत्रित करना सिफारिश किया जाता है, लेकिन ACLs का उपयोग सक्षम करना भी संभव है। यदि आप केवल IAM (डिफ़ॉल्ट) का उपयोग करने का चयन करते हैं और 90 दिन बीत जाते हैं, तो आप बकेट के लिए ACLs को सक्षम नहीं कर पाएंगे

संस्करण

संस्करण सक्षम करना संभव है, यह बकेट के अंदर पुराने संस्करणों को सहेजेगा। आप कितने संस्करण रखना चाहते हैं और यहाँ तक कि आप गैर-वर्तमान संस्करणों (पुराने संस्करण) को कितने समय तक जीवित रखना चाहते हैं भी कॉन्फ़िगर कर सकते हैं। सिफारिश है स्टैंडर्ड प्रकार के लिए 7 दिन

गैर-वर्तमान संस्करण की मेटाडेटा रखी जाती है। इसके अतिरिक्त, गैर-वर्तमान संस्करणों की ACLs भी रखी जाती हैं, इसलिए पुराने संस्करणों में वर्तमान संस्करण से भिन्न ACLs हो सकती हैं।

अधिक जानकारी के लिए दस्तावेज़ देखें।

रिटेंशन नीति

इंडिकेट करें कि आप भंडारण के भीतर ऑब्जेक्टों को कितने समय तक हटाने से रोकना चाहते हैं (कम से कम अनुपालन के लिए बहुत उपयोगी)। संस्करण या रिटेंशन नीति में से केवल एक को एक साथ सक्षम किया जा सकता है

एन्क्रिप्शन

डिफ़ॉल्ट रूप से ऑब्जेक्ट्स Google managed keys का उपयोग करके एन्क्रिप्टेड होते हैं, लेकिन आप एक KMS से कुंजी का भी उपयोग कर सकते हैं।

सार्वजनिक पहुंच

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

एक बकेट तक पहुंच करने के लिए एक URL का प्रारूप है https://storage.googleapis.com/<bucket-name> या https://<bucket_name>.storage.googleapis.com (दोनों मान्य हैं)।

HMAC कुंजी

HMAC कुंजी एक प्रकार का प्रमाणपत्र है और इसे क्लाउड स्टोरेज में एक सेवा खाता या उपयोगकर्ता खाता से जोड़ा जा सकता है

# List all storage buckets in project
gsutil ls

# Get each bucket configuration (protections, CLs, times, configs...)
gsutil ls -L

# List contents of a specific bucket
gsutil ls gs://bucket-name/
gsutil ls -r gs://bucket-name/ # Recursive
gsutil ls -a gs://bucket-name/ # Get ALL versions of objects

# Cat the context of a file without copying it locally
gsutil cat 'gs://bucket-name/folder/object'
gsutil cat 'gs://bucket-name/folder/object#<num>' # cat specific version

# Copy an object from the bucket to your local storage for review
gsutil cp gs://bucket-name/folder/object ~/

# List using a raw OAuth token
## Useful because "CLOUDSDK_AUTH_ACCESS_TOKEN" and "gcloud config set auth/access_token_file" doesn't work with gsutil
curl -H "Authorization: Bearer $TOKEN" "https://storage.googleapis.com/storage/v1/b/<storage-name>/o"
# Download file content from bucket
curl -H "Authorization: Bearer $TOKEN" "https://storage.googleapis.com/storage/v1/b/supportstorage-58249/o/flag.txt?alt=media" --output -

# Enumerate HMAC keys
gsutil hmac list

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

for i in $(cat wordlist.txt); do gsutil ls -r gs://"$i"; done

जानकारी storage.objects.list और storage.objects.get की अनुमतियों के साथ, आपको बाल्ट में सभी फोल्डर और फ़ाइलों की सूची बनाने की क्षमता होनी चाहिए ताकि आप उन्हें डाउनलोड कर सकें। आप इस पायथन स्क्रिप्ट के साथ इसे प्राप्त कर सकते हैं:

import requests
import xml.etree.ElementTree as ET

def list_bucket_objects(bucket_name, prefix='', marker=None):
url = f"https://storage.googleapis.com/{bucket_name}?prefix={prefix}"
if marker:
url += f"&marker={marker}"
response = requests.get(url)
xml_data = response.content
root = ET.fromstring(xml_data)
ns = {'ns': 'http://doc.s3.amazonaws.com/2006-03-01'}
for contents in root.findall('.//ns:Contents', namespaces=ns):
key = contents.find('ns:Key', namespaces=ns).text
print(key)
next_marker = root.find('ns:NextMarker', namespaces=ns)
if next_marker is not None:
next_marker_value = next_marker.text
list_bucket_objects(bucket_name, prefix, next_marker_value)

list_bucket_objects('<storage-name>')

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

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

pageGCP - Storage Privesc

अप्रमाणित जांच

pageGCP - Storage Unauthenticated Enum

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

pageGCP - Storage Post Exploitation

स्थिरता

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

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

Last updated