Az - Blob Storage

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

HackTricks'i desteklemenin diğer yolları:

Temel Bilgiler

Dokümantasyondan: Azure Blob depolama, Microsoft'un bulut için nesne depolama çözümüdür. Blob depolama, yapılandırılmış bir veri modeline veya tanımına uymayan metin veya ikili veri gibi belirli bir veri modeline uymayan büyük miktarda yapılandırılmamış veri depolamak için optimize edilmiştir.

Blob depolama üç tür kaynak sunar:

  • Depolama hesabı (benzersiz ad)

  • Depolama hesabındaki bir konteyner (klasör)

  • Bir konteynerdeki bir blob

Farklı depolama türleri

Blob depolama

https://<storage-account>.blob.core.windows.net https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list

Azure Data Lake Storage Gen2

https://<storage-account>.dfs.core.windows.net

Azure Files

https://<storage-account>.file.core.windows.net

Queue storage

https://<storage-account>.queue.core.windows.net

Table storage

https://<storage-account>.table.core.windows.net

Depolamaya Erişim

  • Azure AD prensipleri aracılığıyla RBAC rolleri kullanın.

  • Erişim Anahtarları: Depolama hesabının erişim anahtarlarını kullanın. Bu, depolama hesabına tam erişim sağlar.

  • Paylaşılan Erişim İmzası (SAS): Zaman sınırlı ve belirli izinlere sahip.

  • Bir erişim anahtarı ile SAS URL'si oluşturabilirsiniz (tespit etmesi daha karmaşıktır).

  • SAS, erişim anahtarından oluşturulduğu için yenilendiğinde SAS çalışmayı durdurur.

Kamuya Açıklık

"Erişime İzin Ver Blob halka açık erişime izin verildiğinde" (varsayılan olarak devre dışı), aşağıdakiler mümkündür:

  • Blobları okumak için halka açık erişim sağlayın (isimlerini bilmelisiniz).

  • Konteyner bloblarını listele ve okuyun.

Depolamaya Bağlanma

Herhangi bir depolama bulursanız, bunu yapmak için Microsoft Azure Storage Explorer aracını kullanabilirsiniz.

SAS URL'leri

Dokümantasyondan: Paylaşılan erişim imzası (SAS), depolama hesabınızdaki kaynaklara güvenli yetkilendirilmiş erişim sağlar. Bir SAS ile istemcinin verilerinize nasıl erişebileceği konusunda ayrıntılı kontrol sahibi olursunuz. Örneğin:

  • İstemcinin erişebileceği kaynaklar.

  • Bu kaynaklara sahip oldukları izinler.

  • SAS'nin geçerli olduğu süre.

Bir SAS URL'si şuna benzer: https://<container_name>.blob.core.windows.net/newcontainer?sp=r&st=2021-09-26T18:15:21Z&se=2021-10-27T02:14:21Z&spr=https&sv=2021-07-08&sr=c&sig=7S%2BZySOgy4aA3Dk0V1cJyTSIf1cW%2Fu3WFkhHV32%2B4PE%3D

Verilere erişmek için Storage Explorer veya python kullanın:

#pip3 install azure-storage-blob
from azure.storage.blob import BlobServiceClient

# List containers
conn_str="<SAS URL>"
svc = BlobServiceClient.from_connection_string(conn_str=conn_str)
for c in svc.list_containers():
print(c['name']

# List blobs inside conteiner
container = svc.get_container_client(container="<container_name>")
for b in container.list_blobs():
print(b['name']

# Download file
blob = svc.get_blob_client(container="<container_name>",blob="<blob_name>")
with open("download.out","wb") as f:
f.write(blob.download_blob().readall())

Kullanıcı vekilliği SAS

Bir paylaşılan erişim imzası (SAS) belirli bir Azure Active Directory (Azure AD) kimlik bilgisi veya bir hesap anahtarı kullanarak bir konteyner, dizin veya blob'a erişim için güvenli bir SAS belirteci oluşturabilirsiniz. Bir kullanıcı vekilliği SAS oluşturmak için önce bir kullanıcı vekilliği anahtarı talep etmeniz gerekmektedir ve ardından bu anahtarı SAS'ı imzalamak için kullanırsınız.

Azure Blob Storage ve Azure Data Lake Storage Gen2'de Kullanıcı Vekilliği Paylaşılan Erişim İmzası (SAS) desteklenmektedir. Ancak, Saklanan Erişim İlkesi bir Kullanıcı Vekilliği SAS ile uyumlu değildir.

Kullanıcı vekilliği SAS'ı, saklama hesabı anahtarları yerine Azure AD kimlik bilgileri ile güvence altına alınır. Bu, istemcilerin/uygulamaların SAS oluşturmak için saklama anahtarlarını depolamasını/almasını engeller.

Hizmet SAS

Bir hizmet SAS'ı, saklama hesabı anahtarı ile güvence altına alınır. Bir hizmet SAS'ı, yalnızca bir Azure Depolama hizmetindeki bir kaynağa erişimi devreder: Blob depolama, Kuyruk depolama, Tablo depolama veya Azure Dosyaları. Hizmet düzeyinde bir SAS için URI, SAS'ın erişimi devredeceği kaynağın URI'si ile başlar ve ardından SAS belirteci gelir.

Bir konteyner veya blob için SAS'ı güvence altına almak için Azure Active Directory (Azure AD) kimlik bilgilerini kullanın.

Hesap SAS

Bir hesap SAS'ı, saklama hesabı anahtarlarından biriyle güvence altına alınır (2 adet vardır). Bir hesap SAS'ı, bir veya daha fazla depolama hizmetindeki kaynaklara erişimi devreder. Bir hizmet veya kullanıcı vekilliği SAS ile kullanılabilen tüm işlemler, bir hesap SAS ile de kullanılabilir.

dokümantasyondan: Bir hesap SAS oluşturarak şunları yapabilirsiniz:

  • Şu anda hizmete özgü bir SAS ile kullanılamayan hizmet düzeyi işlemlerini (örneğin, Get/Set Service Properties ve Get Service Stats işlemleri) devredebilirsiniz.

  • Bir depolama hesabındaki birden fazla hizmete aynı anda erişimi devredebilirsiniz. Örneğin, bir hesap SAS kullanarak hem Azure Blob Storage hem de Azure Dosyaları'ndaki kaynaklara erişimi devredebilirsiniz.

  • Nesne özgü bir SAS ile kullanılamayan konteyner, kuyruk, tablo ve dosya paylaşımları için yazma ve silme işlemlerini devredebilirsiniz.

  • İstekleri kabul etmek için bir IP adresi veya IP adresi aralığı belirtebilirsiniz.

  • İstekleri kabul etmek için HTTP protokolünü belirtebilirsiniz (HTTPS veya HTTP/HTTPS).

Numaralandırma

# Get storage accounts
az storage account list #Get the account name from here

# Get keys to authenticate
az storage account keys list --account-name <name>

# Get shares
az storage share list --account-name <name> --account-key <key>

# Get dirs/files inside the share
az storage file list --account-name <name> --share-name <share-name> --account-key <key>
## If type is "dir", you can continue enumerationg files inside of it
az storage file list --account-name <name> --share-name <prev_dir/share-name> --account-key <key>

# Download a complete share (with directories and files inside of them)
az storage file download-batch -d . --source <share-name> --account-name <name> --account-key <key>

Referanslar

htARTE (HackTricks AWS Red Team Expert) ile sıfırdan kahramana kadar AWS hackleme öğrenin!

HackTricks'i desteklemenin diğer yolları:

Last updated