GCP - Storage Post Exploitation

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks

Cloud Storage

Για περισσότερες πληροφορίες σχετικά με το Cloud Storage δείτε αυτή τη σελίδα:

GCP - Storage Enum

Παροχή δημόσιας πρόσβασης

Είναι δυνατόν να δοθεί σε εξωτερικούς χρήστες (με σύνδεση στο GCP ή όχι) πρόσβαση στο περιεχόμενο των buckets. Ωστόσο, από προεπιλογή το 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

Για να αποκτήσετε πρόσβαση σε open buckets μέσω browser, επισκεφτείτε το 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

Για να διαγράψετε ένα bucket:

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

Απενεργοποίηση HMAC Keys

Η άδεια storage.hmacKeys.update επιτρέπει την απενεργοποίηση των HMAC keys, και η άδεια storage.hmacKeys.delete επιτρέπει σε μια ταυτότητα να διαγράψει HMAC keys που σχετίζονται με service accounts στο Cloud Storage.

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

# Delete
gcloud storage hmac delete <ACCESS_ID>

storage.buckets.setIpFilter & storage.buckets.update

Η άδεια storage.buckets.setIpFilter, μαζί με την άδεια storage.buckets.update, επιτρέπει σε μια οντότητα να διαμορφώσει φίλτρα διευθύνσεων IP σε ένα Cloud Storage bucket, καθορίζοντας ποια εύρη ή συγκεκριμένες διευθύνσεις IP επιτρέπεται να έχουν πρόσβαση στους πόρους του bucket.

Για να καταργήσετε πλήρως το φίλτρο IP, μπορεί να χρησιμοποιηθεί η ακόλουθη εντολή:

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

Για να αλλάξετε τις φιλτραρισμένες διευθύνσεις IP, μπορείτε να χρησιμοποιήσετε την ακόλουθη εντολή:

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

Επαναφορά bucket χρησιμοποιώντας:

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

Tip

Μάθετε & εξασκηθείτε στο AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Υποστηρίξτε το HackTricks