From 728bb56e030f884fd33f76934e48ece10d74f0bd Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 18 Jan 2026 15:04:08 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-stor --- .../azure-security/az-services/az-storage.md | 174 ++++++++++-------- 1 file changed, 95 insertions(+), 79 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-services/az-storage.md b/src/pentesting-cloud/azure-security/az-services/az-storage.md index eefd4d89a..909b77ddd 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-storage.md +++ b/src/pentesting-cloud/azure-security/az-services/az-storage.md @@ -1,85 +1,100 @@ -# Az - Depolama Hesapları & Blobs +# Az - Storage Accounts & Blobs {{#include ../../../banners/hacktricks-training.md}} ## Temel Bilgiler -Azure Storage Accounts, blob'lar (binary large objects), dosyalar, kuyruklar ve tablolar dahil çeşitli veri türleri için ölçeklenebilir, güvenli ve yüksek kullanılabilirlikte bulut **depolama sağlayan** Microsoft Azure servisleridir. Bu farklı depolama servislerini tek bir ad alanı altında gruplayan kapsayıcılar olarak görev yaparlar ve yönetimi kolaylaştırır. +Azure Storage Accounts, bloblar (binary large objects), files, queues ve tables dahil olmak üzere çeşitli veri tipleri için ölçeklenebilir, güvenli ve yüksek erişilebilirlik sağlayan Microsoft Azure'daki temel cloud hizmetleridir. Bu farklı storage servislerini tek bir namespace altında gruplayan container'lar olarak yönetim kolaylığı sağlarlar. **Ana yapılandırma seçenekleri**: -- Her storage account'un **Azure genelinde benzersiz bir isme** sahip olması gerekir. -- Her storage account bir **bölgede** veya bir Azure genişletilmiş zonunda dağıtılır. +- Her storage account'un Azure genelinde benzersiz bir **isim**i olmalıdır. +- Her storage account bir **region** veya bir Azure extended zone içinde dağıtılır. - Daha iyi performans için storage account'un **premium** sürümünü seçmek mümkündür. -- Raf, disk ve veri merkezi **arıza**larına karşı korumak için **4 tür yedeklilik** arasından seçim yapılabilir. +- Rack, drive ve datacenter **arızalarına** karşı koruma için **4 tür redundancy** arasından seçim yapılabilir. **Güvenlik yapılandırma seçenekleri**: -- **REST API işlemleri için güvenli aktarımı zorunlu kılma**: Depolama ile yapılan herhangi bir iletişimde TLS gerektirir. -- **Bireysel container'larda anonim erişimi etkinleştirmeye izin verme**: Eğer kapalıysa, gelecekte anonim erişim etkinleştirilemez. -- **Depolama hesabı anahtar erişimini etkinleştirme**: Eğer kapalıysa, Shared Keys ile erişim yasaklanır. -- **Minimum TLS sürümü** -- **Kopyalama işlemleri için izin verilen kapsam**: Herhangi bir storage account'tan, aynı Entra tenant'ından herhangi bir storage account'tan veya aynı virtual network içinde private endpoint'li storage account'tan izin ver. +- **Require secure transfer for REST API operations**: REST API iletişimlerinde TLS zorunlu kılınmasını sağlar. +- **Allows enabling anonymous access on individual containers**: Bireysel container'larda anonim erişimi etkinleştirmeye izin verir; eğer kapalıysa gelecekte anonim erişim etkinleştirilemez. +- **Enable storage account key access**: Storage account anahtar erişimini etkinleştirir; etkin değilse Shared Keys ile erişim yasaklanır. +- **Minimum TLS version** +- **Permitted scope for copy operations**: Kopyalama işlemleri için izin verilen kapsam — herhangi bir storage account'tan, aynı Entra tenant'ındaki herhangi bir storage account'tan veya aynı virtual network içindeki private endpoints'e sahip storage account'tan. -**Blob Depolama seçenekleri**: +**Blob Storage seçenekleri**: -- **Tenantlar arası replikasyona izin ver** -- **Erişim katmanı**: Hot (sık erişilen veri), Cool ve Cold (nadiren erişilen veri) +- **Allow cross-tenant replication** +- **Access tier**: Hot (sık erişilen veriler), Cool ve Cold (nadiren erişilen veriler) -**Ağ seçenekleri**: +**Networking seçenekleri**: -- **Ağ erişimi**: -- Tüm ağlardan izin ver -- Seçili virtual network'lerden ve IP adreslerinden izin ver -- Genel erişimi devre dışı bırak ve özel erişim kullan -- **Private endpoints**: Sanal ağdan depolama hesabına özel bir bağlantıya izin verir +- **Network access**: +- Tüm ağlara izin ver +- Seçili virtual networks ve IP adreslerinden izin ver +- Public access'i devre dışı bırakıp private access kullan +- **Private endpoints**: Virtual network'ten storage account'a özel bir bağlantı sağlar **Veri koruma seçenekleri**: -- **Konteynerler için point-in-time restore**: Konteynerleri önceki bir duruma geri yüklemeyi sağlar -- Bunun için versioning, change feed ve blob soft delete'in etkinleştirilmesi gerekir. -- **Blob'lar için soft delete'i etkinleştir**: Silinen blob'lar (üzerine yazılanlar dahil) için gün bazında bir saklama süresi sağlar -- **Konteynerler için soft delete'i etkinleştir**: Silinen konteynerler için gün bazında bir saklama süresi sağlar -- **File share'ler için soft delete'i etkinleştir**: Silinen file share'ler için gün bazında bir saklama süresi sağlar -- **Blob'lar için versioning'i etkinleştir**: Blob'larınızın önceki sürümlerini korur -- **Blob change feed'i etkinleştir**: Blob'larda yapılan oluşturma, değişiklik ve silme işlemlerinin loglarını tutar -- **Sürüm düzeyinde değişmezlik (version-level immutability) desteğini etkinleştir**: Tüm blob sürümlerine uygulanacak hesap düzeyinde zaman-temelli bir saklama politikası ayarlamanıza izin verir. -- Sürüm düzeyinde değişmezlik desteği ile konteynerler için point-in-time restore aynı anda etkinleştirilemez. +- **Point-in-time restore for containers**: Container'ları daha önceki bir duruma geri yüklemeyi sağlar. +- Bu özellik versioning, change feed ve blob soft delete'in etkin olmasını gerektirir. +- **Enable soft delete for blobs**: Silinen (hatta üzerine yazılan) blob'lar için gün bazında bir saklama süresi sağlar. +- **Enable soft delete for containers**: Silinen container'lar için gün bazında bir saklama süresi sağlar. +- **Enable soft delete for file shares**: Silinen file share'ler için gün bazında bir saklama süresi sağlar. +- **Enable versioning for blobs**: Blob'ların önceki sürümlerini saklar. +- **Enable blob change feed**: Blob'ların oluşturulma, değiştirilme ve silinme değişikliklerinin loglarını tutar. +- **Enable version-level immutability support**: Hesap düzeyinde zaman tabanlı bir saklama politikası belirlemenize olanak vererek tüm blob sürümlerine uygulanmasını sağlar. +- Version-level immutability support ile point-in-time restore for containers aynı anda etkinleştirilemez. **Şifreleme yapılandırma seçenekleri**: -- **Şifreleme türü**: Microsoft-managed keys (MMK) veya Customer-managed keys (CMK) kullanılabilir -- **Altyapı şifrelemesini etkinleştir**: Verileri "daha fazla güvenlik" için çift şifrelemeye izin verir +- **Encryption type**: Microsoft-managed keys (MMK) veya Customer-managed keys (CMK) kullanılabilir. +- **Enable infrastructure encryption**: Veriyi "daha fazla güvenlik" amacıyla çift şifrelemeyi sağlar. -### Depolama uç noktaları +### Storage endpoints -
Depolama ServisiUçnokta
Blob depolamahttps://.blob.core.windows.net

