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 objektno rešenje za skladištenje 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://<storage-account>.blob.core.windows.net https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list

Azure Data Lake skladištenje Gen2

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

Azure Files

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

Skladištenje redova

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

Skladištenje tabela

https://<storage-account>.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štnom nalogu.

  • 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 (potrebno je 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 alat 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 na tim resursima.

  • Koliko dugo je SAS validan.

SAS URL izgleda ovako: 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

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 the containers
container = svc.get_container_client(container=c['name'])

for b in container.list_blobs():
print(b['name'])


# Download all the blobs
blob_name = b['name'].split("/")[::-1][0]
blob = svc.get_blob_client(container=c['name'],blob=b['name'])
with open(blob_name,"wb") as f:
f.write(blob.download_blob().readall())

SAS sa delegiranjem korisnika

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 SAS sa delegiranjem korisnika, prvo morate zatražiti ključ za delegiranje korisnika, koji zatim koristite za potpisivanje SAS-a.

Podrška je obezbeđena za SAS sa delegiranjem korisnika kako u Azure Blob Storage tako i u Azure Data Lake Storage Gen2. Međutim, važno je napomenuti da Uskladišteni pristupni propisi nisu kompatibilni sa SAS-om sa delegiranjem korisnika.

Imajte na umu da je SAS sa delegiranjem korisnika osiguran Azure AD kredencijalima umesto ključeva za nalog skladišta. Ovo sprečava klijente/aplikacije da skladište/dobavljaju ključeve za skladištenje kako bi kreirali SAS.

SAS usluge

SAS usluge su osigurane sa ključem naloga za skladištenje. SAS usluge delegiraju pristup resursu samo u jednoj od Azure Storage usluga: skladište blokova, skladište redova, skladište tabela ili Azure fajlovi. URI za SAS na nivou usluge 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 SAS sa delegiranjem korisnika.

SAS naloga

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

iz dokumentacije: Kreiranjem SAS naloga možete:

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

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

  • Delegirati pristup operacijama pisanja i brisanja za kontejnere, redove, tabele i deljene fajlove, 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>

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