Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-stor

This commit is contained in:
Translator
2026-01-13 15:15:00 +00:00
parent c7d50f4a72
commit 943b7c0a0d
@@ -1,97 +1,117 @@
# Az - Contas de Armazenamento e Blobs
# Az - Contas de Armazenamento & Blobs
{{#include ../../../banners/hacktricks-training.md}}
## Informações Básicas
As Contas de Armazenamento do Azure são serviços fundamentais no Microsoft Azure que fornecem armazenamento em nuvem **escalável, seguro e altamente disponível para vários tipos de dados**, incluindo blobs (objetos grandes binários), arquivos, filas e tabelas. Elas servem como contêineres que agrupam esses diferentes serviços de armazenamento sob um único namespace para fácil gerenciamento.
Azure Storage Accounts são serviços fundamentais no Microsoft Azure que fornecem armazenamento em nuvem escalável, seguro e altamente disponível para vários tipos de dados, incluindo blobs (binary large objects), files, queues e tables. Eles servem como contêineres que agrupam esses diferentes serviços de armazenamento sob um único namespace para facilitar o gerenciamento.
**Principais opções de configuração**:
- Cada conta de armazenamento deve ter um **nome único em todo o Azure**.
- Cada conta de armazenamento é implantada em uma **região** ou em uma zona estendida do Azure.
- É possível selecionar a versão **premium** da conta de armazenamento para melhor desempenho.
- É possível escolher entre **4 tipos de redundância para proteger** contra falhas de rack, disco e datacenter.
- Toda storage account deve ter um **nome único em todo o Azure**.
- Cada storage account é implantada em uma **região** ou em uma zona estendida do Azure.
- É possível selecionar a versão **premium** da storage account para melhor performance.
- É possível selecionar entre **4 tipos de redundância para proteger** contra falhas de rack, disco e datacenter.
**Opções de configuração de segurança**:
- **Exigir transferência segura para operações da API REST**: Exigir TLS em qualquer comunicação com o armazenamento.
- **Permitir acesso anônimo em contêineres individuais**: Caso contrário, não será possível habilitar o acesso anônimo no futuro.
- **Habilitar acesso à chave da conta de armazenamento**: Caso contrário, o acesso com Chaves Compartilhadas será proibido.
- **Versão mínima do TLS**.
- **Escopo permitido para operações de cópia**: Permitir de qualquer conta de armazenamento, de qualquer conta de armazenamento do mesmo inquilino Entra ou de conta de armazenamento com endpoints privados na mesma rede virtual.
- **Require secure transfer for REST API operations**: Exigir TLS em qualquer comunicação com o storage.
- **Allows enabling anonymous access on individual containers**: Se não habilitado, não será possível ativar acesso anônimo no futuro.
- **Enable storage account key access**: Se não habilitado, o acesso com Shared Keys será proibido.
- **Minimum TLS version**
- **Permitted scope for copy operations**: Permitir de qualquer storage account, de qualquer storage account do mesmo Entra tenant ou de storage accounts com private endpoints na mesma virtual network.
**Opções de Armazenamento de Blobs**:
**Opções do Blob Storage**:
- **Permitir replicação entre inquilinos**.
- **Camada de acesso**: Quente (dados acessados com frequência), Frio e Frio (dados acessados raramente).
- **Allow cross-tenant replication**
- **Access tier**: Hot (dados acessados com frequência), Cool e Cold (dados raramente acessados)
**Opções de Rede**:
- **Acesso à rede**:
- Permitir de todas as redes.
- Permitir de redes virtuais e endereços IP selecionados.
- Desabilitar acesso público e usar acesso privado.
- **Endpoints privados**: Permite uma conexão privada à conta de armazenamento a partir de uma rede virtual.
- **Network access**:
- Allow from all networks
- Allow from selected virtual networks and IP addresses
- Disable public access and use private access
- **Private endpoints**: Permite uma conexão privada à storage account a partir de uma virtual network
**Opções de proteção de dados**:
- **Restauração ponto a ponto para contêineres**: Permite restaurar contêineres para um estado anterior.
- Exige versionamento, feed de alterações e exclusão suave de blobs para ser habilitado.
- **Habilitar exclusão suave para blobs**: Habilita um período de retenção em dias para blobs excluídos (mesmo sobrescritos).
- **Habilitar exclusão suave para contêineres**: Habilita um período de retenção em dias para contêineres excluídos.
- **Habilitar exclusão suave para compartilhamentos de arquivos**: Habilita um período de retenção em dias para compartilhamentos de arquivos excluídos.
- **Habilitar versionamento para blobs**: Manter versões anteriores dos seus blobs.
- **Habilitar feed de alterações de blobs**: Manter registros de criação, modificação e exclusão de alterações em blobs.
- **Habilitar suporte à imutabilidade em nível de versão**: Permite definir uma política de retenção baseada em tempo no nível da conta que se aplicará a todas as versões de blobs.
- O suporte à imutabilidade em nível de versão e a restauração ponto a ponto para contêineres não podem ser habilitados simultaneamente.
- **Point-in-time restore for containers**: Permite restaurar containers para um estado anterior.
- Requer que versioning, change feed e blob soft delete estejam habilitados.
- **Enable soft delete for blobs**: Habilita um período de retenção em dias para blobs deletados (mesmo sobrescritos).
- **Enable soft delete for containers**: Habilita um período de retenção em dias para containers deletados.
- **Enable soft delete for file shares**: Habilita um período de retenção em dias para file shares deletados.
- **Enable versioning for blobs**: Mantém versões anteriores dos seus blobs.
- **Enable blob change feed**: Mantém logs de criação, modificação e exclusão de blobs.
- **Enable version-level immutability support**: Permite definir uma política de retenção baseada em tempo no nível da conta que se aplicará a todas as versões de blob.
- Version-level immutability support e point-in-time restore for containers não podem ser habilitados simultaneamente.
**Opções de configuração de criptografia**:
**Opções de criptografia**:
- **Tipo de criptografia**: É possível usar chaves gerenciadas pela Microsoft (MMK) ou chaves gerenciadas pelo cliente (CMK).
- **Habilitar criptografia de infraestrutura**: Permite criptografar os dados duas vezes "para mais segurança".
- **Encryption type**: É possível usar chaves gerenciadas pela Microsoft (MMK) ou chaves gerenciadas pelo cliente (CMK).
- **Enable infrastructure encryption**: Permite criptografar os dados duas vezes "para mais segurança".
### Endpoints de Armazenamento
### Storage endpoints
<table data-header-hidden><thead><tr><th width="197">Serviço de Armazenamento</th><th>Endpoint</th></tr></thead><tbody><tr><td><strong>Armazenamento de Blobs</strong></td><td><code>https://<storage-account>.blob.core.windows.net</code><br><br><code>https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list</code></td></tr><tr><td><strong>Armazenamento de Data Lake</strong></td><td><code>https://<storage-account>.dfs.core.windows.net</code></td></tr><tr><td><strong>Azure Files</strong></td><td><code>https://<storage-account>.file.core.windows.net</code></td></tr><tr><td><strong>Armazenamento de Filas</strong></td><td><code>https://<storage-account>.queue.core.windows.net</code></td></tr><tr><td><strong>Armazenamento de Tabelas</strong></td><td><code>https://<storage-account>.table.core.windows.net</code></td></tr></tbody></table>
<table data-header-hidden><thead><tr><th width="197">Serviço de Armazenamento</th><th>Endpoint</th></tr></thead><tbody><tr><td><strong>Blob storage</strong></td><td><code>https://<storage-account>.blob.core.windows.net</code><br><br><code>https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list</code></td></tr><tr><td><strong>Data Lake Storage</strong></td><td><code>https://<storage-account>.dfs.core.windows.net</code></td></tr><tr><td><strong>Azure Files</strong></td><td><code>https://<storage-account>.file.core.windows.net</code></td></tr><tr><td><strong>Queue storage</strong></td><td><code>https://<storage-account>.queue.core.windows.net</code></td></tr><tr><td><strong>Table storage</strong></td><td><code>https://<storage-account>.table.core.windows.net</code></td></tr></tbody></table>
### Exposição Pública
Se "Permitir acesso público a Blobs" estiver **habilitado** (desabilitado por padrão), ao criar um contêiner é possível:
Se "Allow Blob public access" estiver **enabled** (disabled por padrão), ao criar um container é possível:
- Dar **acesso público para ler blobs** (é necessário saber o nome).
- **Listar blobs do contêiner** e **lê-los**.
- Torná-lo totalmente **privado**.
- Conceder **acesso público para leitura de blobs** (é necessário conhecer o nome).
- **Listar blobs do container** e **lê-los**.
- Tornar o container totalmente **privado**.
<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUfoetUnYBPWQpRrWNnnlbqWpl8Rdoaeg5uBrCVlvcNDlnKwQHjZe8nUb2SfPspBgbu-lCZLmUei-hFi_Jl2eKbaxUtBGTjdUSDmkrcwr90VZkmuMjk9tyh92p75btfyzGiUTa0-=s2048?key=m8TV59TrCFPlkiNnmhYx3aZt" alt=""><figcaption></figcaption></figure>
### Conectar ao Armazenamento
#### Auditando exposição anônima de blobs
Se você encontrar algum **armazenamento** ao qual possa se conectar, você pode usar a ferramenta [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) para isso.
- **Localizar storage accounts** que podem expor dados: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. Se `allowBlobPublicAccess` for `false` você não pode tornar containers públicos.
- **Inspecionar contas arriscadas** para confirmar a flag e outras configurações fracas: `az storage account show --name <acc> --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'`.
- **Enumerar exposição a nível de container** onde a flag está habilitada:
```bash
az storage container list --account-name <acc> \
--query '[].{name:name, access:properties.publicAccess}'
```
- `"Blob"`: leituras anônimas permitidas **somente quando o nome do blob é conhecido** (sem listagem).
- `"Container"`: listagem + leitura anônimas de cada blob.
- `null`: privado; autenticação necessária.
- **Comprovar acesso** sem credenciais:
- Se `publicAccess` for `Container`, a listagem anônima funciona: `curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list"`.
- Para `Blob` e `Container`, o download anônimo do blob funciona quando o nome é conhecido:
```bash
az storage blob download -c <container> -n <blob> --account-name <acc> --file /dev/stdout
# or via raw HTTP
curl "https://<acc>.blob.core.windows.net/<container>/<blob>"
```
### Conectar ao Storage
## Acesso ao Armazenamento <a href="#about-blob-storage" id="about-blob-storage"></a>
Se encontrar qualquer **storage** ao qual possa conectar-se, pode usar a ferramenta [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) para isso.
## Acesso ao Storage <a href="#about-blob-storage" id="about-blob-storage"></a>
### RBAC
É possível usar princípios do Entra ID com **funções RBAC** para acessar contas de armazenamento e essa é a maneira recomendada.
É possível usar principals do Entra ID com **RBAC roles** para acessar contas de Storage e esse é o método recomendado.
### Chaves de Acesso
### Access Keys
As contas de armazenamento têm chaves de acesso que podem ser usadas para acessá-las. Isso fornece **acesso total à conta de armazenamento.**
As storage accounts têm access keys que podem ser usadas para acessá-las. Isso fornece **acesso completo à conta de Storage.**
<figure><img src="../../../images/image (5).png" alt=""><figcaption></figcaption></figure>
### **Chaves Compartilhadas & Chaves Compartilhadas Lite**
### **Shared Keys & Lite Shared Keys**
É possível [**gerar Chaves Compartilhadas**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) assinadas com as chaves de acesso para autorizar o acesso a certos recursos via uma URL assinada.
É possível [**generate Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) assinadas com as access keys para autorizar o acesso a certos recursos via uma URL assinada.
> [!NOTE]
> Note que a parte `CanonicalizedResource` representa o recurso dos serviços de armazenamento (URI). E se qualquer parte da URL estiver codificada, ela também deve ser codificada dentro do `CanonicalizedResource`.
> Observe que a parte `CanonicalizedResource` representa o recurso dos storage services (URI). E se qualquer parte na URL estiver codificada, ela também deve estar codificada dentro do `CanonicalizedResource`.
> [!NOTE]
> Isso é **usado por padrão pelo `az` cli** para autenticar solicitações. Para fazer com que use as credenciais do principal do Entra ID, indique o parâmetro `--auth-mode login`.
> Isto é **usado por padrão pelo `az` cli** para autenticar requisições. Para fazer com que use as credenciais do principal do Entra ID, indique o parâmetro `--auth-mode login`.
- É possível gerar uma **chave compartilhada para serviços de blob, fila e arquivo** assinando as seguintes informações:
- É possível gerar uma **shared key for blob, queue and file services** assinando a seguinte informação:
```bash
StringToSign = VERB + "\n" +
Content-Encoding + "\n" +
@@ -108,7 +128,7 @@ Range + "\n" +
CanonicalizedHeaders +
CanonicalizedResource;
```
- É possível gerar uma **chave compartilhada para serviços de tabela** assinando as seguintes informações:
- É possível gerar um **shared key for table services** assinando as seguintes informações:
```bash
StringToSign = VERB + "\n" +
Content-MD5 + "\n" +
@@ -116,7 +136,7 @@ Content-Type + "\n" +
Date + "\n" +
CanonicalizedResource;
```
- É possível gerar uma **chave compartilhada lite para serviços de blob, fila e arquivo** assinando as seguintes informações:
- É possível gerar uma **lite shared key for blob, queue and file services** assinando as seguintes informações:
```bash
StringToSign = VERB + "\n" +
Content-MD5 + "\n" +
@@ -125,12 +145,12 @@ Date + "\n" +
CanonicalizedHeaders +
CanonicalizedResource;
```
- É possível gerar uma **chave compartilhada lite para serviços de tabela** assinando as seguintes informações:
- É possível gerar uma **lite shared key for table services** assinando a seguinte informação:
```bash
StringToSign = Date + "\n"
CanonicalizedResource
```
Então, para usar a chave, pode ser feito no cabeçalho Authorization seguindo a sintaxe:
Então, para usar a chave, isso pode ser feito no cabeçalho Authorization seguindo a sintaxe:
```bash
Authorization="[SharedKey|SharedKeyLite] <AccountName>:<Signature>"
#e.g.
@@ -142,26 +162,26 @@ x-ms-date: Fri, 26 Jun 2015 23:39:12 GMT
Authorization: SharedKey myaccount:ctzMq410TV3wS7upTBcunJTDLEJwMAZuFPfr0mrrA08=
Content-Length: 0
```
### **Shared Access Signature** (SAS)
### **Assinatura de Acesso Compartilhado** (SAS)
As Signaturas de Acesso Compartilhado (SAS) são URLs seguras e com tempo limitado que **concedem permissões específicas para acessar recursos** em uma conta de Armazenamento Azure sem expor as chaves de acesso da conta. Enquanto as chaves de acesso fornecem acesso administrativo total a todos os recursos, o SAS permite um controle granular ao especificar permissões (como leitura ou gravação) e definir um tempo de expiração.
Shared Access Signatures (SAS) são URLs seguras e com tempo limitado que **concedem permissões específicas para acessar recursos** em uma conta Azure Storage sem expor as chaves de acesso da conta. Enquanto as access keys fornecem acesso administrativo completo a todos os recursos, o SAS permite controle granular ao especificar permissões (como leitura ou escrita) e definir um tempo de expiração.
#### Tipos de SAS
- **SAS de delegação de usuário**: Isso é criado a partir de um **principal do Entra ID** que assinará o SAS e delegará as permissões do usuário para o SAS. Pode ser usado apenas com **armazenamento de blob e data lake** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). É possível **revogar** todos os SAS delegados gerados pelo usuário.
- Mesmo que seja possível gerar um SAS de delegação com "mais" permissões do que as que o usuário possui. No entanto, se o principal não as tiver, não funcionará (sem privesc).
- **SAS de serviço**: Isso é assinado usando uma das **chaves de acesso** da conta de armazenamento. Pode ser usado para conceder acesso a recursos específicos em um único serviço de armazenamento. Se a chave for renovada, o SAS deixará de funcionar.
- **SAS de conta**: Também é assinado com uma das **chaves de acesso** da conta de armazenamento. Concede acesso a recursos em serviços de conta de armazenamento (Blob, Queue, Table, File) e pode incluir operações em nível de serviço.
- **User delegation SAS**: Isso é criado a partir de um **Entra ID principal** que assinará o SAS e delegará as permissões do usuário para o SAS. Só pode ser usado com **blob and data lake storage** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). É possível **revogar** todos os user delegated SAS gerados.
- Mesmo que seja possível gerar um delegation SAS com "mais" permissões do que as que o usuário possui. No entanto, se o principal não as tiver, não funcionará (sem privesc).
- **Service SAS**: Isso é assinado usando uma das **access keys** da storage account. Pode ser usado para conceder acesso a recursos específicos em um único serviço de storage. Se a key for renovada, o SAS deixará de funcionar.
- **Account SAS**: Também é assinado com uma das **access keys** da storage account. Concede acesso a recursos através dos serviços da storage account (Blob, Queue, Table, File) e pode incluir operações a nível de serviço.
Uma URL SAS assinada por uma **chave de acesso** se parece com isso:
Uma URL SAS assinada por uma **access key** se parece com isto:
- `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`
Uma URL SAS assinada como uma **delegação de usuário** se parece com isso:
Uma URL SAS assinada como **user delegation** se parece com isto:
- `https://<container_name>.blob.core.windows.net/testing-container?sp=r&st=2024-11-22T15:07:40Z&se=2024-11-22T23:07:40Z&skoid=d77c71a1-96e7-483d-bd51-bd753aa66e62&sktid=fdd066e1-ee37-49bc-b08f-d0e152119b04&skt=2024-11-22T15:07:40Z&ske=2024-11-22T23:07:40Z&sks=b&skv=2022-11-02&spr=https&sv=2022-11-02&sr=c&sig=7s5dJyeE6klUNRulUj9TNL0tMj2K7mtxyRc97xbYDqs%3D`
Note alguns **parâmetros http**:
Note alguns **http params**:
- O parâmetro **`se`** indica a **data de expiração** do SAS
- O parâmetro **`sp`** indica as **permissões** do SAS
@@ -169,48 +189,51 @@ Note alguns **parâmetros http**:
#### Permissões do SAS
Ao gerar um SAS, é necessário indicar as permissões que ele deve conceder. Dependendo do objeto sobre o qual o SAS está sendo gerado, diferentes permissões podem ser incluídas. Por exemplo:
Ao gerar um SAS é necessário indicar as permissões que ele deve conceder. Dependendo do objeto sobre o qual o SAS está sendo gerado, diferentes permissões podem ser incluídas. Por exemplo:
- (a)dd, (c)reate, (d)elete, (e)xecute, (f)ilter_by_tags, (i)set_immutability_policy, (l)ist, (m)ove, (r)ead, (t)ag, (w)rite, (x)delete_previous_version, (y)permanent_delete
## Suporte a SFTP para Azure Blob Storage
## SFTP Support for Azure Blob Storage
O Azure Blob Storage agora suporta o Protocolo de Transferência de Arquivos SSH (SFTP), permitindo transferência e gerenciamento seguro de arquivos diretamente para o Blob Storage sem exigir soluções personalizadas ou produtos de terceiros.
Azure Blob Storage agora suporta o SSH File Transfer Protocol (SFTP), permitindo transferência de arquivos segura e gerenciamento diretamente no Blob Storage sem necessidade de soluções customizadas ou produtos de terceiros.
### Principais Recursos
- Suporte a Protocolo: O SFTP funciona com contas de Blob Storage configuradas com namespace hierárquico (HNS). Isso organiza blobs em diretórios e subdiretórios para facilitar a navegação.
- Segurança: O SFTP usa identidades de usuários locais para autenticação e não se integra com RBAC ou ABAC. Cada usuário local pode se autenticar via:
- Senhas geradas pelo Azure
- Pares de chaves SSH pública-privada
- Permissões Granulares: Permissões como Ler, Gravar, Excluir e Listar podem ser atribuídas a usuários locais para até 100 contêineres.
- Considerações de Rede: Conexões SFTP são feitas através da porta 22. O Azure suporta configurações de rede como firewalls, endpoints privados ou redes virtuais para proteger o tráfego SFTP.
- Protocol Support: SFTP funciona com contas Blob Storage configuradas com hierarchical namespace (HNS). Isso organiza blobs em diretórios e subdiretórios para facilitar a navegação.
- Security: SFTP usa identidades de usuários locais para autenticação e não se integra com RBAC ou ABAC. Cada usuário local pode autenticar via:
- Azure-generated passwords
- Public-private SSH key pairs
- Granular Permissions: Permissões como Read, Write, Delete e List podem ser atribuídas a usuários locais para até 100 containers.
- Networking Considerations: Conexões SFTP são feitas pela porta 22. A Azure suporta configurações de rede como firewalls, private endpoints ou virtual networks para proteger o tráfego SFTP.
### Requisitos de Configuração
- Namespace Hierárquico: O HNS deve ser habilitado ao criar a conta de armazenamento.
- Criptografia Suportada: Requer algoritmos criptográficos aprovados pelo Microsoft Security Development Lifecycle (SDL) (por exemplo, rsa-sha2-256, ecdsa-sha2-nistp256).
- Configuração do SFTP:
- Habilitar SFTP na conta de armazenamento.
- Criar identidades de usuários locais com permissões apropriadas.
- Configurar diretórios pessoais para usuários definirem sua localização inicial dentro do contêiner.
- Hierarchical Namespace: HNS deve estar habilitado ao criar a storage account.
- Supported Encryption: Requer algoritmos criptográficos aprovados pelo Microsoft Security Development Lifecycle (SDL) (por exemplo, rsa-sha2-256, ecdsa-sha2-nistp256).
- SFTP Configuration:
- Enable SFTP on the storage account.
- Create local user identities with appropriate permissions.
- Configure home directories for users to define their starting location within the container.
### Permissões
| Permissão | Símbolo | Descrição |
| ---------------------- | ------ | ------------------------------------ |
| **Ler** | `r` | Ler o conteúdo do arquivo. |
| **Gravar** | `w` | Fazer upload de arquivos e criar diretórios. |
| **Listar** | `l` | Listar conteúdos de diretórios. |
| **Excluir** | `d` | Excluir arquivos ou diretórios. |
| **Criar** | `c` | Criar arquivos ou diretórios. |
| **Modificar Propriedade** | `o` | Alterar o usuário ou grupo proprietário. |
| **Modificar Permissões** | `p` | Alterar ACLs em arquivos ou diretórios. |
| Permissão | Símbolo | Descrição |
| ---------------------- | ------- | ------------------------------------- |
| **Leitura** | `r` | Ler o conteúdo do arquivo. |
| **Escrita** | `w` | Fazer upload de arquivos e criar diretórios. |
| **Listar** | `l` | Listar o conteúdo dos diretórios. |
| **Excluir** | `d` | Excluir arquivos ou diretórios. |
| **Criar** | `c` | Criar arquivos ou diretórios. |
| **Modificar Ownership**| `o` | Alterar o usuário ou grupo proprietário. |
| **Modificar Permissions** | `p` | Alterar ACLs em arquivos ou diretórios. |
## Enumeração
## Enumeration
{{#tabs }}
{{#tab name="az cli" }}
<details>
<summary>enumeração az cli</summary>
```bash
# Get storage accounts
az storage account list #Get the account name from here
@@ -327,10 +350,15 @@ az storage account local-user list \
--account-name <storage-account-name> \
--resource-group <resource-group-name>
```
</details>
{{#endtab }}
{{#tab name="Az PowerShell" }}
```bash
<details>
<summary>Enumeração do Az PowerShell</summary>
```powershell
# Get storage accounts
Get-AzStorageAccount | fl
# Get rules to access the storage account
@@ -387,28 +415,30 @@ New-AzStorageBlobSASToken `
-Permission racwdl `
-ExpiryTime (Get-Date "2024-12-31T23:59:00Z")
```
</details>
{{#endtab }}
{{#endtabs }}
### Compartilhamentos de Arquivos
### Compartilhamento de Arquivos
{{#ref}}
az-file-shares.md
{{#endref}}
## Escalação de Privilégios
## Privilege Escalation
{{#ref}}
../az-privilege-escalation/az-storage-privesc.md
{{#endref}}
## Pós Exploração
## Post Exploitation
{{#ref}}
../az-post-exploitation/az-blob-storage-post-exploitation.md
{{#endref}}
## Persistência
## Persistence
{{#ref}}
../az-persistence/az-storage-persistence.md
@@ -419,5 +449,9 @@ az-file-shares.md
- [https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction](https://learn.microsoft.com/en-us/azure/storage/blobs/storage-blobs-introduction)
- [https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview](https://learn.microsoft.com/en-us/azure/storage/common/storage-sas-overview)
- [https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support](https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support)
- [Holiday Hack Challenge 2025: Blob Storage (Storage Secrets)](https://0xdf.gitlab.io/holidayhack2025/act1/blob-storage)
- [https://learn.microsoft.com/en-us/cli/azure/storage/account](https://learn.microsoft.com/en-us/cli/azure/storage/account)
- [https://learn.microsoft.com/en-us/cli/azure/storage/container](https://learn.microsoft.com/en-us/cli/azure/storage/container)
- [https://learn.microsoft.com/en-us/cli/azure/storage/blob](https://learn.microsoft.com/en-us/cli/azure/storage/blob)
{{#include ../../../banners/hacktricks-training.md}}