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 es la solución de almacenamiento de objetos de Microsoft para la nube. El almacenamiento de blobs está optimizado para almacenar grandes cantidades de datos no estructurados. Los datos no estructurados son datos que no se adhieren a un modelo o definición de datos particular, como texto o datos binarios.
El almacenamiento de blobs ofrece tres tipos de recursos:
La cuenta de almacenamiento (nombre único)
Un contenedor en la cuenta de almacenamiento (carpeta)
Un blob en un contenedor
Blob storage |
|
Azure Data Lake Storage Gen2 |
|
Azure Files |
|
Queue storage |
|
Table storage |
|
Use Azure AD principals via RBAC roles supported.
Access Keys: Use access keys of the storage account. This provides full access to the storage account.
Shared Access Signature (SAS): Time limited and specific permissions.
You can generate a SAS url with an access key (more complicated to detect).
As the SAS is generated from the access key, if it gets renewed the SAS stops working.
If "Allow Blob public access" is enabled (disabled by default), it's possible to:
Give public access to read blobs (you need to know the name).
List container blobs and read them.
If you find any storage you can connect to you could use the tool Microsoft Azure Storage Explorer to do so.
From the docs: Una firma de acceso compartido (SAS) proporciona acceso delegado seguro a los recursos en su cuenta de almacenamiento. Con un SAS, tiene control granular sobre cómo un cliente puede acceder a sus datos. Por ejemplo:
Qué recursos puede acceder el cliente.
Qué permisos tiene sobre esos recursos.
Cuánto tiempo es válido el SAS.
Una URL SAS se ve así: 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
Use Storage Explorer para acceder a los datos o python:
Puedes asegurar un token de firma de acceso compartido (SAS) para acceder a un contenedor, directorio o blob utilizando credenciales de Azure Active Directory (Azure AD) o una clave de cuenta. Para crear un SAS de delegación de usuario, primero debes solicitar una clave de delegación de usuario, que luego usarás para firmar el SAS.
Se proporciona soporte para una Firma de Acceso Compartido de Delegación de Usuario (SAS) tanto en Azure Blob Storage como en Azure Data Lake Storage Gen2. Sin embargo, es importante tener en cuenta que las Políticas de Acceso Almacenadas no son compatibles con un SAS de Delegación de Usuario.
Ten en cuenta que el SAS de delegación de usuario está asegurado con credenciales de Azure AD en lugar de claves de cuenta de almacenamiento. Esto evita que los clientes/aplicaciones almacenen/recuperen claves de almacenamiento para crear SAS.
Un service SAS está asegurado con la clave de cuenta de almacenamiento. Un service SAS delegará acceso a un recurso en solo uno de los servicios de almacenamiento de Azure: Blob storage, Queue storage, Table storage o Azure Files. La URI para un SAS a nivel de servicio consiste en la URI del recurso para el cual el SAS delegará acceso, seguida del token SAS.
Para usar credenciales de Azure Active Directory (Azure AD) para asegurar un SAS para un contenedor o blob, utiliza un SAS de delegación de usuario.
Un account SAS está asegurado con una de las claves de cuenta de almacenamiento (hay 2). Un account SAS delega acceso a recursos en uno o más de los servicios de almacenamiento. Todas las operaciones disponibles a través de un SAS de servicio o de delegación de usuario también están disponibles a través de un account SAS.
from the docs: Al crear un account SAS, puedes:
Delegar acceso a operaciones a nivel de servicio que no están actualmente disponibles con un SAS específico de servicio, como las operaciones Get/Set Service Properties
y Get Service Stats
.
Delegar acceso a más de un servicio en una cuenta de almacenamiento a la vez. Por ejemplo, puedes delegar acceso a recursos tanto en Azure Blob Storage como en Azure Files utilizando un account SAS.
Delegar acceso a operaciones de escritura y eliminación para contenedores, colas, tablas y comparticiones de archivos, que no están disponibles con un SAS específico de objeto.
Especificar una dirección IP o un rango de direcciones IP desde las cuales aceptar solicitudes.
Especificar el protocolo HTTP desde el cual aceptar solicitudes (ya sea HTTPS o HTTP/HTTPS).
Aprende y practica Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprende y practica Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)