Az - Blob Storage

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Osnovne Informacije

Od dokumenata: Azure Blob skladištenje je Microsoftovo rešenje za skladištenje objekata u oblaku. Blob skladištenje je optimizovano za skladištenje ogromnih količina nestrukturiranih podataka. Nestrukturirani podaci su podaci koji se ne pridržavaju određenog modela ili definicije, kao što su tekstualni ili binarni podaci.

Blob skladištenje nudi tri vrste resursa:

  • Skladišni nalog (jedinstveno ime)

  • Kontejner u skladištnom nalogu (folder)

  • Blob u kontejneru

Različite vrste skladištenja

Blob skladištenje

https://<skladištni-nalog>.blob.core.windows.net https://<stg-acc>.blob.core.windows.net/<ime-kontejnera>?restype=container&comp=list

Azure Data Lake Storage Gen2

https://<skladištni-nalog>.dfs.core.windows.net

Azure Files

https://<skladištni-nalog>.file.core.windows.net

Skladištenje redova

https://<skladištni-nalog>.queue.core.windows.net

Skladištenje tabela

https://<skladištni-nalog>.table.core.windows.net

Pristup Skladištu

  • Koristite Azure AD principe putem RBAC uloga koje su podržane.

  • Pristupni ključevi: Koristite pristupne ključeve skladištnog naloga. Ovo omogućava puni pristup skladištu.

  • Deljeni pristupni potpis (SAS): Vremenski ograničen i specifične dozvole.

  • Možete generisati SAS URL sa pristupnim ključem (teže otkriti).

  • Pošto je SAS generisan iz pristupnog ključa, ako se obnovi, SAS prestaje da radi.

Javna Izloženost

Ako je "Dozvoli javni pristup blobovima" omogućeno (podrazumevano onemogućeno), moguće je:

  • Dati javni pristup za čitanje blobova (morate znati ime).

  • Izlistati blobove kontejnera i čitati ih.

Povezivanje sa Skladištem

Ako pronađete bilo koje skladište sa kojim možete da se povežete, možete koristiti alatku Microsoft Azure Storage Explorer za to.

SAS URL-ovi

Od dokumenata: Deljeni pristupni potpis (SAS) pruža siguran delegirani pristup resursima u vašem skladištnom nalogu. Sa SAS-om, imate granularnu kontrolu nad tim kako klijent može pristupiti vašim podacima. Na primer:

  • Koje resurse klijent može pristupiti.

  • Koje dozvole imaju za te resurse.

  • Koliko dugo je SAS validan.

SAS URL izgleda ovako: https://<ime_kontejnera>.blob.core.windows.net/novi_kontejner?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

Koristite Storage Explorer za pristup podacima ili python:

#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())

Delegacija korisničkog SAS

Možete osigurati zajednički pristupni potpis (SAS) token za pristup kontejneru, direktorijumu ili bloku koristeći ili Azure Active Directory (Azure AD) kredencijale ili ključ naloga. Da biste kreirali korisnički SAS delegacije, prvo morate zatražiti ključ delegacije korisnika, koji zatim koristite za potpisivanje SAS-a.

Podrška je obezbeđena za Korisnički delegirani potpis zajedničkog pristupa (SAS) kako u Azure Blob Storage-u tako i u Azure Data Lake Storage Gen2. Međutim, važno je napomenuti da Uskladišteni pristupni propisi nisu kompatibilni sa Korisničkim delegiranim SAS-om.

Imajte na umu da je korisnički SAS delegacije osiguran Azure AD kredencijalima umesto ključeva naloga za skladištenje. Ovo sprečava klijente/aplikacije da skladište/dobavljaju ključeve skladištenja radi kreiranja SAS-a.

SAS servisa

SAS servisa je osiguran sa ključem naloga za skladištenje. SAS servisa delegira pristup resursu samo jednoj od Azure Storage servisa: Blob storage, Queue storage, Table storage ili Azure Files. URI za SAS na nivou servisa sastoji se od URI-ja resursa za koji će SAS delegirati pristup, praćenog SAS tokenom.

Da biste koristili Azure Active Directory (Azure AD) kredencijale za osiguravanje SAS-a za kontejner ili blok, koristite korisnički SAS delegacije.

SAS naloga

SAS naloga je osiguran sa jednim od ključeva naloga za skladištenje (njih ima 2). SAS naloga delegira pristup resursima u jednom ili više skladišnih servisa. Sve operacije dostupne putem SAS-a na nivou servisa ili korisničkog SAS-a takođe su dostupne putem SAS-a naloga.

iz dokumentacije: Kreiranjem SAS naloga možete:

  • Delegirati pristup operacijama na nivou servisa koje trenutno nisu dostupne sa SAS-om specifičnim za servis, kao što su operacije Get/Set Service Properties i Get Service Stats.

  • Delegirati pristup više od jednog servisa u skladišnom nalogu istovremeno. Na primer, možete delegirati pristup resursima kako u Azure Blob Storage-u tako i u Azure Files koristeći SAS naloga.

  • Delegirati pristup operacijama pisanja i brisanja za kontejnere, redove, tabele i deljene datoteke, koje nisu dostupne sa SAS-om specifičnim za objekat.

  • Navesti IP adresu ili opseg IP adresa iz kojih će se prihvatati zahtevi.

  • Navesti HTTP protokol iz kojeg će se prihvatati zahtevi (ili HTTPS ili HTTP/HTTPS).

Enumeracija

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

```powershell # Get storage accounts Get-AzStorageAccount | fl # Get rules to access the storage account Get-AzStorageAccount | select -ExpandProperty NetworkRuleSet # Get IPs (Get-AzStorageAccount | select -ExpandProperty NetworkRuleSet).IPRules # Get containers of a storage account Get-AzStorageContainer -Context (Get-AzStorageAccount -name -ResourceGroupName ).context # Get blobs inside container Get-AzStorageBlob -Container epbackup-planetary -Context (Get-AzStorageAccount -name -ResourceGroupName ).context # Get a blob from a container Get-AzStorageBlobContent -Container -Context (Get-AzStorageAccount -name -ResourceGroupName ).context -Blob -Destination .\Desktop\filename.txt ``` ## Reference

Naučite hakovanje AWS-a od nule do heroja sa htARTE (HackTricks AWS Red Team Expert)!

Drugi načini podrške HackTricks-u:

Last updated