Az - File Shares

Reading time: 8 minutes

tip

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) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks

Informazioni di Base

Azure Files è un servizio di archiviazione file cloud completamente gestito che fornisce archiviazione file condivisa accessibile tramite i protocolli standard SMB (Server Message Block) e NFS (Network File System). Sebbene il protocollo principale utilizzato sia SMB, le condivisioni di file NFS di Azure non sono supportate per Windows (secondo la documentazione). Consente di creare condivisioni di file di rete altamente disponibili che possono essere accessibili simultaneamente da più macchine virtuali (VM) o sistemi on-premises, consentendo una condivisione di file senza soluzione di continuità tra gli ambienti.

Livelli di Accesso

  • Ottimizzato per Transazioni: Ottimizzato per operazioni ad alta intensità di transazione.
  • Hot: Bilanciato tra transazioni e archiviazione.
  • Cool: Economico per l'archiviazione.
  • Premium: Archiviazione file ad alte prestazioni ottimizzata per carichi di lavoro a bassa latenza e intensivi in IOPS.

Backup

  • Backup Giornaliero: Un punto di backup viene creato ogni giorno a un orario indicato (ad es. 19.30 UTC) e conservato da 1 a 200 giorni.
  • Backup Settimanale: Un punto di backup viene creato ogni settimana in un giorno e orario indicati (domenica alle 19.30) e conservato da 1 a 200 settimane.
  • Backup Mensile: Un punto di backup viene creato ogni mese in un giorno e orario indicati (ad es. prima domenica alle 19.30) e conservato da 1 a 120 mesi.
  • Backup Annuale: Un punto di backup viene creato ogni anno in un giorno e orario indicati (ad es. prima domenica di gennaio alle 19.30) e conservato da 1 a 10 anni.
  • È anche possibile eseguire backup manuali e snapshot in qualsiasi momento. I backup e gli snapshot sono in realtà la stessa cosa in questo contesto.

Autenticazioni Supportate tramite SMB

  • Autenticazione AD DS On-premises: Utilizza le credenziali di Active Directory on-premises sincronizzate con Microsoft Entra ID per l'accesso basato su identità. Richiede connettività di rete con AD DS on-premises.
  • Autenticazione Microsoft Entra Domain Services: Sfrutta i Microsoft Entra Domain Services (AD basato su cloud) per fornire accesso utilizzando le credenziali di Microsoft Entra.
  • Microsoft Entra Kerberos per Identità Ibride: Consente agli utenti di Microsoft Entra di autenticarsi alle condivisioni di file Azure su Internet utilizzando Kerberos. Supporta VM unite a Microsoft Entra ibride o unite a Microsoft Entra senza richiedere connettività con i controller di dominio on-premises. Ma non supporta identità solo cloud.
  • Autenticazione AD Kerberos per Client Linux: Consente ai client Linux di utilizzare Kerberos per l'autenticazione SMB tramite AD DS on-premises o Microsoft Entra Domain Services.

Enumerazione

bash
# Get storage accounts
az storage account list #Get the account name from here

# List file shares
az storage share list --account-name <name>
az storage share-rm list --storage-account <name> # To see the deleted ones too --include-deleted
# Get dirs/files inside the share
az storage file list --account-name <name> --share-name <share-name>
## If type is "dir", you can continue enumerating files inside of it
az storage file list --account-name <name> --share-name <prev_dir/share-name>
# Download a complete share (with directories and files inside of them)
az storage file download-batch -d . --source <share-name> --account-name <name>
# List snapshots
az storage share snapshot --name <share-name>
# List file shares, including deleted ones
az rest --method GET \
--url "https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Storage/storageAccounts/{storageAccountName}/fileServices/default/shares?%24skipToken=&%24maxpagesize=20&%24filter=&%24expand=deleted&api-version=2019-06-01"

# Get snapshots/backups
az storage share list --account-name <name> --include-snapshots --query "[?snapshot != null]"
# List contents of a snapshot/backup
az storage file list --account-name <name> --share-name <share-name> --snapshot <snapshot-version> #e.g. "2024-11-25T11:26:59.0000000Z"
# Download snapshot/backup
az storage file download-batch -d . --account-name <name> --source <share-name> --snapshot <snapshot-version>

note

Per impostazione predefinita, az cli utilizzerà una chiave dell'account per firmare una chiave e eseguire l'azione. Per utilizzare i privilegi del principale Entra ID, utilizzare i parametri --auth-mode login --enable-file-backup-request-intent.

tip

Utilizzare il parametro --account-key per indicare la chiave dell'account da utilizzare
Utilizzare il parametro --sas-token con il token SAS per accedere tramite un token SAS

Connessione

Questi sono gli script proposti da Azure al momento della scrittura per connettersi a un File Share:

È necessario sostituire i segnaposto <STORAGE-ACCOUNT>, <ACCESS-KEY> e <FILE-SHARE-NAME>.

bash
$connectTestResult = Test-NetConnection -ComputerName filescontainersrdtfgvhb.file.core.windows.net -Port 445
if ($connectTestResult.TcpTestSucceeded) {
# Save the password so the drive will persist on reboot
cmd.exe /C "cmdkey /add:`"<STORAGE-ACCOUNT>.file.core.windows.net`" /user:`"localhost\<STORAGE-ACCOUNT>`" /pass:`"<ACCESS-KEY>`""
# Mount the drive
New-PSDrive -Name Z -PSProvider FileSystem -Root "\\<STORAGE-ACCOUNT>.file.core.windows.net\<FILE-SHARE-NAME>" -Persist
} else {
Write-Error -Message "Unable to reach the Azure storage account via port 445. Check to make sure your organization or ISP is not blocking port 445, or use Azure P2S VPN, Azure S2S VPN, or Express Route to tunnel SMB traffic over a different port."
}

Enumerazione dello storage regolare (chiavi di accesso, SAS...)

Az - Storage Accounts & Blobs

Escalation dei privilegi

Stesso metodo per la privesc dello storage:

Az - Storage Privesc

Post Exploitation

Az - File Share Post Exploitation

Persistenza

Stesso metodo per la persistenza dello storage:

Az - Storage Persistence

tip

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) Impara e pratica il hacking Azure: HackTricks Training Azure Red Team Expert (AzRTE)

Supporta HackTricks