Az - Blob Storage
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
From the docs: Azure Blob storage è la soluzione di storage di Microsoft per il cloud. Blob storage è ottimizzato per memorizzare enormi quantità di dati non strutturati. I dati non strutturati sono dati che non aderiscono a un particolare modello o definizione di dati, come testo o dati binari.
Blob storage offre tre tipi di risorse:
L'account di storage (nome unico)
Un contenitore nell'account di storage (cartella)
Un blob in un contenitore
Blob storage |
|
Azure Data Lake Storage Gen2 |
|
Azure Files |
|
Queue storage |
|
Table storage |
|
Usa i principi di Azure AD tramite ruoli RBAC supportati.
Chiavi di accesso: Usa le chiavi di accesso dell'account di storage. Questo fornisce accesso completo all'account di storage.
Firma di accesso condiviso (SAS): Limitata nel tempo e permessi specifici.
Puoi generare un URL SAS con una chiave di accesso (più complicato da rilevare).
Poiché il SAS è generato dalla chiave di accesso, se viene rinnovato, il SAS smette di funzionare.
Se "Consenti accesso pubblico ai blob" è abilitato (disabilitato per impostazione predefinita), è possibile:
Dare accesso pubblico per leggere i blob (devi conoscere il nome).
Elencare i blob del contenitore e leggerli.
Se trovi qualche storage a cui puoi connetterti, puoi usare lo strumento Microsoft Azure Storage Explorer per farlo.
From the docs: Una firma di accesso condiviso (SAS) fornisce accesso delegato sicuro alle risorse nel tuo account di storage. Con un SAS, hai un controllo granulare su come un client può accedere ai tuoi dati. Ad esempio:
Quali risorse il client può accedere.
Quali permessi ha su quelle risorse.
Quanto tempo è valido il SAS.
Un URL SAS appare così: 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
Usa Storage Explorer per accedere ai dati o python:
Puoi proteggere un token di firma di accesso condiviso (SAS) per l'accesso a un contenitore, directory o blob utilizzando le credenziali di Azure Active Directory (Azure AD) o una chiave dell'account. Per creare un user delegation SAS, devi prima richiedere una chiave di delega utente, che poi utilizzi per firmare il SAS.
Il supporto è fornito per un User Delegation Shared Access Signature (SAS) sia in Azure Blob Storage che in Azure Data Lake Storage Gen2. Tuttavia, è importante notare che le Stored Access Policies non sono compatibili con un User Delegation SAS.
Nota che l'user delegation SAS è protetto con le credenziali di Azure AD invece delle chiavi dell'account di archiviazione. Questo impedisce ai client/applicazioni di memorizzare/recuperare le chiavi di archiviazione per creare SAS.
Un service SAS è protetto con la chiave dell'account di archiviazione. Un service SAS delega l'accesso a una risorsa in solo uno dei servizi di archiviazione di Azure: Blob storage, Queue storage, Table storage o Azure Files. L'URI per un SAS a livello di servizio consiste nell'URI della risorsa per la quale il SAS delega l'accesso, seguito dal token SAS.
Per utilizzare le credenziali di Azure Active Directory (Azure AD) per proteggere un SAS per un contenitore o blob, utilizza un user delegation SAS.
Un account SAS è protetto con una delle chiavi dell'account di archiviazione (ce ne sono 2). Un account SAS delega l'accesso alle risorse in uno o più dei servizi di archiviazione. Tutte le operazioni disponibili tramite un service o user delegation SAS sono disponibili anche tramite un account SAS.
from the docs: Creando un account SAS, puoi:
Delegare l'accesso a operazioni a livello di servizio che non sono attualmente disponibili con un SAS specifico per il servizio, come le operazioni Get/Set Service Properties
e Get Service Stats
.
Delegare l'accesso a più di un servizio in un account di archiviazione alla volta. Ad esempio, puoi delegare l'accesso a risorse sia in Azure Blob Storage che in Azure Files utilizzando un account SAS.
Delegare l'accesso a operazioni di scrittura e cancellazione per contenitori, code, tabelle e condivisioni di file, che non sono disponibili con un SAS specifico per l'oggetto.
Specificare un indirizzo IP o un intervallo di indirizzi IP da cui accettare richieste.
Specificare il protocollo HTTP da cui accettare richieste (sia HTTPS che HTTP/HTTPS).
Impara e pratica il hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Impara e pratica il hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)