GCP - Storage Enum

Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'ı desteklemenin diğer yolları:

  • Şirketinizi HackTricks'te reklamını görmek istiyorsanız veya HackTricks'i PDF olarak indirmek istiyorsanız [ABONELİK PLANLARI]'na göz atın (https://github.com/sponsors/carlospolop)!

  • [Resmi PEASS & HackTricks ürünleri]'ni edinin (https://peass.creator-spring.com)

  • [The PEASS Family]'yi keşfedin (https://opensea.io/collection/the-peass-family), özel [NFT'lerimiz]'in bulunduğu koleksiyonumuz

  • Katılın 💬 Discord grubuna veya telegram grubuna veya Twitter 🐦 [@carlospolopm]'i takip edin (https://twitter.com/carlospolopm).

  • Hacking püf noktalarınızı paylaşarak PR'lar göndererek [HackTricks]'e (https://github.com/carlospolop/hacktricks) ve [HackTricks Cloud]'a (https://github.com/carlospolop/hacktricks-cloud) destek olun.

Depolama

Google Cloud Platform (GCP) Depolama, yapılandırılmamış veriler için yüksek dayanıklılık ve kullanılabilirlik sağlayan bulut tabanlı bir depolama çözümü sunar. Performans, kullanılabilirlik ve maliyet temelinde çeşitli depolama sınıfları sunar; Bunlar arasında Standart, Nearline, Coldline ve Archive bulunmaktadır. GCP Depolama ayrıca yaşam döngüsü politikaları, sürümleme ve erişim kontrolü gibi gelişmiş özellikler sunarak verileri etkili bir şekilde yönetmeyi ve güvence altına almayı sağlar.

Kova bir bölgede, 2 bölgede veya çoklu bölgede (varsayılan olarak) saklanabilir.

Depolama Türleri

  • Standart Depolama: Bu, sık erişilen verilere yüksek performanslı, düşük gecikmeli erişim sunan varsayılan depolama seçeneğidir. Web sitesi içeriği sunma, medya akışı ve veri analitiği boru hatlarını barındırma gibi geniş bir kullanım alanı için uygundur.

  • Nearline Depolama: Bu depolama sınıfı, Standart Depolamadan daha düşük depolama maliyetleri ve biraz daha yüksek erişim maliyetleri sunar. En az 30 gün depolama süresine sahip olan nadiren erişilen veriler için optimize edilmiştir. Yedekleme ve arşivleme amaçları için idealdir.

  • Coldline Depolama: Bu depolama sınıfı, nadir erişilen verilerin uzun vadeli depolanması için optimize edilmiştir ve en az 90 gün depolama süresine sahiptir. Nearline Depolamadan daha düşük depolama maliyetleri sunar, ancak daha yüksek erişim maliyetleriyle.

  • Archive Depolama: Bu depolama sınıfı, çok nadiren erişilen soğuk veriler için tasarlanmış olup en az 365 gün depolama süresine sahiptir. Tüm GCP depolama seçeneklerinin en düşük depolama maliyetlerini sunar, ancak en yüksek erişim maliyetleriyle. Uzun vadeli saklanması gereken uyumluluk veya düzenleyici nedenlerle veriler için uygundur.

  • Otomatik Sınıf: Verilere ne kadar erişeceğinizi bilmiyorsanız Otomatik Sınıfı seçebilir ve GCP, maliyetleri en aza indirmek için otomatik olarak depolama türünü değiştirir.

Erişim Kontrolü

Varsayılan olarak, erişimi IAM aracılığıyla kontrol etmek tavsiye edilir, ancak ACL'lerin kullanımını etkinleştirmek de mümkündür. Sadece IAM'ı (varsayılan) kullanmayı seçerseniz ve 90 gün geçerse, kovaya ACL'leri etkinleştiremezsiniz.

Sürümleme

Sürümleme etkinleştirilebilir, bu dosyanın eski sürümlerini kovada saklar. Saklamak istediğiniz sürüm sayısını ve hatta eski sürümlerin (eski sürümler) ne kadar süreyle yaşamasını istediğinizi yapılandırabilirsiniz. Önerilen Standart tür için 7 gün'dür.

Eski sürümün metadatası saklanır. Dahası, eski sürümlerin ACL'leri de saklanır, bu nedenle eski sürümler mevcut sürümden farklı ACL'lere sahip olabilir.

Daha fazlasını belgelerde öğrenin.

Saklama Politikası

Kovadaki Nesnelerin silinmesini yasaklamak istediğiniz süreyi belirtin (en azından uyumluluk için çok yararlı). Sürümleme veya saklama politikasından yalnızca biri aynı anda etkin olabilir.

Şifreleme

Varsayılan olarak nesneler Google tarafından yönetilen anahtarlar kullanılarak şifrelenir, ancak ayrıca bir KMS anahtarı da kullanabilirsiniz.

Genel Erişim

Harici kullanıcılara (GCP'de oturum açmış veya açmamış) kova içeriğine erişim vermek mümkündür. Bir kova oluşturulduğunda, kovanın **genel olarak açığa çıkarılmasını devre dışı bırakma seçeneği varsayılan olarak devre dışı bırakılır, ancak yeterli izinlerle değiştirilebilir.

Bir kovaya erişmek için bir URL'nin biçimi şudur: https://storage.googleapis.com/<kova-adı> veya https://<kova_adı>.storage.googleapis.com (her ikisi de geçerlidir).

HMAC Anahtarları

HMAC anahtarı bir tür kimlik bilgisi ve Cloud Depolama'da bir hizmet hesabı veya kullanıcı hesabı ile ilişkilendirilebilir. Bir HMAC anahtarı oluşturmak için HMAC anahtarını kullanırsınız ve bu da Cloud Depolama'ya yapılan isteklere dahil edilir. İmzalar, belirli bir isteğin kullanıcı veya hizmet hesabı tarafından yetkilendirildiğini gösterir.

HMAC anahtarlarının iki temel parçası vardır, bir erişim kimliği ve bir gizli.

  • Erişim Kimliği: Belirli bir hizmet veya kullanıcı hesabına bağlı alfasayısal bir dizedir. Bir hizmet hesabına bağlandığında, dize 61 karakter uzunluğundadır ve bir kullanıcı hesabına bağlandığında, dize 24 karakter uzunluğundadır. Aşağıdaki, bir erişim kimliğinin bir örneğini göstermektedir:

GOOGTS7C7FUP3AIRVJTE2BCDKINBTES3HC2GY5CBFJDCQ2SYHV6A6XXVTJFSA

  • Gizli: Belirli bir erişim kimliğine bağlı olan 40 karakterlik Base-64 kodlanmış bir dizedir. Gizli, yalnızca sizin ve Cloud Depolama'nın bildiği bir önceden paylaşılmış anahtardır. Kimlik doğrulama sürecinin bir parçası olarak imzalar oluşturmak için gizlinizi kullanırsınız. Aşağıdaki, bir gizli örneğini göstermektedir:

bGoa+V7g/yqDXvKRqq+JTFn4uQZbPiQJo4pf9RzJ

Erişim kimliği ve gizli, bir HMAC anahtarını benzersiz şekilde tanımlar, ancak gizli, imzalar oluşturmak için kullanıldığından daha hassas bilgidir.

# 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

Eğer kovaları listelerken izin reddedildi hatası alırsanız, içeriğe hala erişiminiz olabilir. Dolayısıyla, kovaların ad konvansiyonu hakkında bilgi sahibi olduktan sonra olası adlar listesi oluşturabilir ve bunlara erişmeyi deneyebilirsiniz:

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

İzinler storage.objects.list ve storage.objects.get ile, tüm klasörleri ve dosyaları listeleyip indirmek için bu Python betiği ile başarılı olmalısınız:

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

Ayrıcalık Yükseltme

Aşağıdaki sayfada ayrıcalıkları yükseltmek için depolama izinlerini kötüye kullanma yöntemlerini kontrol edebilirsiniz:

GCP - Storage Privesc

Kimlik Doğrulamasız Sıralama

GCP - Storage Unauthenticated Enum

Saldırı Sonrası İşlemler

GCP - Storage Post Exploitation

Kalıcılık

GCP - Storage Persistence
Sıfırdan kahraman olmak için AWS hackleme öğrenin htARTE (HackTricks AWS Red Team Expert)!

HackTricks'i desteklemenin diğer yolları:

Last updated