mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-stor
This commit is contained in:
@@ -4,114 +4,129 @@
|
||||
|
||||
## Basiese Inligting
|
||||
|
||||
Azure Storage Accounts is fundamentele dienste in Microsoft Azure wat skaalbare, veilige en hoogs beskikbare cloud **bergery vir verskeie datatipes** verskaf, insluitend blobs (binary large objects), files, queues, en tables. Hulle dien as kontainers wat hierdie verskillende stoor-dienste saamgroepeer onder 'n enkele namespace vir maklike bestuur.
|
||||
Azure Storage Accounts is fundamentele dienste in Microsoft Azure wat skaalbare, veilige en hoog-beskikbare cloud **storage vir verskillende datatipes** verskaf, insluitend blobs (binary large objects), files, queues, en tables. Hulle dien as houers wat hierdie verskillende stoor-dienste onder 'n enkele namespace groepeer vir maklike bestuur.
|
||||
|
||||
**Belangrikste konfigurasie-opsies**:
|
||||
**Hoof konfigurasie-opsies**:
|
||||
|
||||
- Elke storage account moet 'n **unieke naam oor alle Azure** hê.
|
||||
- Elke storage account word ontplooi in 'n **streek** of in 'n Azure extended zone.
|
||||
- Dit is moontlik om die **premium** weergawe van die storage account te kies vir beter prestasie.
|
||||
- Dit is moontlik om te kies tussen **4 tipes redundansie om te beskerm** teen rak-, skyf- en datacenter-**uitval**.
|
||||
- Every storage account must have a **uniq name across all Azure**.
|
||||
- Every storage account is deployed in a **region** or in an Azure extended zone
|
||||
- It's possible to select the **premium** version of the storage account for better performance
|
||||
- It's possible to select among **4 types of redundancy to protect** against rack, drive and datacenter **failures**.
|
||||
|
||||
**Sekuriteitskonfigurasie-opsies**:
|
||||
|
||||
- **Require secure transfer for REST API operations**: Vereis TLS in enige kommunikasie met die storage.
|
||||
- **Allows enabling anonymous access on individual containers**: As dit nie toegelaat word nie, sal dit in die toekoms nie moontlik wees om anonymous access te aktiveer nie.
|
||||
- **Enable storage account key access**: As dit nie geaktiveer is nie, sal toegang met Shared Keys verbied wees.
|
||||
- **Require secure transfer for REST API operations**: Require TLS in any communication with the storage
|
||||
- **Allows enabling anonymous access on individual containers**: If not, it won't be possible to enable anonymous access in the future
|
||||
- **Enable storage account key access**: If not, access with Shared Keys will be forbidden
|
||||
- **Minimum TLS version**
|
||||
- **Permitted scope for copy operations**: Allow from any storage account, from any storage account from the same Entra tenant or from storage account with private endpoints in the same virtual network.
|
||||
|
||||
**Blob Storage opsies**:
|
||||
|
||||
- **Allow cross-tenant replication**
|
||||
- **Access tier**: Hot (gereeld benaderde data), Cool en Cold (selde benaderde data)
|
||||
- **Access tier**: Hot (gewoonlik gereeld geraadpleegde data), Cool en Cold (seldsame toegang tot data)
|
||||
|
||||
**Netwerk-opsies**:
|
||||
|
||||
- **Network access**:
|
||||
- Allow from all networks
|
||||
- Allow from selected virtual networks and IP addresses
|
||||
- Disable public access and use private access
|
||||
- **Private endpoints**: Dit laat 'n private verbinding na die storage account toe vanaf 'n virtual network
|
||||
- **Netwerk toegang**:
|
||||
- Toelaat vanaf alle netwerke
|
||||
- Toelaat vanaf geselekteerde virtuele netwerke en IP-adresse
|
||||
- Deaktiveer publieke toegang en gebruik private toegang
|
||||
- **Private endpoints**: Dit laat 'n private verbinding toe na die storage account vanaf 'n virtuele netwerk
|
||||
|
||||
**Data-beskermingsopsies**:
|
||||
**Data-beskerming opsies**:
|
||||
|
||||
- **Point-in-time restore for containers**: Laat toe om kontainers na 'n vroeër toestand te herstel.
|
||||
- Dit vereis versioning, change feed, en blob soft delete om geaktiveer te wees.
|
||||
- **Enable soft delete for blobs**: Aktiveer 'n retensieperiode in dae vir verwyderde blobs (selfs oorskryfde).
|
||||
- **Enable soft delete for containers**: Aktiveer 'n retensieperiode in dae vir verwyderde containers.
|
||||
- **Enable soft delete for file shares**: Aktiveer 'n retensieperiode in dae vir verwyderde file shares.
|
||||
- **Enable versioning for blobs**: Handhaaf vorige weergawes van jou blobs.
|
||||
- **Enable blob change feed**: Hou logs van create-, modification- en delete-wijzigings aan blobs.
|
||||
- **Enable version-level immutability support**: Laat toe om 'n tydgebaseerde retensiebeleid op rekeningvlak in te stel wat op alle blob-weergawes toegepas sal word.
|
||||
- Version-level immutability support en point-in-time restore for containers kan nie terselfdertyd geaktiveer word nie.
|
||||
- **Point-in-time restore for containers**: Laat jou toe om containers na 'n vroeër staat te herstel
|
||||
- Dit vereis dat versioning, change feed, en blob soft delete geaktiveer is.
|
||||
- **Enable soft delete for blobs**: Dit skep 'n bewaringstydperk in dae vir uitgevee blobs (selfs oorskryf)
|
||||
- **Enable soft delete for containers**: Dit skep 'n bewaringstydperk in dae vir uitgevee containers
|
||||
- **Enable soft delete for file shares**: Dit skep 'n bewaringstydperk in dae vir uitgevee file shares
|
||||
- **Enable versioning for blobs**: Handhaaf vorige weergawes van jou blobs
|
||||
- **Enable blob change feed**: Hou logs van create, modification, en delete veranderinge aan blobs
|
||||
- **Enable version-level immutability support**: Laat jou toe om 'n tydgebaseerde bewaringbeleid op rekeningvlak te stel wat op alle blob-weergawes toegepas word.
|
||||
- Version-level immutability support and point-in-time restore for containers cannot be enabled simultaneously.
|
||||
|
||||
**Enkripsie-konfigurasie-opsies**:
|
||||
**Enkripsiekonfigurasie-opsies**:
|
||||
|
||||
- **Encryption type**: Dit is moontlik om Microsoft-managed keys (MMK) of Customer-managed keys (CMK) te gebruik.
|
||||
- **Enable infrastructure encryption**: Laat toe om die data dubbel te enkripteer "vir meer sekuriteit".
|
||||
- **Encryption type**: It's possible to use Microsoft-managed keys (MMK) or Customer-managed keys (CMK)
|
||||
- **Enable infrastructure encryption**: Laat toe om die data dubbel te enkripteer "vir meer sekuriteit"
|
||||
|
||||
### Storage endpoints
|
||||
|
||||
<table data-header-hidden><thead><tr><th width="197">Bergingdiens</th><th>Eindpunt</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>
|
||||
<table data-header-hidden><thead><tr><th width="197">Stoordiens</th><th>Eindpunt</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>
|
||||
|
||||
### Openbare blootstelling
|
||||
### Publieke blootstelling
|
||||
|
||||
As "Allow Blob public access" **enabled** is (disabled by default), is dit wanneer 'n container geskep word moontlik om:
|
||||
As "Allow Blob public access" **geaktiveer** is (deaktiveer per verstek), is dit by die skep van 'n container moontlik om:
|
||||
|
||||
- Gee **public access to read blobs** (jy moet die naam ken).
|
||||
- **List container blobs** en dit **read**.
|
||||
- Maak dit volledig **private**.
|
||||
- Gee **publieke toegang om blobs te lees** (jy moet die naam ken).
|
||||
- **Lys container blobs** en **lees** hulle.
|
||||
- Maak dit heeltemal **privaat**
|
||||
|
||||
<figure><img src="https://lh7-rt.googleusercontent.com/slidesz/AGV_vUfoetUnYBPWQpRrWNnnlbqWpl8Rdoaeg5uBrCVlvcNDlnKwQHjZe8nUb2SfPspBgbu-lCZLmUei-hFi_Jl2eKbaxUtBGTjdUSDmkrcwr90VZkmuMjk9tyh92p75btfyzGiUTa0-=s2048?key=m8TV59TrCFPlkiNnmhYx3aZt" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
#### Ouditering van anonieme blob-blootstelling
|
||||
### Static website (`$web`) blootstelling & leaked secrets
|
||||
|
||||
- **Lokaliseer storage accounts** wat data kan blootstel: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. As `allowBlobPublicAccess` `false` is, kan jy nie kontainers publiek maak nie.
|
||||
- **Inspekteer risikobelate rekeninge** om die vlag en ander swak instellings te bevestig: `az storage account show --name <acc> --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'`.
|
||||
- **Enumereer container-vlak blootstelling** waar die vlag geaktiveer is:
|
||||
- **Static websites** word bedien vanaf die spesiale `$web` container oor 'n streek-spesifieke eindpunt soos `https://<account>.z13.web.core.windows.net/`.
|
||||
- Die `$web` container mag `publicAccess: null` rapporteer via die blob API, maar lêers is steeds bereikbaar deur die static site eindpunt, so om config/IaC artifacts daar te laat val kan leak secrets.
|
||||
- Vinnige oudit-workflow:
|
||||
```bash
|
||||
# Identify storage accounts with static website hosting enabled
|
||||
az storage blob service-properties show --account-name <acc-name> --auth-mode login
|
||||
# Enumerate containers (including $web) and their public flags
|
||||
az storage container list --account-name <acc-name> --auth-mode login
|
||||
# List files served by the static site even when publicAccess is null
|
||||
az storage blob list --container-name '$web' --account-name <acc-name> --auth-mode login
|
||||
# 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
|
||||
```
|
||||
### Oudit van anonieme blob-blootstelling
|
||||
|
||||
- **Lokaliseer storage accounts** wat data kan blootstel: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. As `allowBlobPublicAccess` op `false` is, kan jy nie containers publiek maak nie.
|
||||
- **Kontroleer riskante accounts** om die vlag en ander swak instellings te bevestig: `az storage account show --name <acc> --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'`.
|
||||
- **Enumereer container-vlak blootstelling** waar die vlag aangeskakel is:
|
||||
```bash
|
||||
az storage container list --account-name <acc> \
|
||||
--query '[].{name:name, access:properties.publicAccess}'
|
||||
```
|
||||
- `"Blob"`: anonieme lees toegelaat **slegs wanneer die blob-naam bekend is** (geen lysing nie).
|
||||
- `"Blob"`: anonieme lees toegelaat **slegs wanneer blob-naam bekend is** (geen lys).
|
||||
- `"Container"`: anonieme **lys + lees** van elke blob.
|
||||
- `null`: privaat; verifikasie benodig.
|
||||
- **Bewys toegang** sonder geloofsbriewe:
|
||||
- As `publicAccess` op `Container` gestel is, werk anonieme lysing: `curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list"`.
|
||||
- `null`: privaat; outentisering vereis.
|
||||
- **Bewys toegang** without credentials:
|
||||
- Indien `publicAccess` op `Container` gestel is, werk anonieme lys: `curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list"`.
|
||||
- Vir beide `Blob` en `Container` werk anonieme blob-aflaai wanneer die naam bekend is:
|
||||
```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>"
|
||||
```
|
||||
### Verbind met Storage
|
||||
### Connect to Storage
|
||||
|
||||
As jy enige **storage** vind waarmee jy kan verbind, kan jy die hulpmiddel [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) daarvoor gebruik.
|
||||
If you find any **storage** you can connect to you could use the tool [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) to do so.
|
||||
|
||||
## Toegang tot 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
|
||||
|
||||
Dit is moontlik om Entra ID-principals met **RBAC roles** te gebruik om toegang tot storage accounts te kry en dit is die aanbevole manier.
|
||||
Dit is moontlik om Entra ID principals met **RBAC roles** te gebruik om toegang tot storage accounts te kry, en dit is die aanbevole manier.
|
||||
|
||||
### Access Keys
|
||||
|
||||
Die storage accounts het toegangssleutels wat gebruik kan word om toegang daartoe te kry. Dit verskaf **volledige toegang tot die storage account.**
|
||||
Die storage accounts het access keys wat gebruik kan word om toegang daartoe te kry. Dit verskaf **volle toegang tot die storage account.**
|
||||
|
||||
<figure><img src="../../../images/image (5).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### **Shared Keys & Lite Shared Keys**
|
||||
|
||||
Dit is moontlik om [**generate Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) te skep, gesigneer met die toegangssleutels, om toegang tot sekere bronne via 'n signed URL te magtig.
|
||||
Dit is moontlik om [**generate Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) te genereer wat met die access keys onderteken is om toegang tot sekere resources via 'n signed URL te magtig.
|
||||
|
||||
> [!NOTE]
|
||||
> Let daarop dat die `CanonicalizedResource`-gedeelte die storage services hulpbron (URI) voorstel. En as enige deel in die URL geënkodeer is, moet dit ook binne die `CanonicalizedResource` geënkodeer wees.
|
||||
> Let daarop dat die `CanonicalizedResource`-deel die storage services resource (URI) verteenwoordig. En as enige deel van die URL geënkodeer is, moet dit ook binne die `CanonicalizedResource` geënkodeer wees.
|
||||
|
||||
> [!NOTE]
|
||||
> Hierdie word **standaard deur die `az` cli gebruik** om versoeke te verifieer. Om dit die Entra ID principal credentials te laat gebruik, gee die parameter `--auth-mode login` aan.
|
||||
> Dit word **standaard deur `az` cli gebruik** om versoeke te verifieer. Om dit die Entra ID principal credentials te laat gebruik, gee die parameter `--auth-mode login` aan.
|
||||
|
||||
- Dit is moontlik om 'n **shared key vir blob, queue and file services** te genereer deur die volgende inligting te teken:
|
||||
- Dit is moontlik om 'n **shared key for blob, queue and file services** te genereer deur die volgende inligting te onderteken:
|
||||
```bash
|
||||
StringToSign = VERB + "\n" +
|
||||
Content-Encoding + "\n" +
|
||||
@@ -128,7 +143,7 @@ Range + "\n" +
|
||||
CanonicalizedHeaders +
|
||||
CanonicalizedResource;
|
||||
```
|
||||
- Dit is moontlik om 'n **shared key for table services** te genereer deur die volgende inligting te onderteken:
|
||||
- Dit is moontlik om ’n **shared key for table services** te genereer deur die volgende inligting te onderteken:
|
||||
```bash
|
||||
StringToSign = VERB + "\n" +
|
||||
Content-MD5 + "\n" +
|
||||
@@ -150,7 +165,7 @@ CanonicalizedResource;
|
||||
StringToSign = Date + "\n"
|
||||
CanonicalizedResource
|
||||
```
|
||||
Om die sleutel te gebruik, kan dit in die Authorization-header gedoen word volgens die volgende sintaksis:
|
||||
Dan, om die sleutel te gebruik, kan dit in die Authorization header gedoen word volgens die volgende sintaksis:
|
||||
```bash
|
||||
Authorization="[SharedKey|SharedKeyLite] <AccountName>:<Signature>"
|
||||
#e.g.
|
||||
@@ -164,52 +179,52 @@ Content-Length: 0
|
||||
```
|
||||
### **Shared Access Signature** (SAS)
|
||||
|
||||
Shared Access Signatures (SAS) is veilige, tydelik-beperkte URL's wat **spesifieke toestemmings gee om toegang tot hulpbronne** in 'n Azure Storage-rekening sonder om die rekening se toegangssleutels bloot te stel. Terwyl toegangssleutels volle administratiewe toegang tot alle hulpbronne gee, laat SAS fynkorrelbeheer toe deur permissies (soos read of write) te spesifiseer en 'n vervaldatum te definieer.
|
||||
Shared Access Signatures (SAS) is veilige, tydelik-beperkte URL's wat spesifieke permissies gee om toegang tot hulpbronne in 'n Azure Storage-rekening te verkry sonder om die rekening se access keys bloot te stel. Terwyl access keys volle administratiewe toegang tot alle hulpbronne bied, laat SAS fynkorrelige beheer toe deur permissies (soos read of write) te spesifiseer en 'n vervaldatum te definieer.
|
||||
|
||||
#### SAS Types
|
||||
|
||||
- **User delegation SAS**: Dit word geskep vanaf 'n **Entra ID principal** wat die SAS sal onderteken en die permissies van die gebruiker na die SAS sal delegeer. Dit kan slegs gebruik word met **blob and data lake storage** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). Dit is moontlik om alle gegenereerde user delegated SAS te **revoke**.
|
||||
- Dit is selfs moontlik om 'n delegation SAS te genereer met "meer" permissies as dié wat die gebruiker het. Indien die principal egter nie daardie permissies het nie, sal dit nie werk nie (geen privesc).
|
||||
- **Service SAS**: Dit word onderteken met een van die storage account **access keys**. Dit kan gebruik word om toegang tot spesifieke hulpbronne in 'n enkele storage service te verleen. As die sleutel vernuwe word, sal die SAS ophou werk.
|
||||
- **Account SAS**: Dit word ook onderteken met een van die storage account **access keys**. Dit verleen toegang tot hulpbronne oor 'n storage account se dienste (Blob, Queue, Table, File) en kan service-level operasies insluit.
|
||||
- **User delegation SAS**: Dit word geskep vanaf 'n **Entra ID principal** wat die SAS sal onderteken en die permissies van die gebruiker na die SAS sal delegeer. Dit kan slegs gebruik word met **blob and data lake storage** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). Dit is moontlik om alle gegenereerde user delegated SAS te **herroep**.
|
||||
- Selfs al is dit moontlik om 'n delegation SAS te genereer met "meer" permissies as wat die gebruiker het. As die principal dit egter nie het nie, sal dit nie werk nie (no privesc).
|
||||
- **Service SAS**: Dit word onderteken met een van die storage account **access keys**. Dit kan gebruik word om toegang tot spesifieke hulpbronne binne 'n enkele storage service te verleen. As die sleutel hernu word, sal die SAS ophou werk.
|
||||
- **Account SAS**: Dit word ook onderteken met een van die storage account **access keys**. Dit verleen toegang tot hulpbronne oor verskeie storage account services (Blob, Queue, Table, File) en kan service-level operasies insluit.
|
||||
|
||||
A SAS URL signed by an **access key** looks like this:
|
||||
'n SAS URL wat deur 'n **access key** onderteken is, lyk so:
|
||||
|
||||
- `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`
|
||||
|
||||
A SAS URL signed as a **user delegation** looks like this:
|
||||
'n SAS URL wat as 'n **user delegation** onderteken is, lyk so:
|
||||
|
||||
- `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`
|
||||
|
||||
Let op sommige **http params**:
|
||||
Let wel sommige **http params**:
|
||||
|
||||
- Die **`se`**-param dui die **vervaldatum** van die SAS aan
|
||||
- Die **`sp`**-param dui die **permissions** van die SAS aan
|
||||
- Die **`sig`** is die **signature** wat die SAS valideer
|
||||
- Die **`se`** param dui die **vervaldatum** van die SAS aan
|
||||
- Die **`sp`** param dui die **permissies** van die SAS aan
|
||||
- Die **`sig`** is die **handtekening** wat die SAS valideer
|
||||
|
||||
#### SAS permissions
|
||||
|
||||
Wanneer 'n SAS gegenereer word, moet die permissies wat dit moet verleen aangedui word. Afhangend van die objek waarop die SAS gegenereer word, kan verskillende permissies ingesluit wees. Byvoorbeeld:
|
||||
Wanneer 'n SAS gegenereer word, moet die permissies aangedui word wat dit moet toeken. Afhangend van die objek waarop die SAS gegenereer word, kan verskillende permissies ingesluit wees. Byvoorbeeld:
|
||||
|
||||
- (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
|
||||
|
||||
## SFTP Support for Azure Blob Storage
|
||||
|
||||
Azure Blob Storage ondersteun nou die SSH File Transfer Protocol (SFTP), wat veilige lêeroordrag en bestuur direkte na Blob Storage moontlik maak sonder dat maatgemaakte oplossings of derdeparty-produkte nodig is.
|
||||
Azure Blob Storage ondersteun nou die SSH File Transfer Protocol (SFTP), wat veilige lêeroorplasing en -bestuur direk na Blob Storage moontlik maak sonder dat maatwerkoplossings of derdeparty-produkte nodig is.
|
||||
|
||||
### Key Features
|
||||
|
||||
- Protocol Support: SFTP werk met Blob Storage-rekeninge wat met hierarchical namespace (HNS) gekonfigureer is. Dit organiseer blobs in gidse en subgidse vir makliker navigasie.
|
||||
- Security: SFTP gebruik plaaslike gebruikersidentiteite vir verifikasie en integreer nie met RBAC of ABAC nie. Elke plaaslike gebruiker kan verifieer via:
|
||||
- Protocol Support: SFTP werk met Blob Storage-rekeninge wat met hierarchical namespace (HNS) geconfigureer is. Dit organiseer blobs in gidse en subgidse vir maklike navigasie.
|
||||
- Security: SFTP gebruik plaaslike gebruikersidentiteite vir autentisering en integreer nie met RBAC of ABAC nie. Elke plaaslike gebruiker kan via autentiseer:
|
||||
- Azure-generated passwords
|
||||
- Public-private SSH key pairs
|
||||
- Granular Permissions: Permissions such as Read, Write, Delete, and List kan aan plaaslike gebruikers toegekend word vir tot 100 containers.
|
||||
- Networking Considerations: SFTP-verbindinge gebruik poort 22. Azure ondersteun netwerkkonfigurasies soos firewalls, private endpoints of virtual networks om SFTP-verkeer te beveilig.
|
||||
- Granular Permissions: Permissies soos Read, Write, Delete, en List kan aan plaaslike gebruikers toegeken word vir tot 100 containers.
|
||||
- Networking Considerations: SFTP-verbindinge gebeur deur poort 22. Azure ondersteun netwerkkonfigurasies soos firewalls, private endpoints, of virtual networks om SFTP-verkeer te beveilig.
|
||||
|
||||
### Setup Requirements
|
||||
|
||||
- Hierarchical Namespace: HNS moet geaktiveer wees wanneer die storage account geskep word.
|
||||
- Supported Encryption: Vereis kriptografiese algoritmes goedgekeur deur die Microsoft Security Development Lifecycle (SDL) (bv. rsa-sha2-256, ecdsa-sha2-nistp256).
|
||||
- Supported Encryption: Vereis Microsoft Security Development Lifecycle (SDL)-goedgekeurde kryptografiese algoritmes (bv. rsa-sha2-256, ecdsa-sha2-nistp256).
|
||||
- SFTP Configuration:
|
||||
- Enable SFTP on the storage account.
|
||||
- Create local user identities with appropriate permissions.
|
||||
@@ -217,15 +232,15 @@ Azure Blob Storage ondersteun nou die SSH File Transfer Protocol (SFTP), wat vei
|
||||
|
||||
### Permissions
|
||||
|
||||
| Permission | Symbol | Description |
|
||||
| Permissie | Simbool | Beskrywing |
|
||||
| ---------------------- | ------ | ------------------------------------ |
|
||||
| **Read** | `r` | Lees die inhoud van 'n lêer. |
|
||||
| **Write** | `w` | Oplaai lêers en skep gidse. |
|
||||
| **Read** | `r` | Lees lêerinhoud. |
|
||||
| **Write** | `w` | Laai lêers op en skep gidse. |
|
||||
| **List** | `l` | Lys inhoud van gidse. |
|
||||
| **Delete** | `d` | Verwyder lêers of gidse. |
|
||||
| **Delete** | `d` | Vee lêers of gidse uit. |
|
||||
| **Create** | `c` | Skep lêers of gidse. |
|
||||
| **Modify Ownership** | `o` | Verander die eienaar gebruiker of groep. |
|
||||
| **Modify Permissions** | `p` | Verander ACL's op lêers of gidse. |
|
||||
| **Modify Ownership** | `o` | Verander die eienaar (gebruiker of groep). |
|
||||
| **Modify Permissions** | `p` | Verander ACLs op lêers of gidse. |
|
||||
|
||||
## Enumerasie
|
||||
|
||||
@@ -357,7 +372,7 @@ az storage account local-user list \
|
||||
{{#tab name="Az PowerShell" }}
|
||||
|
||||
<details>
|
||||
<summary>Az PowerShell enumerasie</summary>
|
||||
<summary>Az PowerShell enumeration</summary>
|
||||
```powershell
|
||||
# Get storage accounts
|
||||
Get-AzStorageAccount | fl
|
||||
@@ -420,7 +435,7 @@ New-AzStorageBlobSASToken `
|
||||
{{#endtab }}
|
||||
{{#endtabs }}
|
||||
|
||||
### Lêerdelings
|
||||
### Lêerdelinge
|
||||
|
||||
{{#ref}}
|
||||
az-file-shares.md
|
||||
@@ -449,6 +464,7 @@ 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 – Spare Key (Azure static website SAS leak)](https://0xdf.gitlab.io/holidayhack2025/act1/spare-key)
|
||||
- [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)
|
||||
|
||||
Reference in New Issue
Block a user