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:
@@ -2,54 +2,54 @@
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
## Basic Information
|
||||
## Podstawowe informacje
|
||||
|
||||
Azure Storage Accounts to fundamentalne usługi w Microsoft Azure, które zapewniają skalowalne, bezpieczne i wysoce dostępne cloud **storage for various data types**, including blobs (binary large objects), files, queues, and tables. Służą jako kontenery, które grupują te różne usługi storage razem pod jedną przestrzenią nazw, co ułatwia zarządzanie.
|
||||
Azure Storage Accounts to fundamentalne usługi w Microsoft Azure, które zapewniają skalowalny, bezpieczny i wysoko dostępny cloud **storage dla różnych typów danych**, w tym blobs (binary large objects), files, queues i tables. Działają jako kontenery grupujące te różne usługi storage razem pod jedną przestrzenią nazw, co ułatwia zarządzanie.
|
||||
|
||||
**Main configuration options**:
|
||||
**Główne opcje konfiguracji**:
|
||||
|
||||
- Każde storage account musi mieć **uniq name across all Azure**.
|
||||
- Każde storage account jest wdrażane w **region** lub w Azure extended zone
|
||||
- Każdy storage account musi mieć **unikalną nazwę w całym Azure**.
|
||||
- Każdy storage account jest wdrażany w **regionie** lub w Azure extended zone
|
||||
- Możliwe jest wybranie wersji **premium** storage account dla lepszej wydajności
|
||||
- Możliwe jest wybranie spośród **4 types of redundancy to protect** against rack, drive and datacenter **failures**.
|
||||
- Możliwe jest wybranie spośród **4 typów redundancji, aby chronić** przed awariami rack, drive i datacenter.
|
||||
|
||||
**Security configuration options**:
|
||||
**Opcje konfiguracji bezpieczeństwa**:
|
||||
|
||||
- **Require secure transfer for REST API operations**: Wymaga TLS w każdej komunikacji ze storage
|
||||
- **Allows enabling anonymous access on individual containers**: Jeśli nie, nie będzie możliwe włączenie anonymous access w przyszłości
|
||||
- **Enable storage account key access**: Jeśli nie, dostęp z użyciem Shared Keys będzie zabroniony
|
||||
- **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.
|
||||
- **Enable storage account key access**: Jeśli nie, dostęp przy użyciu Shared Keys będzie zabroniony
|
||||
- **Minimalna wersja TLS**
|
||||
- **Permitted scope for copy operations**: Zezwala z dowolnego storage account, z dowolnego storage account z tego samego Entra tenant lub ze storage account z private endpoints w tej samej virtual network.
|
||||
|
||||
**Blob Storage options**:
|
||||
**Opcje Blob Storage**:
|
||||
|
||||
- **Allow cross-tenant replication**
|
||||
- **Access tier**: Hot (frequently access data), Cool and Cold (rarely accessed data)
|
||||
- **Access tier**: Hot (dane często używane), Cool i Cold (dane rzadko używane)
|
||||
|
||||
**Networking options**:
|
||||
**Opcje sieciowe**:
|
||||
|
||||
- **Network access**:
|
||||
- Allow from all networks
|
||||
- Allow from selected virtual networks and IP addresses
|
||||
- Disable public access and use private access
|
||||
- **Private endpoints**: Pozwala na prywatne połączenie do storage account z virtual network
|
||||
- **Private endpoints**: Umożliwia prywatne połączenie ze storage account z virtual network
|
||||
|
||||
**Data protection options**:
|
||||
**Opcje ochrony danych**:
|
||||
|
||||
- **Point-in-time restore for containers**: Pozwala przywrócić kontenery do wcześniejszego stanu
|
||||
- **Point-in-time restore for containers**: Umożliwia przywrócenie containers do wcześniejszego stanu
|
||||
- Wymaga włączenia versioning, change feed i blob soft delete.
|
||||
- **Enable soft delete for blobs**: Włącza okres retencji w dniach dla usuniętych blobs (nawet nadpisanych)
|
||||
- **Enable soft delete for containers**: Włącza okres retencji w dniach dla usuniętych kontenerów
|
||||
- **Enable soft delete for file shares**: Włącza okres retencji w dniach dla usuniętych file shared
|
||||
- **Enable versioning for blobs**: Utrzymuje poprzednie wersje blobs
|
||||
- **Enable blob change feed**: Przechowuje logi tworzenia, modyfikacji i usuwania zmian blobs
|
||||
- **Enable version-level immutability support**: Pozwala ustawić opartą na czasie politykę retencji na poziomie konta, która będzie miała zastosowanie do wszystkich wersji blobs.
|
||||
- **Enable soft delete for blobs**: Umożliwia okres retencji w dniach dla usuniętych blobs (nawet nadpisanych)
|
||||
- **Enable soft delete for containers**: Umożliwia okres retencji w dniach dla usuniętych containers
|
||||
- **Enable soft delete for file shares**: Umożliwia okres retencji w dniach dla usuniętych file shared
|
||||
- **Enable versioning for blobs**: Utrzymuje wcześniejsze wersje blobs
|
||||
- **Enable blob change feed**: Zachowuje logi tworzenia, modyfikacji i usuwania zmian w blobs
|
||||
- **Enable version-level immutability support**: Umożliwia ustawienie opartej na czasie polityki retencji na poziomie account, która będzie miała zastosowanie do wszystkich blob versions.
|
||||
- Version-level immutability support i point-in-time restore for containers nie mogą być włączone jednocześnie.
|
||||
|
||||
**Encryption configuration options**:
|
||||
**Opcje konfiguracji szyfrowania**:
|
||||
|
||||
- **Encryption type**: Możliwe jest użycie Microsoft-managed keys (MMK) lub Customer-managed keys (CMK)
|
||||
- **Enable infrastructure encryption**: Pozwala podwójnie szyfrować dane "for more security"
|
||||
- **Enable infrastructure encryption**: Umożliwia podwójne szyfrowanie danych „dla większego bezpieczeństwa”
|
||||
|
||||
### Storage endpoints
|
||||
|
||||
@@ -64,18 +64,18 @@ Azure Storage Accounts to fundamentalne usługi w Microsoft Azure, które zapewn
|
||||
|
||||
### Public Exposure
|
||||
|
||||
Jeśli "Allow Blob public access" jest **enabled** (domyślnie wyłączone), podczas tworzenia kontenera możliwe jest:
|
||||
Jeśli "Allow Blob public access" jest **włączone** (domyślnie wyłączone), przy tworzeniu kontenera możliwe jest:
|
||||
|
||||
- Nadanie **public access to read blobs** (musisz znać nazwę).
|
||||
- **List container blobs** i ich **read**.
|
||||
- Nadanie **public access do odczytu blobs** (musisz znać nazwę).
|
||||
- **List container blobs** i ich **odczyt**.
|
||||
- Ustawienie pełnej **private**
|
||||
|
||||
<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
|
||||
|
||||
- **Static websites** są hostowane z specjalnego kontenera `$web` przez endpoint zależny od regionu, taki jak `https://<account>.z13.web.core.windows.net/`.
|
||||
- Kontener `$web` może zwracać `publicAccess: null` przez blob API, ale pliki nadal są dostępne przez endpoint static site, więc wrzucenie tam config/IaC artifacts może leak secrets.
|
||||
- **Static websites** są serwowane z specjalnego kontenera `$web` przez endpoint zależny od regionu, taki jak `https://<account>.z13.web.core.windows.net/`.
|
||||
- Kontener `$web` może zwracać `publicAccess: null` przez blob API, ale pliki nadal są dostępne przez static site endpoint, więc wrzucenie tam artefaktów config/IaC może leak secrets.
|
||||
- Quick audit workflow:
|
||||
```bash
|
||||
# Identify storage accounts with static website hosting enabled
|
||||
@@ -87,21 +87,21 @@ 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
|
||||
```
|
||||
### Audyt anonimowej ekspozycji blob
|
||||
### Auditing anonymous blob exposure
|
||||
|
||||
- **Zlokalizuj storage accounts**, które mogą ujawniać dane: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. Jeśli `allowBlobPublicAccess` ma wartość `false`, nie możesz ustawić kontenerów jako publicznych.
|
||||
- **Zlokalizuj storage accounts**, które mogą ujawniać dane: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. Jeśli `allowBlobPublicAccess` ma wartość `false`, nie możesz ustawić containers jako publiczne.
|
||||
- **Sprawdź ryzykowne accounts**, aby potwierdzić flagę i inne słabe ustawienia: `az storage account show --name <acc> --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'`.
|
||||
- **Wylicz ekspozycję na poziomie kontenera**, gdzie flaga jest włączona:
|
||||
- **Wylicz ekspozycję na poziomie container**, gdzie flaga jest włączona:
|
||||
```bash
|
||||
az storage container list --account-name <acc> \
|
||||
--query '[].{name:name, access:properties.publicAccess}'
|
||||
```
|
||||
- `"Blob"`: anonimowe odczyty dozwolone **tylko gdy nazwa blob jest znana** (brak listowania).
|
||||
- `"Blob"`: anonimowe odczyty dozwolone **tylko wtedy, gdy nazwa blob jest znana** (bez listowania).
|
||||
- `"Container"`: anonimowe **listowanie + odczyt** każdego blob.
|
||||
- `null`: prywatne; wymagane uwierzytelnienie.
|
||||
- **Potwierdź dostęp** bez credentials:
|
||||
- Jeśli `publicAccess` to `Container`, działa anonimowe listowanie: `curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list"`.
|
||||
- Dla `Blob` i `Container`, anonimowe pobieranie blob działa, gdy nazwa jest znana:
|
||||
- `null`: private; wymagane uwierzytelnienie.
|
||||
- **Udowodnij dostęp** bez credentials:
|
||||
- Jeśli `publicAccess` to `Container`, anonimowe listowanie działa: `curl "https://<acc>.blob.core.windows.net/<container>?restype=container&comp=list"`.
|
||||
- Zarówno dla `Blob`, jak i `Container`, anonimowe pobieranie blob działa, gdy nazwa jest znana:
|
||||
```bash
|
||||
az storage blob download -c <container> -n <blob> --account-name <acc> --file /dev/stdout
|
||||
# or via raw HTTP
|
||||
@@ -109,29 +109,29 @@ curl "https://<acc>.blob.core.windows.net/<container>/<blob>"
|
||||
```
|
||||
### Connect to Storage
|
||||
|
||||
Jeśli znajdziesz jakieś **storage**, do którego możesz się połączyć, możesz użyć narzędzia [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) do tego celu.
|
||||
Jeśli znajdziesz jakiekolwiek **storage**, z którym możesz się połączyć, możesz użyć narzędzia [**Microsoft Azure Storage Explorer**](https://azure.microsoft.com/es-es/products/storage/storage-explorer/) do tego.
|
||||
|
||||
## Access to Storage <a href="#about-blob-storage" id="about-blob-storage"></a>
|
||||
|
||||
### RBAC
|
||||
|
||||
Możliwe jest użycie principals Entra ID z **RBAC roles** do uzyskania dostępu do storage accounts i jest to zalecany sposób.
|
||||
Możliwe jest użycie principal Entra ID z **RBAC roles** do dostępu do storage accounts i jest to zalecany sposób.
|
||||
|
||||
### Access Keys
|
||||
|
||||
Storage accounts mają access keys, których można użyć do uzyskania do nich dostępu. Zapewnia to f**ull access to the storage account.**
|
||||
Storage accounts mają access keys, których można użyć do uzyskania dostępu. Zapewnia to f**ull access to the storage account.**
|
||||
|
||||
<figure><img src="../../../images/image (5).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
### **Shared Keys & Lite Shared Keys**
|
||||
|
||||
Możliwe jest [**generate Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) podpisanych przy użyciu access keys, aby autoryzować dostęp do określonych zasobów poprzez signed URL.
|
||||
Możliwe jest [**generate Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) podpisanych za pomocą access keys, aby autoryzować dostęp do określonych zasobów przez signed URL.
|
||||
|
||||
> [!NOTE]
|
||||
> Zwróć uwagę, że część `CanonicalizedResource` reprezentuje zasób storage services (URI). A jeśli jakakolwiek część URL jest zakodowana, powinna być również zakodowana wewnątrz `CanonicalizedResource`.
|
||||
> Pamiętaj, że część `CanonicalizedResource` reprezentuje zasób storage services (URI). Jeśli jakakolwiek część w URL jest zakodowana, to powinna być również zakodowana wewnątrz `CanonicalizedResource`.
|
||||
|
||||
> [!NOTE]
|
||||
> To jest domyślnie **used by default by `az` cli** do uwierzytelniania requestów. Aby używać credentials principals Entra ID, podaj parametr `--auth-mode login`.
|
||||
> To jest **used by default by `az` cli** do uwierzytelniania requestów. Aby używał credentials principal Entra ID, wskaż parametr `--auth-mode login`.
|
||||
|
||||
- Możliwe jest wygenerowanie **shared key for blob, queue and file services** podpisując następujące informacje:
|
||||
```bash
|
||||
@@ -158,7 +158,7 @@ Content-Type + "\n" +
|
||||
Date + "\n" +
|
||||
CanonicalizedResource;
|
||||
```
|
||||
- Możliwe jest wygenerowanie **lite shared key dla usług blob, queue i file** podpisując następujące informacje:
|
||||
- Możliwe jest wygenerowanie **lite shared key for blob, queue and file services** podpisując następujące informacje:
|
||||
```bash
|
||||
StringToSign = VERB + "\n" +
|
||||
Content-MD5 + "\n" +
|
||||
@@ -172,7 +172,7 @@ CanonicalizedResource;
|
||||
StringToSign = Date + "\n"
|
||||
CanonicalizedResource
|
||||
```
|
||||
Następnie, aby użyć klucza, można to zrobić w nagłówku Authorization, stosując składnię:
|
||||
Następnie, aby użyć key, można to zrobić w nagłówku Authorization, stosując składnię:
|
||||
```bash
|
||||
Authorization="[SharedKey|SharedKeyLite] <AccountName>:<Signature>"
|
||||
#e.g.
|
||||
@@ -186,16 +186,16 @@ Content-Length: 0
|
||||
```
|
||||
### **Shared Access Signature** (SAS)
|
||||
|
||||
Shared Access Signatures (SAS) to bezpieczne, ograniczone czasowo adresy URL, które **przyznają określone permissions do dostępu do resource**s w Azure Storage account bez ujawniania account access keys. Podczas gdy access keys zapewniają pełny administracyjny dostęp do wszystkich resources, SAS umożliwia granular control przez określenie permissions (takich jak read lub write) oraz zdefiniowanie czasu wygaśnięcia.
|
||||
Shared Access Signatures (SAS) to bezpieczne, ograniczone czasowo URL-e, które **przyznają określone uprawnienia do access resource**s w Azure Storage account bez ujawniania access keys konta. While access keys zapewniają pełny administracyjny access do wszystkich resources, SAS umożliwia granular control przez określenie permissions (takich jak read lub write) oraz ustawienie expiration time.
|
||||
|
||||
#### SAS Types
|
||||
|
||||
- **User delegation SAS**: Jest tworzony z **Entra ID principal**, który podpisze SAS i deleguje permissions od user do SAS. Może być używany tylko z **blob and data lake storage** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). Możliwe jest **revoke** wszystkich wygenerowanych user delegated SAS.
|
||||
- Nawet jeśli możliwe jest wygenerowanie delegation SAS z „większą” liczbą permissions niż te, które ma user. Jednak jeśli principal ich nie ma, nie zadziała to (no privesc).
|
||||
- **Service SAS**: Jest podpisywany przy użyciu jednego z storage account **access keys**. Może służyć do przyznawania dostępu do konkretnych resources w pojedynczym storage service. Jeśli key zostanie odnowiony, SAS przestanie działać.
|
||||
- **Account SAS**: Jest także podpisywany jednym z storage account **access keys**. Przyznaje dostęp do resources we wszystkich usługach storage account (Blob, Queue, Table, File) i może obejmować operacje na poziomie service.
|
||||
- **User delegation SAS**: Jest tworzony z **Entra ID principal**, które podpisuje SAS i deleguje permissions od user do SAS. Może być używany tylko z **blob and data lake storage** ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). Możliwe jest **revoke** wszystkich wygenerowanych user delegated SAS.
|
||||
- Nawet jeśli możliwe jest wygenerowanie delegation SAS z "większymi" permissions niż te, które ma user. Jednak jeśli principal ich nie ma, nie zadziała to (no privesc).
|
||||
- **Service SAS**: Jest podpisywany przy użyciu jednego z storage account **access keys**. Może służyć do przyznawania access do konkretnych resources w pojedynczej storage service. Jeśli key zostanie odnowiony, SAS przestanie działać.
|
||||
- **Account SAS**: Jest również podpisywany jednym z storage account **access keys**. Przyznaje access do resources we wszystkich usługach storage account (Blob, Queue, Table, File) i może obejmować operacje na poziomie service.
|
||||
|
||||
SAS URL podpisany za pomocą **access key** wygląda tak:
|
||||
SAS URL podpisany przy użyciu **access key** wygląda tak:
|
||||
|
||||
- `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`
|
||||
|
||||
@@ -203,51 +203,51 @@ SAS URL podpisany jako **user delegation** wygląda tak:
|
||||
|
||||
- `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`
|
||||
|
||||
Zwróć uwagę na niektóre **http params**:
|
||||
Note some **http params**:
|
||||
|
||||
- **`se`** param oznacza **expiration date** SAS
|
||||
- **`sp`** param oznacza **permissions** SAS
|
||||
- **`sig`** to **signature** walidujący SAS
|
||||
- Param **`se`** wskazuje **expiration date** SAS
|
||||
- Param **`sp`** wskazuje **permissions** SAS
|
||||
- Param **`sig`** to **signature** walidujący SAS
|
||||
|
||||
#### SAS permissions
|
||||
|
||||
Przy generowaniu SAS trzeba wskazać permissions, które ma przyznawać. W zależności od object, dla którego generowany jest SAS, mogą być uwzględnione różne permissions. Na przykład:
|
||||
Przy generowaniu SAS trzeba wskazać permissions, które ma przyznawać. W zależności od obiektu, dla którego generowany jest SAS, mogą być uwzględnione różne permissions. Na przykład:
|
||||
|
||||
- (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 obsługuje teraz SSH File Transfer Protocol (SFTP), umożliwiając bezpieczny transfer plików i zarządzanie nimi bezpośrednio w Blob Storage bez potrzeby tworzenia własnych rozwiązań lub produktów firm trzecich.
|
||||
Azure Blob Storage teraz wspiera SSH File Transfer Protocol (SFTP), umożliwiając bezpieczny transfer i zarządzanie plikami bezpośrednio do Blob Storage bez potrzeby tworzenia własnych rozwiązań lub używania produktów firm trzecich.
|
||||
|
||||
### Key Features
|
||||
|
||||
- Protocol Support: SFTP działa z Blob Storage account skonfigurowanymi z hierarchical namespace (HNS). Organizuje to blobs w directories i subdirectories, co ułatwia nawigację.
|
||||
- Security: SFTP używa local user identities do authentication i nie integruje się z RBAC ani ABAC. Każdy local user może authenticate przez:
|
||||
- Protocol Support: SFTP działa z Blob Storage accounts skonfigurowanymi z hierarchical namespace (HNS). Organizuje to blob-y w directories i subdirectories dla łatwiejszej nawigacji.
|
||||
- Security: SFTP może używać local user identities, ale wspiera też dostęp oparty o Microsoft Entra ID z Azure RBAC do authorizaton. Oznacza to, że access można przyznać za pomocą zwykłych Blob Storage data-plane roles zamiast tworzyć local SFTP users. Local users mogą się authenticate przez:
|
||||
- Azure-generated passwords
|
||||
- Public-private SSH key pairs
|
||||
- Granular Permissions: Permissions takie jak Read, Write, Delete i List mogą być przypisane do local users dla maksymalnie 100 containers.
|
||||
- Networking Considerations: Połączenia SFTP są realizowane przez port 22. Azure wspiera konfiguracje network, takie jak firewalls, private endpoints lub virtual networks, aby zabezpieczyć ruch SFTP.
|
||||
- Networking Considerations: Połączenia SFTP są realizowane przez port 22. Azure wspiera konfiguracje sieciowe takie jak firewalle, private endpoints lub virtual networks, aby zabezpieczyć ruch SFTP.
|
||||
|
||||
### Setup Requirements
|
||||
|
||||
- Hierarchical Namespace: HNS musi być włączone podczas tworzenia storage account.
|
||||
- Supported Encryption: Wymaga cryptographic algorithms zatwierdzonych przez Microsoft Security Development Lifecycle (SDL) (np. rsa-sha2-256, ecdsa-sha2-nistp256).
|
||||
- Hierarchical Namespace: HNS musi być włączony podczas tworzenia storage account.
|
||||
- Supported Encryption: Wymaga algorytmów kryptograficznych zatwierdzonych przez Microsoft Security Development Lifecycle (SDL) (np. rsa-sha2-256, ecdsa-sha2-nistp256).
|
||||
- SFTP Configuration:
|
||||
- Włącz SFTP na storage account.
|
||||
- Utwórz local user identities z odpowiednimi permissions.
|
||||
- Skonfiguruj home directories dla users, aby określić ich punkt startowy w obrębie container.
|
||||
- Dla access przez local-user utwórz local user identities z odpowiednimi permissions.
|
||||
- Dla local users skonfiguruj home directories, aby określić ich punkt startowy wewnątrz container.
|
||||
|
||||
### Permissions
|
||||
|
||||
| Permission | Symbol | Description |
|
||||
| ---------------------- | ------ | ------------------------------------ |
|
||||
| **Read** | `r` | Read file content. |
|
||||
| **Write** | `w` | Upload files and create directories. |
|
||||
| **List** | `l` | List contents of directories. |
|
||||
| **Delete** | `d` | Delete files or directories. |
|
||||
| **Create** | `c` | Create files or directories. |
|
||||
| **Modify Ownership** | `o` | Change the owning user or group. |
|
||||
| **Modify Permissions** | `p` | Change ACLs on files or directories. |
|
||||
| **Read** | `r` | Odczytaj zawartość pliku. |
|
||||
| **Write** | `w` | Wgrywaj pliki i twórz directories. |
|
||||
| **List** | `l` | Wyświetlaj zawartość directories. |
|
||||
| **Delete** | `d` | Usuwaj pliki lub directories. |
|
||||
| **Create** | `c` | Twórz pliki lub directories. |
|
||||
| **Modify Ownership** | `o` | Zmień właściciela user lub group. |
|
||||
| **Modify Permissions** | `p` | Zmień ACLs na plikach lub directories. |
|
||||
|
||||
## Enumeration
|
||||
|
||||
@@ -448,7 +448,7 @@ New-AzStorageBlobSASToken `
|
||||
az-file-shares.md
|
||||
{{#endref}}
|
||||
|
||||
## Eskalacja uprawnień
|
||||
## Privilege Escalation
|
||||
|
||||
{{#ref}}
|
||||
../az-privilege-escalation/az-storage-privesc.md
|
||||
@@ -471,6 +471,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)
|
||||
- [https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support-entra-id-based-access](https://learn.microsoft.com/en-us/azure/storage/blobs/secure-file-transfer-protocol-support-entra-id-based-access)
|
||||
- [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)
|
||||
|
||||
Reference in New Issue
Block a user