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

This commit is contained in:
Translator
2026-06-05 09:24:21 +00:00
parent ed63ad7d0f
commit 47372108e1
@@ -4,72 +4,79 @@
## Informazioni di base
Azure Storage Accounts sono servizi fondamentali in Microsoft Azure che forniscono cloud **storage scalabile, sicuro e altamente disponibile per vari tipi di dati**, inclusi blobs (binary large objects), files, queues e tables. Servono come contenitori che raggruppono questi diversi servizi di storage sotto un unico namespace per una gestione semplice.
Azure Storage Accounts sono servizi fondamentali in Microsoft Azure che forniscono cloud **storage scalabile, sicuro e altamente disponibile per vari tipi di dati**, inclusi blobs (binary large objects), files, queues e tables. Funzionano come container che raggruppano insieme questi diversi servizi di storage sotto un unico namespace per una gestione semplice.
**Principali opzioni di configurazione**:
**Opzioni principali di configurazione**:
- Ogni storage account deve avere un **nome univoco in tutto Azure**.
- Ogni storage account è distribuito in una **regione** o in una Azure extended zone
- Ogni storage account è distribuito in una **region** o in una Azure extended zone
- È possibile selezionare la versione **premium** dello storage account per migliori prestazioni
- È possibile selezionare tra **4 tipi di ridondanza per proteggere** contro guasti di rack, drive e datacenter.
- È possibile scegliere tra **4 tipi di redundancy per proteggersi** da rack, drive e datacenter **failures**.
**Opzioni di configurazione della sicurezza**:
- **Require secure transfer for REST API operations**: Richiede TLS in qualsiasi comunicazione con lo storage
- **Allows enabling anonymous access on individual containers**: Se disabilitato, non sarà possibile abilitare l'accesso anonimo in futuro
- **Enable storage account key access**: Se disabilitato, l'accesso con Shared Keys sarà proibito
- **Allows enabling anonymous access on individual containers**: In caso contrario, in futuro non sarà possibile abilitare l'accesso anonimo
- **Enable storage account key access**: In caso contrario, l'accesso con Shared Keys sarà vietato
- **Minimum TLS version**
- **Permitted scope for copy operations**: Consenti da qualsiasi storage account, da qualsiasi storage account dello stesso Entra tenant o da storage account con private endpoints nella stessa virtual network.
- **Permitted scope for copy operations**: Consenti da qualsiasi storage account, da qualsiasi storage account dello stesso tenant Entra oppure da storage account con private endpoints nella stessa virtual network.
**Opzioni di Blob Storage**:
**Opzioni Blob Storage**:
- **Allow cross-tenant replication**
- **Access tier**: Hot (dati ad accesso frequente), Cool e Cold (dati raramente accessi)
- **Access tier**: Hot (dati accessati frequentemente), Cool e Cold (dati accessati raramente)
**Opzioni di rete**:
**Opzioni di networking**:
- **Network access**:
- Consenti da tutte le reti
- Consenti da virtual networks selezionate e indirizzi IP
- Consenti da tutte le networks
- Consenti da virtual networks e indirizzi IP selezionati
- Disabilita l'accesso pubblico e usa accesso privato
- **Private endpoints**: Permettono una connessione privata allo storage account da una virtual network
- **Private endpoints**: Consente una connessione privata allo storage account da una virtual network
**Opzioni di protezione dei dati**:
- **Point-in-time restore for containers**: Permette di ripristinare i container a uno stato precedente
- Richiede che siano abilitati versioning, change feed e blob soft delete.
- **Enable soft delete for blobs**: Attiva un periodo di retention in giorni per i blob cancellati (anche sovrascritti)
- **Enable soft delete for containers**: Attiva un periodo di retention in giorni per i container cancellati
- **Enable soft delete for file shares**: Attiva un periodo di retention in giorni per i file share cancellati
- **Enable versioning for blobs**: Mantiene versioni precedenti dei blob
- **Enable blob change feed**: Tiene traccia delle operazioni di create, modification e delete sui blob
- **Enable version-level immutability support**: Permette di impostare una policy di retention basata sul tempo a livello di account che si applicherà a tutte le versioni dei blob.
- Version-level immutability support e point-in-time restore for containers non possono essere abilitati simultaneamente.
- **Point-in-time restore for containers**: Consente di ripristinare i container a uno stato precedente
- Richiede che versioning, change feed e blob soft delete siano abilitati.
- **Enable soft delete for blobs**: Abilita un periodo di retention in giorni per i blobs eliminati (anche se sovrascritti)
- **Enable soft delete for containers**: Abilita un periodo di retention in giorni per i container eliminati
- **Enable soft delete for file shares**: Abilita un periodo di retention in giorni per i file shared eliminati
- **Enable versioning for blobs**: Mantiene le versioni precedenti dei tuoi blobs
- **Enable blob change feed**: Mantiene i log delle modifiche di create, modification e delete ai blobs
- **Enable version-level immutability support**: Consente di impostare una policy di retention basata sul tempo a livello di account che si applicherà a tutte le blob versions.
- Version-level immutability support e point-in-time restore for containers non possono essere abilitati contemporaneamente.
**Opzioni di crittografia**:
**Opzioni di configurazione della cifratura**:
- **Encryption type**: È possibile usare Microsoft-managed keys (MMK) o Customer-managed keys (CMK)
- **Enable infrastructure encryption**: Permette di doppiare la cifratura dei dati "for more security"
- **Enable infrastructure encryption**: Consente di cifrare due volte i dati "for more security"
### Storage endpoints
<table data-header-hidden><thead><tr><th width="197">Storage Service</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>
| Storage Service | Endpoint |
| --- | --- |
| **Blob storage** | `https://<storage-account>.blob.core.windows.net` |
| **Blob storage container listing** | `https://<stg-acc>.blob.core.windows.net/<container-name>?restype=container&comp=list` |
| **Data Lake Storage** | `https://<storage-account>.dfs.core.windows.net` |
| **Azure Files** | `https://<storage-account>.file.core.windows.net` |
| **Queue storage** | `https://<storage-account>.queue.core.windows.net` |
| **Table storage** | `https://<storage-account>.table.core.windows.net` |
### Esposizione pubblica
Se "Allow Blob public access" è **abilitato** (disabilitato di default), quando si crea un container è possibile:
Se "Allow Blob public access" è **abilitato** (disabilitato per impostazione predefinita), quando si crea un container è possibile:
- Dare **accesso pubblico per la lettura dei blobs** (è necessario conoscere il nome).
- **Listare i blob del container** e **leggerli**.
- Dare **accesso pubblico per leggere i blobs** (devi conoscere il nome).
- **Elencare i blobs del container** e **leggerli**.
- Renderlo completamente **privato**
<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUfoetUnYBPWQpRrWNnnlbqWpl8Rdoaeg5uBrCVlvcNDlnKwQHjZe8nUb2SfPspBgbu-lCZLmUei-hFi_Jl2eKbaxUtBGTjdUSDmkrcwr90VZkmuMjk9tyh92p75btfyzGiUTa0-=s2048?key=m8TV59TrCFPlkiNnmhYx3aZt" alt=""><figcaption></figcaption></figure>
### Static website (`$web`) exposure & leaked secrets
### Esposizione static website (`$web`) & leaked secrets
- Le **static websites** sono servite dal contenitore speciale `$web` tramite un endpoint specifico per regione come `https://<account>.z13.web.core.windows.net/`.
- Il container `$web` può riportare `publicAccess: null` tramite la blob API, ma i file sono comunque raggiungibili tramite lo static site endpoint, quindi lasciare artefatti di config/IaC può leak secrets.
- Workflow di audit rapido:
- I **static websites** sono serviti dal container speciale `$web` tramite un endpoint specifico per region come `https://<account>.z13.web.core.windows.net/`.
- Il container `$web` può riportare `publicAccess: null` tramite la blob API, ma i file sono comunque raggiungibili attraverso l'endpoint del sito statico, quindi inserirvi config/IaC artifacts può far leak di secrets.
- Quick audit workflow:
```bash
# Identify storage accounts with static website hosting enabled
az storage blob service-properties show --account-name <acc-name> --auth-mode login
@@ -80,53 +87,53 @@ az storage blob list --container-name '$web' --account-name <acc-name> --auth-mo
# Pull suspicious files directly (e.g., IaC tfvars containing secrets/SAS)
az storage blob download -c '$web' --name iac/terraform.tfvars --file /dev/stdout --account-name <acc-name> --auth-mode login
```
### Verifica dell'esposizione anonima dei blob
### Auditing anonymous blob exposure
- **Individua gli storage account** che possono esporre dati: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. Se `allowBlobPublicAccess` è `false` non puoi rendere i container pubblici.
- **Ispeziona gli account a rischio** per confermare il flag e altre impostazioni deboli: `az storage account show --name <acc> --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'`.
- **Enumera l'esposizione a livello di container** dove il flag è abilitato:
- **Individuare gli storage accounts** che possono esporre dati: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. Se `allowBlobPublicAccess` è `false` non puoi rendere public i containers.
- **Ispezionare gli account a rischio** per confermare il flag e altre impostazioni deboli: `az storage account show --name <acc> --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'`.
- **Enumerare l'esposizione a livello di container** dove il flag è abilitato:
```bash
az storage container list --account-name <acc> \
--query '[].{name:name, access:properties.publicAccess}'
```
- `"Blob"`: letture anonime consentite **solo quando il nome del blob è noto** (nessuna enumerazione).
- `"Container"`: **elenco + lettura** anonimi di ogni blob.
- `"Blob"`: letture anonime consentite **solo quando il nome del blob è noto** (nessun listing).
- `"Container"`: **list + read** anonimi di ogni blob.
- `null`: privato; autenticazione richiesta.
- **Dimostrare l'accesso** senza credenziali:
- Se `publicAccess` è `Container`, la lista anonima funziona: `curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list"`.
- Per entrambi `Blob` e `Container`, il download anonimo del blob funziona quando il nome è noto:
- **Dimostra l'accesso** senza credenziali:
- Se `publicAccess` è `Container`, il listing anonimo funziona: `curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list"`.
- Sia per `Blob` che per `Container`, il download anonimo del blob funziona quando il nome è noto:
```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>"
```
### Connettersi allo Storage
### Connect to Storage
Se trovi qualsiasi **storage** a cui puoi connetterti, puoi usare lo strumento [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) per farlo.
Se trovi uno **storage** a cui puoi connetterti, puoi usare lo strumento [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) per farlo.
## Accesso allo Storage <a href="#about-blob-storage" id="about-blob-storage"></a>
## Access to Storage <a href="#about-blob-storage" id="about-blob-storage"></a>
### RBAC
È possibile usare i principal di Entra ID con **ruoli RBAC** per accedere agli storage account ed è il metodo raccomandato.
È possibile usare i principal di Entra ID con **RBAC roles** per accedere agli storage accounts ed è il metodo raccomandato.
### Access Keys
Gli storage account hanno delle access keys che possono essere usate per accedervi. Questo fornisce l'**accesso completo allo storage account.**
Gli storage accounts hanno access keys che possono essere usate per accedervi. Questo fornisce f**ull access to the storage account.**
<figure><img src="../../../images/image (5).png" alt=""><figcaption></figcaption></figure>
### **Shared Keys & Lite Shared Keys**
È possibile [**generare Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) firmate con le access keys per autorizzare l'accesso a determinate risorse tramite un URL firmato.
È possibile [**generate Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) firmate con le access keys per autorizzare l'accesso a determinate risorse tramite una signed URL.
> [!NOTE]
> Nota che la parte `CanonicalizedResource` rappresenta la risorsa del servizio di storage (URI). E se qualsiasi parte nell'URL è codificata, dovrebbe essere codificata anche all'interno del `CanonicalizedResource`.
> Nota che la parte `CanonicalizedResource` rappresenta la risorsa dei storage services (URI). E se una parte nell'URL è encoded, deve esserlo anche all'interno di `CanonicalizedResource`.
> [!NOTE]
> Questo è **usato per default dalla `az` cli** per autenticare le richieste. Per farla usare le credenziali del principal Entra ID indica il parametro `--auth-mode login`.
> Questo è **used by default by `az` cli** per autenticare le richieste. Per far sì che usi le credenziali del principal di Entra ID indica il parametro `--auth-mode login`.
- È possibile generare una **shared key per i servizi blob, queue e file** firmando le seguenti informazioni:
- È possibile generare una **shared key per blob, queue and file services** firmando le seguenti informazioni:
```bash
StringToSign = VERB + "\n" +
Content-Encoding + "\n" +
@@ -143,7 +150,7 @@ Range + "\n" +
CanonicalizedHeaders +
CanonicalizedResource;
```
- È possibile generare una **shared key for table services** firmando le seguenti informazioni:
- È possibile generare una **shared key per i table services** firmando le seguenti informazioni:
```bash
StringToSign = VERB + "\n" +
Content-MD5 + "\n" +
@@ -165,7 +172,7 @@ CanonicalizedResource;
StringToSign = Date + "\n"
CanonicalizedResource
```
Quindi, per usare la chiave, può essere inserita nell'header Authorization seguendo la sintassi:
Poi, per usare la key, si può fare nell'header Authorization seguendo la sintassi:
```bash
Authorization="[SharedKey|SharedKeyLite] <AccountName>:<Signature>"
#e.g.
@@ -179,70 +186,70 @@ Content-Length: 0
```
### **Shared Access Signature** (SAS)
Le Shared Access Signatures (SAS) sono URL sicuri e temporanei che **concedono permessi specifici per accedere a risorse** in un account Azure Storage senza esporre le chiavi di accesso dell'account. Mentre le chiavi di accesso forniscono l'accesso amministrativo completo a tutte le risorse, le SAS permettono un controllo granulare specificando i permessi (come read o write) e definendo un tempo di scadenza.
Shared Access Signatures (SAS) sono URL sicuri e a tempo limitato che **concedono permessi specifici per accedere alle risorse** in un account Azure Storage senza esporre le access keys dell'account. Mentre le access keys forniscono accesso amministrativo completo a tutte le risorse, SAS permette un controllo granulare specificando i permessi (come read o write) e definendo un tempo di scadenza.
#### Tipi di SAS
#### SAS Types
- **User delegation SAS**: Questo viene creato da un **Entra ID principal** che firmerà la SAS e delegherà i permessi dall'utente alla SAS. Può essere usato solo con **blob and data lake storage** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). È possibile **revocare** tutte le user delegated SAS generate.
- È possibile generare una delegation SAS con permessi "maggiori" rispetto a quelli dell'utente. Tuttavia, se il principal non li possiede, non funzionerà (no privesc).
- **Service SAS**: Questo è firmato usando una delle **access keys** dell'account storage. Può essere usato per concedere accesso a risorse specifiche in un singolo servizio di storage. Se la chiave viene rinnovata, la SAS smetterà di funzionare.
- **Account SAS**: È anch'essa firmata con una delle **access keys** dell'account storage. Concede accesso a risorse attraverso i servizi di un account di storage (Blob, Queue, Table, File) e può includere operazioni a livello di servizio.
- **User delegation SAS**: Viene creato da un **Entra ID principal** che firmerà il SAS e delegherà i permessi dall'utente al SAS. Può essere usato solo con **blob and data lake storage** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). È possibile **revocare** tutti i user delegated SAS generati.
- Anche se è possibile generare un delegation SAS con permessi "più" ampi di quelli dell'utente. Tuttavia, se il principal non li ha, non funzionerà (no privesc).
- **Service SAS**: Viene firmato usando una delle **access keys** dell'account di storage. Può essere usato per concedere accesso a risorse specifiche in un singolo storage service. Se la key viene rinnovata, il SAS smetterà di funzionare.
- **Account SAS**: Viene anch'esso firmato con una delle **access keys** dell'account di storage. Concede accesso alle risorse attraverso i servizi di un account storage (Blob, Queue, Table, File) e può includere operazioni a livello di servizio.
Una URL SAS firmata da una **access key** assomiglia a questa:
Un URL SAS firmato con una **access key** ha questo aspetto:
- `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`
Una URL SAS firmata come **user delegation** assomiglia a questa:
Un URL SAS firmato come **user delegation** ha questo aspetto:
- `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`
Nota alcuni **parametri http**:
Nota alcuni **http params**:
- Il parametro **`se`** indica la **data di scadenza** della SAS
- Il parametro **`sp`** indica i **permessi** della SAS
- Il **`sig`** è la **signature** che valida la SAS
- Il parametro **`se`** indica la **data di scadenza** del SAS
- Il parametro **`sp`** indica i **permessi** del SAS
- Il **`sig`** è la **signature** che valida il SAS
#### Permessi SAS
#### SAS permissions
Quando si genera una SAS è necessario indicare i permessi che deve concedere. A seconda dell'oggetto su cui la SAS viene generata, possono essere inclusi permessi diversi. Per esempio:
Quando si genera un SAS è necessario indicare i permessi che deve concedere. A seconda dell'oggetto su cui il SAS viene generato, possono essere inclusi permessi diversi. Per esempio:
- (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
## Supporto SFTP per Azure Blob Storage
## SFTP Support for Azure Blob Storage
Azure Blob Storage ora supporta lo SSH File Transfer Protocol (SFTP), permettendo il trasferimento sicuro di file e la gestione direttamente su Blob Storage senza richiedere soluzioni custom o prodotti di terze parti.
Azure Blob Storage ora supporta l'SSH File Transfer Protocol (SFTP), permettendo il trasferimento e la gestione sicura dei file direttamente su Blob Storage senza richiedere soluzioni custom o prodotti di terze parti.
### Caratteristiche principali
### Key Features
- Supporto del protocollo: SFTP funziona con account Blob Storage configurati con hierarchical namespace (HNS). Questo organizza i blob in directory e sottodirectory per una navigazione più semplice.
- Sicurezza: SFTP utilizza identità utente locali per l'autenticazione e non si integra con RBAC o ABAC. Ogni utente locale può autenticarsi tramite:
- Protocol Support: SFTP funziona con account Blob Storage configurati con hierarchical namespace (HNS). Questo organizza i blob in directory e sottodirectory per una navigazione più semplice.
- Security: SFTP usa identità utente locali per l'autenticazione e non si integra con RBAC o ABAC. Ogni utente locale può autenticarsi tramite:
- Azure-generated passwords
- Coppie di chiavi SSH pubblica/privata
- Permessi granulari: Permessi come Read, Write, Delete e List possono essere assegnati agli utenti locali fino a 100 container.
- Considerazioni di rete: le connessioni SFTP avvengono tramite la porta 22. Azure supporta configurazioni di rete come firewall, private endpoints o virtual networks per proteggere il traffico SFTP.
- Public-private SSH key pairs
- Granular Permissions: Permessi come Read, Write, Delete e List possono essere assegnati a utenti locali per un massimo di 100 container.
- Networking Considerations: Le connessioni SFTP vengono effettuate tramite la porta 22. Azure supporta configurazioni di rete come firewall, private endpoints o virtual networks per proteggere il traffico SFTP.
### Requisiti di configurazione
### Setup Requirements
- Hierarchical Namespace: HNS deve essere abilitato al momento della creazione dell'account di storage.
- Crittografia supportata: Richiede algoritmi crittografici approvati dal Microsoft Security Development Lifecycle (SDL) (es. rsa-sha2-256, ecdsa-sha2-nistp256).
- Configurazione SFTP:
- Abilitare SFTP sull'account di storage.
- Creare identità utente locali con permessi appropriati.
- Configurare directory home per gli utenti per definire la loro posizione iniziale all'interno del container.
- Hierarchical Namespace: HNS deve essere abilitato quando si crea l'account di storage.
- Supported Encryption: Richiede algoritmi crittografici approvati da Microsoft Security Development Lifecycle (SDL) (ad es. rsa-sha2-256, ecdsa-sha2-nistp256).
- SFTP Configuration:
- Abilita SFTP sull'account di storage.
- Crea identità utente locali con i permessi appropriati.
- Configura le home directories per gli utenti per definire la loro posizione iniziale all'interno del container.
### Permissions
| Permesso | Symbol | Descrizione |
| ---------------------- | ------ | ------------------------------------- |
| **Read** | `r` | Legge il contenuto del file. |
| **Write** | `w` | Carica file e crea directory. |
| **List** | `l` | Elenca il contenuto delle directory. |
| **Delete** | `d` | Elimina file o directory. |
| **Create** | `c` | Crea file o directory. |
| **Modify Ownership** | `o` | Cambia l'utente o il gruppo proprietario. |
| **Modify Permissions** | `p` | Modifica le ACL su file o directory. |
| Permission | Symbol | Description |
| ---------------------- | ------ | ------------------------------------ |
| **Read** | `r` | Leggi il contenuto del file. |
| **Write** | `w` | Carica file e crea directory. |
| **List** | `l` | Elenca il contenuto delle directory. |
| **Delete** | `d` | Elimina file o directory. |
| **Create** | `c` | Crea file o directory. |
| **Modify Ownership** | `o` | Cambia l'utente o il gruppo owner. |
| **Modify Permissions** | `p` | Cambia le ACL su file o directory. |
## Enumerazione
## Enumeration
{{#tabs }}
{{#tab name="az cli" }}
@@ -372,7 +379,7 @@ az storage account local-user list \
{{#tab name="Az PowerShell" }}
<details>
<summary>Az PowerShell enumerazione</summary>
<summary>Enumerazione Az PowerShell</summary>
```powershell
# Get storage accounts
Get-AzStorageAccount | fl
@@ -435,13 +442,13 @@ New-AzStorageBlobSASToken `
{{#endtab }}
{{#endtabs }}
### Condivisioni file
### Condivisioni di file
{{#ref}}
az-file-shares.md
{{#endref}}
## Privilege Escalation
## Escalation dei privilegi
{{#ref}}
../az-privilege-escalation/az-storage-privesc.md