https://.blob.core.windows.net/?restype=container&comp=list
Data Lake Storagehttps://.dfs.core.windows.net
Azure Fileshttps://.file.core.windows.net
Queue storagehttps://.queue.core.windows.net
Table storagehttps://.table.core.windows.net
+
Depolama ServisiEndpoint
Blob storagehttps://.blob.core.windows.net

https://.blob.core.windows.net/?restype=container&comp=list
Data Lake Storagehttps://.dfs.core.windows.net
Azure Fileshttps://.file.core.windows.net
Queue storagehttps://.queue.core.windows.net
Table storagehttps://.table.core.windows.net
-### Genel Erişim +### Public Exposure -Eğer "Allow Blob public access" **etkinse** (varsayılan olarak devre dışı), bir container oluştururken şunları yapabilirsiniz: +Eğer "Allow Blob public access" **enabled** ise (varsayılan olarak disabled), bir container oluşturulduğunda şunlar mümkün olur: -- Blob'ları **okumak için genel erişim** verebilirsiniz (adı bilinmelidir). -- **Container içerisindeki blob'ları listeleyebilir** ve **okuyabilirsiniz**. -- Tamamen **özel** yapabilirsiniz +- **public access to read blobs** verebilirsiniz (isim bilinmelidir). +- **List container blobs** ve bunları **read** edebilirsiniz. +- Tamamen **private** yapabilirsiniz.
-#### Anonim blob maruziyetini denetleme +### Statik web sitesi (`$web`) erişimi & leaked secrets -- **Veri açığa çıkarabilecek storage account'ları bulun**: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. Eğer `allowBlobPublicAccess` `false` ise container'ları public yapamazsınız. +- Statik web siteleri özel `$web` container'ından bölge-özgü bir endpoint üzerinden servis edilir; örn `https://.z13.web.core.windows.net/`. +- `$web` container'ı blob API üzerinden `publicAccess: null` raporlayabilir, ancak dosyalar statik site endpoint'i üzerinden yine erişilebilir olduğundan config/IaC artefaktlarını oraya bırakmak secrets'in leak olmasına neden olabilir. +- Hızlı denetim iş akışı: +```bash +# Identify storage accounts with static website hosting enabled +az storage blob service-properties show --account-name --auth-mode login +# Enumerate containers (including $web) and their public flags +az storage container list --account-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 --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 --auth-mode login +``` +### Anonim blob maruziyetini denetleme + +- **Depolama hesaplarını bulun** verileri açığa çıkarabilecek: `az storage account list | jq -r '.[] | select(.properties.allowBlobPublicAccess==true) | .name'`. Eğer `allowBlobPublicAccess` `false` ise konteynerleri genel (public) yapamazsınız. - **Riskli hesapları inceleyin** bayrağı ve diğer zayıf ayarları doğrulamak için: `az storage account show --name --query '{allow:properties.allowBlobPublicAccess, minTls:properties.minimumTlsVersion}'`. -- **Bayrağın etkin olduğu container düzeyindeki açıklığı listeleyin:** +- **Konteyner düzeyindeki maruziyeti listeleyin** bayrağın etkin olduğu yerlerde: ```bash az storage container list --account-name \ --query '[].{name:name, access:properties.publicAccess}' ``` -- `"Blob"`: anonim okuma **yalnızca blob adı bilindiğinde** izinlidir (listeleme yok). -- `"Container"`: anonim **listeleme + okuma** ile tüm bloblara erişim. -- `null`: özel; kimlik doğrulama gereklidir. +- `"Blob"`: anonim okuma izni **sadece blob adı biliniyorsa** (listeleme yok). +- `"Container"`: anonim **listeleme + okuma** her blob için. +- `null`: özel; kimlik doğrulama gerekli. - **Kimlik bilgisi olmadan erişimi kanıtlayın**: - Eğer `publicAccess` `Container` ise, anonim listeleme çalışır: `curl "https://.blob.core.windows.net/?restype=container&comp=list"`. -- Hem `Blob` hem de `Container` için, blob adı bilindiğinde anonim blob indirme çalışır: +- Hem `Blob` hem de `Container` için, anonim blob indirme adı bilindiğinde çalışır: ```bash az storage blob download -c -n --account-name --file /dev/stdout # or via raw HTTP @@ -93,25 +108,25 @@ Bağlanabileceğiniz herhangi bir **storage** bulursanız, bunu yapmak için [** ### RBAC -Entra ID principals'larını **RBAC roles** kullanarak storage hesaplarına erişmek için kullanmak mümkündür ve bu önerilen yöntemdir. +Storage hesaplarına erişmek için Entra ID principal'larını **RBAC roles** ile kullanmak mümkündür ve bu önerilen yoldur. ### Access Keys -Storage hesaplarının erişim için kullanılabilecek access keys'leri vardır. Bu, storage hesabına **tam erişim** sağlar. +Storage hesaplarının erişimde kullanılabilecek access keys'i vardır. Bu, storage hesabına **tam erişim sağlar.**
### **Shared Keys & Lite Shared Keys** -Erişim anahtarlarıyla imzalanmış [**Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) oluşturarak signed URL aracılığıyla belirli kaynaklara erişimi yetkilendirmek mümkündür. +[**generate Shared Keys**](https://learn.microsoft.com/en-us/rest/api/storageservices/authorize-with-shared-key) ile access keys ile imzalanmış URL aracılığıyla belirli kaynaklara yetki vermek mümkündür. > [!NOTE] -> Note that the `CanonicalizedResource` part represents the storage services resource (URI). And if any part in the URL is encoded, it should also be encoded inside the `CanonicalizedResource`. +> `CanonicalizedResource` kısmının storage services resource (URI) öğesini temsil ettiğini unutmayın. Ve URL'deki herhangi bir parça encode edilmişse, `CanonicalizedResource` içinde de encode edilmiş olmalıdır. > [!NOTE] -> Bu, istekleri kimlik doğrulamak için varsayılan olarak `az` cli tarafından kullanılır. Entra ID principal credentials kullanmasını sağlamak için parametre `--auth-mode login` belirtin. +> Bu, istekleri kimlik doğrulamak için varsayılan olarak `az` cli tarafından kullanılır. Entra ID principal kimlik bilgilerini kullanması için parametre `--auth-mode login` belirtin. -- Aşağıdaki bilgileri imzalayarak blob, queue ve file servisleri için bir **shared key** oluşturmak mümkündür: +- Aşağıdaki bilgileri imzalayarak **shared key for blob, queue and file services** oluşturmak mümkündür: ```bash StringToSign = VERB + "\n" + Content-Encoding + "\n" + @@ -128,7 +143,7 @@ Range + "\n" + CanonicalizedHeaders + CanonicalizedResource; ``` -- Aşağıdaki bilgileri imzalayarak **tablo hizmetleri için paylaşılan anahtar** oluşturmak mümkündür: +- Aşağıdaki bilgileri imzalayarak **tablo servisleri için paylaşılan bir anahtar** oluşturmak mümkündür: ```bash StringToSign = VERB + "\n" + Content-MD5 + "\n" + @@ -136,7 +151,7 @@ Content-Type + "\n" + Date + "\n" + CanonicalizedResource; ``` -- Aşağıdaki bilgileri imzalayarak **blob, queue ve file servisleri için lite paylaşılan anahtar** oluşturmak mümkündür: +- Aşağıdaki bilgileri imzalayarak **lite shared key for blob, queue and file services** oluşturmak mümkündür: ```bash StringToSign = VERB + "\n" + Content-MD5 + "\n" + @@ -150,7 +165,7 @@ CanonicalizedResource; StringToSign = Date + "\n" CanonicalizedResource ``` -Anahtarı kullanmak için Authorization header'ında şu sözdizimi kullanılır: +Ardından, key'i kullanmak için Authorization header'ında aşağıdaki sözdizimi kullanılır: ```bash Authorization="[SharedKey|SharedKeyLite] :" #e.g. @@ -162,26 +177,26 @@ x-ms-date: Fri, 26 Jun 2015 23:39:12 GMT Authorization: SharedKey myaccount:ctzMq410TV3wS7upTBcunJTDLEJwMAZuFPfr0mrrA08= Content-Length: 0 ``` -### **Paylaşılan Erişim İmzası (SAS)** +### **Paylaşılan Erişim İmzası** (SAS) -Shared Access Signatures (SAS), hesap erişim anahtarlarını açığa çıkarmadan bir Azure Storage hesabındaki kaynaklara erişim için belirli izinler veren, süre sınırlı ve güvenli URL'lerdir. Erişim anahtarları tüm kaynaklara tam yönetimsel erişim sağlarken, SAS izinleri (ör. read veya write) ve bir sona erme zamanı belirleyerek ayrıntılı kontrol sağlar. +Shared Access Signatures (SAS), bir Azure Storage hesabındaki kaynaklara erişim için hesap erişim anahtarlarını açığa çıkarmadan belirli izinler veren, güvenli ve zaman sınırlı URL'lerdir. Erişim anahtarları tüm kaynaklara tam yönetici erişimi sağlarken, SAS okuma veya yazma gibi izinleri belirleyerek ve bir sona erme zamanı tanımlayarak ayrıntılı kontrol sağlar. #### SAS Türleri -- **User delegation SAS**: Bu, SAS'ı imzalayacak ve kullanıcıdan SAS'a izinleri devredecek bir **Entra ID principal** tarafından oluşturulur. Sadece **blob ve data lake storage** ile kullanılabilir ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). Oluşturulmuş tüm user delegated SAS'ların **revoke** edilmesi mümkündür. -- Bir delegation SAS'ı kullanıcının sahip olduklarından "daha fazla" izinle oluşturmak mümkün olsa bile, principal bu izinlere sahip değilse çalışmaz (no privesc). -- **Service SAS**: Bu, storage account **access keys**'lerden biri kullanılarak imzalanır. Tek bir storage service içindeki belirli kaynaklara erişim vermek için kullanılabilir. Eğer key yenilenirse, SAS çalışmayı durdurur. -- **Account SAS**: Bu da storage account **access keys**'lerden biri ile imzalanır. Bir storage account servisleri (Blob, Queue, Table, File) genelinde kaynaklara erişim verir ve servis seviyesinde operasyonları içerebilir. +- **User delegation SAS**: Bu, SAS'ı imzalayacak ve kullanıcıdan SAS'a izinleri devredecek bir **Entra ID principal** tarafından oluşturulur. Yalnızca **blob ve data lake storage** ile kullanılabilir ([docs](https://learn.microsoft.com/en-us/rest/api/storageservices/create-user-delegation-sas)). Oluşturulan user delegated SAS'ların tamamını **iptal etmek (revoke)** mümkündür. +- Bir delegation SAS, kullanıcının sahip olduğundan "daha fazla" izinle oluşturulabilir. Ancak principal bu izinlere sahip değilse çalışmaz (privesc olmaz). +- **Service SAS**: Bu, storage account **access keys**'lerden biri kullanılarak imzalanır. Tek bir storage servisi içindeki belirli kaynaklara erişim vermek için kullanılabilir. Anahtar yenilenirse, SAS çalışmaz. +- **Account SAS**: Bu da storage account **access keys**'lerden biriyle imzalanır. Bir storage account hizmetleri genelinde (Blob, Queue, Table, File) kaynaklara erişim verir ve servis düzeyinde işlemleri içerebilir. -Bir access key ile imzalanmış SAS URL örneği: +Bir access key ile imzalanmış SAS URL'si şöyle görünür: - `https://.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` -Bir user delegation olarak imzalanmış SAS URL örneği: +Bir user delegation olarak imzalanmış SAS URL'si şöyle görünür: - `https://.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` -Bazı http parametrelerine dikkat: +Bazı **http parametreleri**: - **`se`** parametresi SAS'ın **sona erme tarihini** gösterir - **`sp`** parametresi SAS'ın **izinlerini** gösterir @@ -189,40 +204,40 @@ Bazı http parametrelerine dikkat: #### SAS izinleri -SAS oluşturulurken hangi izinleri vereceği belirtilmelidir. SAS'ın oluşturulduğu nesneye bağlı olarak farklı izinler dahil edilebilir. Örneğin: +SAS oluştururken hangi izinleri vereceği belirtilmelidir. SAS'ın oluşturulduğu nesneye bağlı olarak farklı izinler dahil edilebilir. Örneğin: - (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 ## Azure Blob Storage için SFTP Desteği -Azure Blob Storage artık SSH File Transfer Protocol (SFTP) desteği sunar; bu sayede özel çözümler veya üçüncü taraf ürünlere ihtiyaç duymadan doğrudan Blob Storage'a güvenli dosya transferi ve yönetim yapılabilir. +Azure Blob Storage artık SSH File Transfer Protocol (SFTP) desteği sunar; bu sayede özel çözümler veya üçüncü taraf ürünler gerektirmeden doğrudan Blob Storage'a güvenli dosya transferi ve yönetim yapılabilir. -### Önemli Özellikler +### Temel Özellikler -- Protocol Support: SFTP, hierarchical namespace (HNS) ile yapılandırılmış Blob Storage hesaplarıyla çalışır. Bu, blob'ları klasör ve alt klasörlere düzenleyerek gezinmeyi kolaylaştırır. -- Security: SFTP kimlik doğrulama için local user identities kullanır ve RBAC veya ABAC ile entegre olmaz. Her local user şu yöntemlerle doğrulanabilir: - - Azure-generated passwords - - Public-private SSH key pairs -- Granular Permissions: Read, Write, Delete ve List gibi izinler en fazla 100 container için local user'lara atanabilir. -- Networking Considerations: SFTP bağlantıları port 22 üzerinden yapılır. Azure, SFTP trafiğini güvence altına almak için firewalls, private endpoints veya virtual networks gibi ağ yapılandırmalarını destekler. +- Protokol Desteği: SFTP, hierarchical namespace (HNS) ile yapılandırılmış Blob Storage hesaplarıyla çalışır. Bu, blob'ları daha kolay gezinme için dizinlere ve alt dizinlere organize eder. +- Güvenlik: SFTP, kimlik doğrulama için local user kimliklerini kullanır ve RBAC veya ABAC ile entegre olmaz. Her local user şu yollarla kimlik doğrulayabilir: +- Azure-generated passwords +- Public-private SSH key pairs +- Ayrıntılı İzinler: Read, Write, Delete ve List gibi izinler local user'lara en fazla 100 container için atanabilir. +- Ağ Düşünceleri: SFTP bağlantıları 22 numaralı port üzerinden yapılır. Azure, SFTP trafiğini güvence altına almak için firewall'lar, private endpoints veya virtual networks gibi ağ yapılandırmalarını destekler. ### Kurulum Gereksinimleri -- Hierarchical Namespace: Storage account oluşturulurken HNS etkinleştirilmelidir. -- Supported Encryption: Microsoft Security Development Lifecycle (SDL) tarafından onaylanmış kriptografik algoritmalar gereklidir (ör. 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. +- Hierarchical Namespace: Storage hesabı oluşturulurken HNS etkin olmalıdır. +- Desteklenen Şifreleme: Microsoft Security Development Lifecycle (SDL) tarafından onaylanmış kriptografik algoritmaları (örn. rsa-sha2-256, ecdsa-sha2-nistp256) gerektirir. +- SFTP Konfigürasyonu: +- Storage hesabında SFTP'yi etkinleştirin. +- Uygun izinlere sahip local user kimlikleri oluşturun. +- Kullanıcıların container içindeki başlangıç konumlarını tanımlamak için home directory'leri yapılandırın. ### İzinler -| İzin | Sembol | Açıklama | +| İzin | Sembol | Açıklama | | ---------------------- | ------ | ------------------------------------ | | **Read** | `r` | Dosya içeriğini okuma. | | **Write** | `w` | Dosya yükleme ve dizin oluşturma. | | **List** | `l` | Dizin içeriklerini listeleme. | -| **Delete** | `d` | Dosya veya dizinleri silme. | +| **Delete** | `d` | Dosya veya dizin silme. | | **Create** | `c` | Dosya veya dizin oluşturma. | | **Modify Ownership** | `o` | Sahip kullanıcı veya grubu değiştirme. | | **Modify Permissions** | `p` | Dosya veya dizinlerde ACL'leri değiştirme. | @@ -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)