GCP - Storage Enum

Jifunze kuhusu kudukua AWS kutoka sifuri hadi shujaa na htARTE (Mtaalam wa Timu Nyekundu ya HackTricks AWS)!

Njia nyingine za kusaidia HackTricks:

Uhifadhi

Uhifadhi wa Google Cloud Platform (GCP) ni ufumbuzi wa uhifadhi uliotegemea wingu ambao hutoa uhifadhi wa vitu wenye uimara na upatikanaji wa juu kwa data isiyo na muundo. Inatoa darasa tofauti za uhifadhi kulingana na utendaji, upatikanaji, na gharama, ikiwa ni pamoja na Standard, Nearline, Coldline, na Archive. Uhifadhi wa GCP pia hutoa vipengele vya juu kama vile sera za maisha, ufuatiliaji wa toleo, na udhibiti wa ufikiaji kusimamia na kuhakikisha data kwa ufanisi.

Kisanduku kinaweza kuhifadhiwa katika eneo, katika mikoa 2 au mikoa mingi (chaguo-msingi).

Aina za Uhifadhi

  • Uhifadhi wa Kawaida: Hii ni chaguo la uhifadhi la msingi ambalo hutoa ufikiaji wa utendaji wa hali ya juu, wenye kuchelewa kidogo kwa data inayofikiwa mara kwa mara. Ni sahihi kwa anuwai ya matumizi, ikiwa ni pamoja na kutumikia yaliyomo kwenye wavuti, kusambaza media, na kuhifadhi mifumo ya uchambuzi wa data.

  • Uhifadhi wa Nearline: Darasa hili la uhifadhi lina gharama za uhifadhi za chini na gharama za ufikiaji kidogo zaidi kuliko Uhifadhi wa Kawaida. Limeboreshwa kwa data inayofikiwa mara chache, na muda wa chini wa uhifadhi wa siku 30. Ni bora kwa madhumuni ya nakala rudufu na kuhifadhi kumbukumbu.

  • Uhifadhi wa Coldline: Darasa hili la uhifadhi limeboreshwa kwa uhifadhi wa muda mrefu wa data inayofikiwa mara chache, na muda wa chini wa uhifadhi wa siku 90. Inatoa gharama za uhifadhi za chini kuliko Uhifadhi wa Nearline, lakini na gharama za ufikiaji zaidi.

  • Uhifadhi wa Archive: Darasa hili la uhifadhi limeundwa kwa data baridi ambayo inafikiwa mara chache sana, na muda wa chini wa uhifadhi wa siku 365. Inatoa gharama za uhifadhi za chini zaidi kati ya chaguzi zote za uhifadhi wa GCP lakini na gharama za ufikiaji zaidi. Ni sahihi kwa kuhifadhi data kwa muda mrefu ambayo inahitaji kuhifadhiwa kwa sababu za kufuata au kisheria.

  • Autoclass: Ikiwa hujui ni kiasi gani utakachofikia data unaweza kuchagua Autoclass na GCP itabadilisha aina ya uhifadhi kiotomatiki ili kupunguza gharama.

Udhibiti wa Ufikiaji

Kwa chaguo-msingi ni inashauriwa kudhibiti ufikiaji kupitia IAM, lakini pia ni kupatikana kuwezesha matumizi ya ACLs. Ikiwa unachagua kutumia IAM pekee (chaguo-msingi) na siku 90 zinapita, hutaweza kuwezesha ACLs kwa kisanduku.

Utoaji wa Toleo

Inawezekana kuwezesha utoaji wa toleo, hii ita hifadhi matoleo ya zamani ya faili ndani ya kisanduku. Inawezekana kusanidi idadi ya matoleo unayotaka kuhifadhi na hata muda gani unataka matoleo yasiyokuwa ya sasa (matoleo ya zamani) yaishi. Inapendekezwa ni siku 7 kwa aina ya Standard.

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

Jifunze zaidi katika nyaraka.

