Files
hacktricks-cloud/src/pentesting-cloud/gcp-security/gcp-post-exploitation/gcp-storage-post-exploitation.md

4.6 KiB

GCP - Storage Post Exploitation

{{#include ../../../banners/hacktricks-training.md}}

Cloud Storage

CLoud Storage के बारे में अधिक जानकारी के लिए इस पेज को देखें:

{{#ref}} ../gcp-services/gcp-storage-enum.md {{#endref}}

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

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

# Disable public prevention
gcloud storage buckets update gs://BUCKET_NAME --no-public-access-prevention

# Make all objects in a bucket public
gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME --member=allUsers --role=roles/storage.objectViewer
## I don't think you can make specific objects public just with IAM

# Make a bucket or object public (via ACL)
gcloud storage buckets update gs://BUCKET_NAME --add-acl-grant=entity=AllUsers,role=READER
gcloud storage objects update gs://BUCKET_NAME/OBJECT_NAME --add-acl-grant=entity=AllUsers,role=READER

यदि आप ACLs to a bucket with disabled ACLs देने की कोशिश करते हैं तो आपको यह त्रुटि मिलेगी: ERROR: HTTPError 400: Cannot use ACL API to update bucket policy when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access

ब्राउज़र से खुले buckets तक पहुँचने के लिए, इस URL पर जाएँ https://<bucket_name>.storage.googleapis.com/ या https://<bucket_name>.storage.googleapis.com/<object_name>

storage.objects.delete (storage.objects.get)

किसी object को हटाने के लिए:

gcloud storage rm gs://<BUCKET_NAME>/<OBJECT_NAME> --project=<PROJECT_ID>

storage.buckets.delete, storage.objects.delete & storage.objects.list

बकेट हटाने के लिए:

gcloud storage rm -r gs://<BUCKET_NAME>

HMAC Keys को निष्क्रिय करें

storage.hmacKeys.update अनुमति HMAC keys को निष्क्रिय करने की अनुमति देती है, और storage.hmacKeys.delete अनुमति किसी identity को Cloud Storage में service accounts से जुड़े HMAC keys को हटाने की अनुमति देती है।

# Deactivate
gcloud storage hmac update <ACCESS_ID> --deactivate

# Delete
gcloud storage hmac delete <ACCESS_ID>

storage.buckets.setIpFilter & storage.buckets.update

storage.buckets.setIpFilter permission, साथ ही storage.buckets.update permission, किसी identity को Cloud Storage bucket पर IP address फ़िल्टर कॉन्फ़िगर करने की अनुमति देते हैं, जिससे यह निर्दिष्ट किया जा सके कि कौन से IP रेंज या पते bucket के resources तक पहुँच सकते हैं।

IP फ़िल्टर को पूरी तरह साफ़ करने के लिए, निम्नलिखित कमांड का उपयोग किया जा सकता है:

gcloud storage buckets update gs://<BUCKET_NAME> --project=<PROJECT_ID>

फ़िल्टर किए गए IPs को बदलने के लिए, निम्नलिखित कमांड का उपयोग किया जा सकता है:

gcloud storage buckets update gs://<BUCKET_NAME> \
--ip-filter-file=ip-filter.json \
--project=<PROJECT_ID>

JSON फ़ाइल स्वयं फ़िल्टर का प्रतिनिधित्व करती है, कुछ ऐसा:

{
"mode": "Enabled",
"publicNetworkSource": {
"allowedIpCidrRanges": ["<IP>/<MASK>"]
},
"allowCrossOrgVpcs": false,
"allowAllServiceAgentAccess": false
}

storage.buckets.restore

बकेट को पुनर्स्थापित करने के लिए उपयोग करें:

gcloud storage restore gs://<BUCKET_NAME>#<GENERATION> \
--project=<PROJECT_ID>

{{#include ../../../banners/hacktricks-training.md}}