GCP - Storage Enum

Reading time: 7 minutes

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks

Storage

Google Cloud Platform (GCP) Storage ni ufumbuzi wa hifadhi wa wingu unaotoa hifadhi ya vitu yenye kudumu na inapatikana kwa data isiyo na muundo. Inatoa daraja mbalimbali za hifadhi kulingana na utendaji, upatikanaji, na gharama, ikiwa ni pamoja na Standard, Nearline, Coldline, na Archive. GCP Storage pia inatoa vipengele vya hali ya juu kama sera za mzunguko, toleo, na udhibiti wa ufikiaji ili kudhibiti na kulinda data kwa ufanisi.

Ndoo inaweza kuhifadhiwa katika eneo, katika maeneo 2 au multi-region (default).

Storage Types

  • Standard Storage: Hii ni chaguo la hifadhi la kawaida ambalo linatoa ufikiaji wa juu wa utendaji, wa chini wa ucheleweshaji kwa data inayopatikana mara kwa mara. Inafaa kwa matumizi mbalimbali, ikiwa ni pamoja na kutoa maudhui ya tovuti, kuhamasisha vyombo vya habari, na kuandaa mipango ya uchambuzi wa data.
  • Nearline Storage: Daraja hili la hifadhi linatoa gharama za hifadhi za chini na gharama za ufikiaji kidogo zaidi kuliko Standard Storage. Imeboreshwa kwa data inayopatikana mara chache, ikiwa na muda wa chini wa hifadhi wa siku 30. Inafaa kwa madhumuni ya nakala na uhifadhi.
  • Coldline Storage: Daraja hili la hifadhi limeboreshwa kwa hifadhi ya muda mrefu ya data inayopatikana mara chache, ikiwa na muda wa chini wa hifadhi wa siku 90. Inatoa gharama za hifadhi za chini kuliko Nearline Storage, lakini kwa gharama za ufikiaji za juu.
  • Archive Storage: Daraja hili la hifadhi limetengwa kwa data baridi inayopatikana mara chache sana, ikiwa na muda wa chini wa hifadhi wa siku 365. Inatoa gharama za chini zaidi za hifadhi kati ya chaguo zote za GCP lakini kwa gharama za juu zaidi za ufikiaji. Inafaa kwa uhifadhi wa muda mrefu wa data inayohitaji kuhifadhiwa kwa sababu za kufuata sheria au kanuni.
  • Autoclass: Ikiwa hujui ni kiasi gani utapata data, unaweza kuchagua Autoclass na GCP itabadilisha aina ya hifadhi kiotomatiki ili kupunguza gharama.

Access Control

Kwa default inashauriwa kudhibiti ufikiaji kupitia IAM, lakini pia inawezekana kuwezesha matumizi ya ACLs.
Ikiwa unachagua kutumia IAM pekee (default) na siku 90 zinapita, huwezi kuwezesha ACLs kwa ndoo.

Versioning

Inawezekana kuwezesha toleo, hii it hifadhi toleo za zamani za faili ndani ya ndoo. Inawezekana kufafanua idadi ya matoleo unayotaka kuhifadhi na hata ni muda gani unataka matoleo yasiyo ya sasa (matoleo ya zamani) kuishi. Inashauriwa siku 7 kwa aina ya Standard.

Metadata ya toleo lisilo la sasa inahifadhiwa. Zaidi ya hayo, ACLs za matoleo yasiyo ya sasa pia zinahifadhiwa, hivyo matoleo ya zamani yanaweza kuwa na ACLs tofauti na toleo la sasa.

Jifunze zaidi katika docs.

Retention Policy

Onyesha ni muda gani unataka kuzuia kufutwa kwa Vitu ndani ya ndoo (ni muhimu sana kwa kufuata sheria angalau).
Ni moja tu ya toleo au sera ya uhifadhi inaweza kuwezeshwa kwa wakati mmoja.

Encryption

Kwa default vitu vinahifadhiwa kwa kutumia funguo zinazodhibitiwa na Google, lakini unaweza pia kutumia funguo kutoka KMS.

Public Access

Inawezekana kutoa watumiaji wa nje (waliosajiliwa katika GCP au la) ufikiaji wa maudhui ya ndoo.
Kwa default, wakati ndoo inaundwa, itakuwa imezima chaguo la kufichua hadharani ndoo, lakini kwa ruhusa ya kutosha inaweza kubadilishwa.

Muundo wa URL wa kufikia ndoo ni https://storage.googleapis.com/<bucket-name> au https://<bucket_name>.storage.googleapis.com (zote ni halali).

HMAC Keys

Funguo za HMAC ni aina ya kitambulisho na zinaweza kuunganishwa na akaunti ya huduma au akaunti ya mtumiaji katika Cloud Storage. Unatumia funguo za HMAC kuunda sahihi ambazo kisha zinajumuishwa katika maombi kwa Cloud Storage. Sahihi zinaonyesha kuwa ombwe fulani limeidhinishwa na mtumiaji au akaunti ya huduma.

Funguo za HMAC zina vipengele viwili vikuu, ID ya ufikiaji na siri.

  • Access ID: Mfuatano wa alphanumeric uliofungwa na akaunti maalum ya huduma au mtumiaji. Wakati umeunganishwa na akaunti ya huduma, mfuatano huo una urefu wa herufi 61, na wakati umeunganishwa na akaunti ya mtumiaji, mfuatano huo una urefu wa herufi 24. Ifuatayo inaonyesha mfano wa ID ya ufikiaji:

GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA

  • Secret: Mfuatano wa herufi 40 wa Base-64 uliofungwa na ID maalum ya ufikiaji. Siri ni funguo iliyoshirikiwa awali ambayo wewe na Cloud Storage mnajua pekee. Unatumia siri yako kuunda sahihi kama sehemu ya mchakato wa uthibitishaji. Ifuatayo inaonyesha mfano wa siri:

bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ

Zote ID ya ufikiaji na siri zinautambulisha funguo za HMAC, lakini siri ni taarifa nyeti zaidi, kwa sababu inatumika ku unda sahihi.

Enumeration

bash
# 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

Ikiwa unapata kosa la ruhusa kukataa wakati wa kuorodhesha ndoo, huenda bado ukawa na ufikiaji wa maudhui. Hivyo, sasa kwamba unajua kuhusu kanuni za majina ya ndoo, unaweza kuunda orodha ya majina yanayowezekana na kujaribu kuyafikia:

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

Kwa ruhusa storage.objects.list na storage.objects.get, unapaswa kuwa na uwezo wa kuorodhesha folda zote na faili kutoka kwenye bucket ili kuzipakua. Unaweza kufanikisha hilo kwa kutumia script hii ya Python:

python
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>')

Kuinua Haki

Katika ukurasa ufuatao unaweza kuangalia jinsi ya kutumia ruhusa za hifadhi ili kuinua haki:

GCP - Storage Privesc

Enum Isiyo na Uthibitisho

GCP - Storage Unauthenticated Enum

Baada ya Kutekeleza

GCP - Storage Post Exploitation

Kudumu

GCP - Storage Persistence

tip

Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE) Jifunze na fanya mazoezi ya Azure Hacking: HackTricks Training Azure Red Team Expert (AzRTE)

Support HackTricks