Az - Blob Storage

Support HackTricks

Basic Information

From the docs: Azure Blob storage ni suluhisho la uhifadhi la Microsoft kwa wingu. Uhifadhi wa blob umeundwa kwa ajili ya kuhifadhi kiasi kikubwa cha data zisizo na muundo. Data zisizo na muundo ni data ambazo hazifuati mfano maalum wa data au ufafanuzi, kama vile maandiko au data ya binary.

Uhifadhi wa blob unatoa aina tatu za rasilimali:

  • akaunti ya uhifadhi (jina la kipekee)

  • konteina katika akaunti ya uhifadhi (folda)

  • blob katika konteina

Different types of storage

Access to Storage

  • Tumia wahusika wa Azure AD kupitia RBAC roles zinazoungwa mkono.

  • Funguo za Ufikiaji: Tumia funguo za ufikiaji za akaunti ya uhifadhi. Hii inatoa ufikiaji kamili kwa akaunti ya uhifadhi.

  • Saini ya Ufikiaji wa Kshared (SAS): Muda uliowekwa na ruhusa maalum.

  • Unaweza kuunda url ya SAS kwa kutumia funguo za ufikiaji (ngumu zaidi kugundua).

  • Kadri SAS inavyoundwa kutoka kwa funguo za ufikiaji, ikiwa itarejelewa SAS inakoma kufanya kazi.

Public Exposure

Ikiwa "Ruhusu ufikiaji wa umma wa blob" ime wezeshwa (imezimwa kwa chaguo-msingi), inawezekana:

  • Kutoa ufikiaji wa umma kusoma blobs (unahitaji kujua jina).

  • Orodha ya blobs za konteina na zisome.

Connect to Storage

Ikiwa unapata uhifadhi wowote unaweza kuungana nao unaweza kutumia chombo Microsoft Azure Storage Explorer kufanya hivyo.

SAS URLs

From the docs: Saini ya ufikiaji wa pamoja (SAS) inatoa ufikiaji salama wa rasilimali katika akaunti yako ya uhifadhi. Kwa SAS, una udhibiti wa kina juu ya jinsi mteja anaweza kufikia data yako. Kwa mfano:

  • Rasilimali zipi mteja anaweza kufikia.

  • Ni ruhusa zipi wanao kwa rasilimali hizo.

  • SAS itakuwa halali kwa muda gani.

URL ya SAS inaonekana kama hii: 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

Tumia Storage Explorer kufikia data au 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())

User delegation SAS

Unaweza kulinda saini ya ufikiaji wa pamoja (SAS) kwa ajili ya ufikiaji wa kontena, saraka, au blob kwa kutumia akili za Azure Active Directory (Azure AD) au ufunguo wa akaunti. Ili kuunda user delegation SAS, lazima kwanza uombe ufunguo wa uwakilishi wa mtumiaji, ambao kisha utatumika kusaini SAS.

Msaada unapatikana kwa User Delegation Shared Access Signature (SAS) katika Azure Blob Storage na Azure Data Lake Storage Gen2. Hata hivyo, ni muhimu kutambua kwamba Sera za Ufikiaji Zilizohifadhiwa hazifai na User Delegation SAS.

Kumbuka kwamba user delegation SAS imehifadhiwa kwa akili za Azure AD badala ya ufunguo wa akaunti ya hifadhi. Hii inazuia wateja/programu kuhifadhi/kupata ufunguo wa hifadhi ili kuunda SAS.

Service SAS

Service SAS imehifadhiwa kwa ufunguo wa akaunti ya hifadhi. Service SAS inasimamia ufikiaji wa rasilimali katika moja tu ya huduma za Azure Storage: Hifadhi ya Blob, Hifadhi ya Foleni, Hifadhi ya Jedwali, au Faili za Azure. URI ya service-level SAS inajumuisha URI ya rasilimali ambayo SAS itasimamia ufikiaji, ikifuatiwa na token ya SAS.

Ili kutumia akili za Azure Active Directory (Azure AD) kulinda SAS kwa kontena au blob, tumia user delegation SAS.

Account SAS

Account SAS imehifadhiwa kwa mmoja wa ufunguo wa akaunti ya hifadhi (kuna 2). Account SAS inasimamia ufikiaji wa rasilimali katika moja au zaidi ya huduma za hifadhi. Operesheni zote zinazopatikana kupitia service au user delegation SAS pia zinapatikana kupitia account SAS.

from the docs: Kwa kuunda account SAS, unaweza:

  • Kuweka ufikiaji wa operesheni za kiwango cha huduma ambazo hazipatikani kwa sasa na service-specific SAS, kama vile Get/Set Service Properties na Get Service Stats operesheni.

  • Kuweka ufikiaji wa huduma zaidi ya moja katika akaunti ya hifadhi kwa wakati mmoja. Kwa mfano, unaweza kuweka ufikiaji wa rasilimali katika Azure Blob Storage na Azure Files kwa kutumia account SAS.

  • Kuweka ufikiaji wa operesheni za kuandika na kufuta kwa kontena, foleni, jedwali, na sehemu za faili, ambazo hazipatikani na object-specific SAS.

  • Kuweka anwani ya IP au anuwai ya anwani za IP ambazo zitakubali maombi.

  • Kuweka itifaki ya HTTP ambayo itakubali maombi (iwe HTTPS au HTTP/HTTPS).

Enumeration

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

Marejeo

Support HackTricks

Last updated