GCP - Storage Enum

Support HackTricks

Uhifadhi

Uhifadhi wa Google Cloud Platform (GCP) ni suluhisho la uhifadhi kwenye wingu linalotoa uhifadhi wa vitu wenye uimara na upatikanaji mkubwa 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 ili kusimamia na kuhakikisha data kwa ufanisi.

Kisanduku kinaweza kuhifadhiwa katika eneo, katika maeneo 2 au eneo la kawaida (chaguo-msingi).

Aina za Uhifadhi

  • Uhifadhi wa Kawaida: Hii ni chaguo la uhifadhi la msingi linalotoa upatikanaji wa utendaji wa hali ya juu, upatikanaji wa chini wa kuchelewa kwa data inayotumiwa mara kwa mara. Ni sahihi kwa anuwai ya matumizi, ikiwa ni pamoja na kutumikia maudhui ya wavuti, kusambaza media, na kuhosti mifumo ya uchambuzi wa data.

  • Uhifadhi wa Nearline: Darasa hili la uhifadhi lina gharama za uhifadhi za chini na gharama za upatikanaji kidogo zaidi kuliko Uhifadhi wa Kawaida. Limeboreshwa kwa data inayotumiwa 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 inayotumiwa 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 upatikanaji za juu.

  • Uhifadhi wa Archive: Darasa hili la uhifadhi limeundwa kwa data baridi ambayo ina upatikanaji wa chini 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 upatikanaji za juu. Ni sahihi kwa kuhifadhi data kwa muda mrefu inayohitaji kuhifadhiwa kwa sababu za kufuata au za kisheria.

  • Autoclass: Ikiwa hujui 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 lisilokuwa 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 Kudumisha

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 kudumisha 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 maudhui ya visanduku. Kwa chaguo-msingi, wakati kisanduku kinavyoundwa, itakuwa na chaguo lililozimwa la kufichua kwa umma kisanduku, lakini kwa idhini ya kutosha linaweza 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 ruhusa 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 uliopangwa 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

# 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 kukataa idhini wakati unapopata orodha ya vikombe unaweza bado kuwa na ufikiaji wa yaliyomo. Kwa hivyo, sasa unapojua kuhusu mazoea ya jina la vikombe unaweza kuzalisha orodha ya majina yanayowezekana na kujaribu kuyafikia:

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

Kwa ruhusa storage.objects.list na storage.objects.get, unapaswa kuweza kuchunguza folda zote na faili kutoka kwenye ndoo 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 ajili ya upandishaji wa mamlaka:

GCP - Storage Privesc

Upimaji wa Unauthenticated

GCP - Storage Unauthenticated Enum

Baada ya Kudukua

GCP - Storage Post Exploitation

Uthabiti

GCP - Storage Persistence
unga mkono HackTricks

Last updated