Sera ya Kuhifadhi

Taja kwa muda gani unataka kuzuia kufutwa kwa Vitu ndani ya kisanduku (yenye manufaa sana kwa kufuata angalau). Moja tu ya utoaji wa toleo au sera ya kuhifadhi inaweza kuwezeshwa wakati mmoja.

Ufichaji

Kwa chaguo-msingi vitu vinakuwa vimefichwa kwa kutumia funguo zilizosimamiwa na Google, lakini unaweza pia kutumia funguo kutoka KMS.

Ufikiaji wa Umma

Inawezekana kumpa watumiaji wa nje (walioingia kwenye GCP au la) ufikiaji wa yaliyomo kwenye visanduku. Kwa chaguo-msingi, wakati kisanduku kinavyoundwa, itakuwa na chaguo lililozimwa la kuweka hadharani kisanduku, lakini kwa idhini ya kutosha inaweza kubadilishwa.

Muundo wa URL wa kufikia kisanduku ni https://storage.googleapis.com/<jina-la-kisanduku> au https://<jina-la-kisanduku>.storage.googleapis.com (zote mbili ni halali).

Vielelezo vya HMAC

Kielelezo cha HMAC ni aina ya thibitisho na inaweza kuhusishwa na akaunti ya huduma au akaunti ya mtumiaji katika Uhifadhi wa Wingu. Unatumia kielelezo cha HMAC kuunda sahihi ambazo kisha huwekwa katika maombi kwa Uhifadhi wa Wingu. Saini zinaonyesha kwamba ombi lililopewa idhini na mtumiaji au akaunti ya huduma.

Vielelezo vya HMAC vina sehemu mbili kuu, kitambulisho cha ufikiaji na siri.

  • Kitambulisho cha Ufikiaji: Mnyororo wa alfanumeriki unaoambatishwa na huduma au akaunti ya mtumiaji maalum. Unapounganishwa na akaunti ya huduma, mnyororo ni urefu wa wahusika 61, na unapounganishwa na akaunti ya mtumiaji, mnyororo ni urefu wa wahusika 24. Mfano wa kitambulisho cha ufikiaji ni kama ifuatavyo:

GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA

  • Siri: Mnyororo wa msimbo wa Base-64 wenye urefu wa wahusika 40 ambao unaunganishwa na kitambulisho maalum cha ufikiaji. Siri ni ufunguo uliopangiliwa mapema ambao wewe na Uhifadhi wa Wingu mnajua tu. Unatumia siri yako kuunda saini kama sehemu ya mchakato wa uthibitisho. Mfano wa siri ni kama ifuatavyo:

bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ

Zote kitambulisho cha ufikiaji na siri zinautambulisha kipekee kielelezo cha HMAC, lakini siri ni habari nyeti zaidi, kwa sababu inatumika kuunda saini.

Uchunguzi

# 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

Ikiwa unapata kosa la kukataa ruhusa wakati unapopata orodha ya vikombe unaweza bado kuwa na ufikiaji wa yaliyomo. Kwa hivyo, sasa unapojua kuhusu mkusanyiko wa majina ya vikombe unaweza kuzalisha orodha ya majina yanayowezekana na kujaribu kuyafikia:

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

Na ruhusa storage.objects.list na storage.objects.get, unapaswa kuweza kuchunguza folda zote na faili kutoka kwenye bucket ili kuzipakua. Unaweza kufanikisha hilo kwa kutumia script hii ya 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>')

Upandishaji wa Mamlaka

Kwenye ukurasa ufuatao unaweza kuangalia jinsi ya kutumia ruhusa za uhifadhi kwa kusonga mamlaka:

pageGCP - Storage Privesc

Upimaji wa Bila Kuthibitishwa

pageGCP - Storage Unauthenticated Enum

Baada ya Kudukuliwa

pageGCP - Storage Post Exploitation

Uthabiti

pageGCP - Storage Persistence

Last updated