GCP - Storage Enum
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
Storage
Google Cloud Platform (GCP) Storage is ’n cloud-gebaseerde stooroplossing wat hoogs duursame en beskikbare objekberging vir ongestructureerde data bied. Dit bied verskeie stoorklasse gebaseer op prestasie, beskikbaarheid en koste, insluitend Standaard, Nearline, Coldline, en Argief. GCP Storage bied ook gevorderde funksies soos leeftydbeleide, weergawebeheer, en toegangsbeheer om data effektief te bestuur en te beveilig.
Die emmer kan in ’n streek, in 2 streke of multi-streek (standaard) gestoor word.
Storage Types
- Standard Storage: Dit is die standaard stooropsie wat hoë prestasie, lae latensie toegang tot gereeld toeganklike data bied. Dit is geskik vir ’n wye reeks gebruiksgevalle, insluitend die bedien van webwerfinhoud, streaming media, en die gasheer van data-analise-pipelines.
- Nearline Storage: Hierdie stoor klas bied laer stoor koste en effens hoër toegang koste as Standaard Stoor. Dit is geoptimaliseer vir selde toeganklike data, met ’n minimum stoor duur van 30 dae. Dit is ideaal vir rugsteun en argivering.
- Coldline Storage: Hierdie stoor klas is geoptimaliseer vir langtermyn stoor van selde toeganklike data, met ’n minimum stoor duur van 90 dae. Dit bied die laer stoor koste as Nearline Storage, maar met hoër toegang koste.
- Archive Storage: Hierdie stoor klas is ontwerp vir koue data wat baie selde toeganklik is, met ’n minimum stoor duur van 365 dae. Dit bied die laagste stoor koste van al die GCP stoor opsies maar met die hoogste toegang koste. Dit is geskik vir langtermyn bewaring van data wat gestoor moet word vir nakoming of regulerende redes.
- Autoclass: As jy nie weet hoe gereeld jy die data gaan toegang nie, kan jy Autoclass kies en GCP sal automaties die tipe stoor vir jou verander om koste te minimaliseer.
Access Control
Deur standaard is dit aanbeveel om die toegang via IAM te beheer, maar dit is ook moontlik om die gebruik van ACLs in te skakel.
As jy kies om slegs IAM (standaard) te gebruik en 90 dae verbygaan, sal jy nie in staat wees om ACLs vir die emmer in te skakel nie.
Versioning
Dit is moontlik om weergawebeheer in te skakel, dit sal ou weergawes van die lêer binne die emmer stoor. Dit is moontlik om die aantal weergawes wat jy wil hou te konfigureer en selfs hoe lank jy wil hê nie-huidige weergawes (ou weergawes) moet leef. Aanbeveel is 7 dae vir Standaard tipe.
Die metadata van ’n nie-huidige weergawe word gehou. Boonop, ACLs van nie-huidige weergawes word ook gehou, so ouer weergawes mag verskillende ACLs hê as die huidige weergawe.
Leer meer in die docs.
Retention Policy
Gee aan hoe lank jy wil verbied dat die verwydering van Objekte binne die emmer plaasvind (baie nuttig vir nakoming ten minste).
Slegs een van weergawebeheer of bewaring beleid kan gelyktydig geaktiveer word.
Encryption
Deur standaard is voorwerpe versleuteld met Google bestuurde sleutels, maar jy kan ook ’n sleutel van KMS gebruik.
Public Access
Dit is moontlik om eksterne gebruikers (ingelogde GCP of nie) toegang tot emmerinhoud te gee.
Deur standaard, wanneer ’n emmer geskep word, sal dit die opsie om publiek bloot te stel vir die emmer gedeaktiveer hê, maar met genoeg toestemmings kan dit verander word.
Die formaat van ’n URL om toegang tot ’n emmer te verkry is https://storage.googleapis.com/<bucket-name> of https://<bucket_name>.storage.googleapis.com (albei is geldig).
HMAC Keys
’n HMAC-sleutel is ’n tipe akkreditasie en kan geassosieer word met ’n diensrekening of ’n gebruikersrekening in Cloud Storage. Jy gebruik ’n HMAC-sleutel om handtekeninge te skep wat dan in versoeke aan Cloud Storage ingesluit word. Handtekeninge wys dat ’n gegewe versoek deur die gebruiker of diensrekening geoutoriseer is.
HMAC-sleutels het twee primêre komponente, ’n toegang ID en ’n geheim.
- Access ID: ’n alfanumeriese string wat aan ’n spesifieke diens of gebruikersrekening gekoppel is. Wanneer dit aan ’n diensrekening gekoppel is, is die string 61 karakters lank, en wanneer dit aan ’n gebruikersrekening gekoppel is, is die string 24 karakters lank. Die volgende toon ’n voorbeeld van ’n toegang ID:
GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA
- Secret: ’n 40-karakter Base-64-gecodeerde string wat aan ’n spesifieke toegang ID gekoppel is. ’n Geheim is ’n vooraf gedeelde sleutel wat slegs jy en Cloud Storage weet. Jy gebruik jou geheim om handtekeninge te skep as deel van die verifikasieproses. Die volgende toon ’n voorbeeld van ’n geheim:
bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ
Beide die toegang ID en geheim identifiseer ’n HMAC-sleutel uniek, maar die geheim is baie meer sensitiewe inligting, omdat dit gebruik word om handtekeninge te skep.
Enumeration
# 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
# Get permissions
gcloud storage buckets get-iam-policy gs://bucket-name/
gcloud storage objects get-iam-policy gs://bucket-name/folder/object
As jy ’n toestemming geweier fout kry wanneer jy emmers lys, mag jy steeds toegang hê tot die inhoud. So, nou dat jy weet van die naam konvensie van die emmers, kan jy ’n lys van moontlike name genereer en probeer om toegang daartoe te kry:
for i in $(cat wordlist.txt); do gsutil ls -r gs://"$i"; done
Met toestemmings storage.objects.list en storage.objects.get, behoort jy in staat te wees om al die vouers en lêers van die emmer op te som om hulle af te laai. Jy kan dit bereik met hierdie Python-skrip:
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>')
Privilege Escalation
In die volgende bladsy kan jy kyk hoe om opbergingsregte te misbruik om voorregte te verhoog:
Unauthenticated Enum
GCP - Storage Unauthenticated Enum
Post Exploitation
GCP - Storage Post Exploitation
Persistence
Tip
Leer & oefen AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Leer & oefen Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Ondersteun HackTricks
- Kyk na die subscription plans!
- Sluit aan by die 💬 Discord group of die telegram group of volg ons op Twitter 🐦 @hacktricks_live.
- Deel hacking tricks deur PRs in te dien by die HackTricks en HackTricks Cloud github repos.
HackTricks Cloud

