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: O Azure Blob storage é a solução de armazenamento de objetos da Microsoft para a nuvem. O armazenamento de blobs é otimizado para armazenar grandes quantidades de dados não estruturados. Dados não estruturados são dados que não seguem um modelo ou definição de dados específicos, como texto ou dados binários.
O armazenamento de blobs oferece três tipos de recursos:
A conta de armazenamento (nome único)
Um container na conta de armazenamento (pasta)
Um blob em um container
Blob storage |
|
Azure Data Lake Storage Gen2 |
|
Azure Files |
|
Queue storage |
|
Table storage |
|
Use princípios do Azure AD via funções RBAC suportadas.
Chaves de Acesso: Use chaves de acesso da conta de armazenamento. Isso fornece acesso total à conta de armazenamento.
Assinatura de Acesso Compartilhado (SAS): Tempo limitado e permissões específicas.
Você pode gerar uma URL SAS com uma chave de acesso (mais complicado de detectar).
Como a SAS é gerada a partir da chave de acesso, se ela for renovada, a SAS para de funcionar.
Se "Permitir acesso público a blobs" estiver ativado (desativado por padrão), é possível:
Dar acesso público para ler blobs (você precisa saber o nome).
Listar blobs do container e lê-los.
Se você encontrar algum armazenamento ao qual possa se conectar, pode usar a ferramenta Microsoft Azure Storage Explorer para isso.
From the docs: Uma assinatura de acesso compartilhado (SAS) fornece acesso delegado seguro a recursos em sua conta de armazenamento. Com uma SAS, você tem controle granular sobre como um cliente pode acessar seus dados. Por exemplo:
Quais recursos o cliente pode acessar.
Quais permissões eles têm sobre esses recursos.
Quanto tempo a SAS é válida.
Uma URL SAS se parece com isso: 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 acessar os dados ou python:
Você pode proteger um token de assinatura de acesso compartilhado (SAS) para acesso a um contêiner, diretório ou blob usando credenciais do Azure Active Directory (Azure AD) ou uma chave de conta. Para criar um SAS de delegação de usuário, você deve primeiro solicitar uma chave de delegação de usuário, que você usará para assinar o SAS.
O suporte é fornecido para uma Assinatura de Acesso Compartilhado de Delegação de Usuário (SAS) tanto no Azure Blob Storage quanto no Azure Data Lake Storage Gen2. No entanto, é importante notar que Políticas de Acesso Armazenadas não são compatíveis com um SAS de Delegação de Usuário.
Observe que o SAS de delegação de usuário é protegido com credenciais do Azure AD em vez de chaves de conta de armazenamento. Isso impede que clientes/aplicações armazenem/recuperem chaves de armazenamento para criar SAS.
Um service SAS é protegido com a chave da conta de armazenamento. Um service SAS delegates acesso a um recurso em apenas um dos serviços de Armazenamento do Azure: Armazenamento de Blobs, Armazenamento de Filas, Armazenamento de Tabelas ou Azure Files. O URI para um SAS de nível de serviço consiste no URI do recurso para o qual o SAS delegará acesso, seguido pelo token SAS.
Para usar credenciais do Azure Active Directory (Azure AD) para proteger um SAS para um contêiner ou blob, use um SAS de delegação de usuário.
Um account SAS é protegido com uma das chaves da conta de armazenamento (existem 2). Um account SAS delega acesso a recursos em um ou mais dos serviços de armazenamento. Todas as operações disponíveis via um service ou user delegation SAS também estão disponíveis via um account SAS.
from the docs: Ao criar um account SAS, você pode:
Delegar acesso a operações de nível de serviço que não estão atualmente disponíveis com um SAS específico de serviço, como as operações Get/Set Service Properties
e Get Service Stats
.
Delegar acesso a mais de um serviço em uma conta de armazenamento ao mesmo tempo. Por exemplo, você pode delegar acesso a recursos tanto no Azure Blob Storage quanto no Azure Files usando um account SAS.
Delegar acesso a operações de escrita e exclusão para contêineres, filas, tabelas e compartilhamentos de arquivos, que não estão disponíveis com um SAS específico de objeto.
Especificar um endereço IP ou um intervalo de endereços IP dos quais aceitar solicitações.
Especificar o protocolo HTTP do qual aceitar solicitações (seja HTTPS ou HTTP/HTTPS).
Aprenda e pratique Hacking AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda e pratique Hacking GCP: HackTricks Training GCP Red Team Expert (GRTE)