diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 54f1ce76a..5939f1183 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -417,15 +417,18 @@ - [Az - Container Registry](pentesting-cloud/azure-security/az-services/az-container-registry.md) - [Az - Container Instances, Apps & Jobs](pentesting-cloud/azure-security/az-services/az-container-instances-apps-jobs.md) - [Az - CosmosDB](pentesting-cloud/azure-security/az-services/az-cosmosDB.md) - - [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md) + - [Az - Defender](pentesting-cloud/azure-security/az-services/az-defender.md) - [Az - File Shares](pentesting-cloud/azure-security/az-services/az-file-shares.md) - [Az - Function Apps](pentesting-cloud/azure-security/az-services/az-function-apps.md) + - [Az - Intune](pentesting-cloud/azure-security/az-services/intune.md) - [Az - Key Vault](pentesting-cloud/azure-security/az-services/az-keyvault.md) - [Az - Logic Apps](pentesting-cloud/azure-security/az-services/az-logic-apps.md) - [Az - Management Groups, Subscriptions & Resource Groups](pentesting-cloud/azure-security/az-services/az-management-groups-subscriptions-and-resource-groups.md) + - [Az - Monitoring](pentesting-cloud/azure-security/az-services/az-monitoring.md) - [Az - MySQL](pentesting-cloud/azure-security/az-services/az-mysql.md) - [Az - PostgreSQL](pentesting-cloud/azure-security/az-services/az-postgresql.md) - [Az - Queue Storage](pentesting-cloud/azure-security/az-services/az-queue.md) + - [Az - Sentinel](pentesting-cloud/azure-security/az-services/az-sentinel.md) - [Az - Service Bus](pentesting-cloud/azure-security/az-services/az-servicebus.md) - [Az - SQL](pentesting-cloud/azure-security/az-services/az-sql.md) - [Az - Static Web Applications](pentesting-cloud/azure-security/az-services/az-static-web-apps.md) diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md index b3c24cd1c..301f2e6a4 100644 --- a/src/pentesting-cloud/azure-security/README.md +++ b/src/pentesting-cloud/azure-security/README.md @@ -12,15 +12,15 @@ az-basic-information/ ## Azure Pentester/Kırmızı Takım Metodolojisi -AZURE ortamını denetlemek için bilmek çok önemlidir: hangi **hizmetlerin kullanıldığı**, neyin **açık olduğu**, kimin neye **erişimi olduğu** ve iç Azure hizmetlerinin ve **dış hizmetlerin** nasıl bağlandığı. +AZURE ortamını denetlemek için bilmek çok önemlidir: hangi **hizmetlerin kullanıldığı**, neyin **açık olduğu**, kimin neye **erişimi** olduğu ve iç Azure hizmetlerinin ve **dış hizmetlerin** nasıl bağlandığı. -Kırmızı takım bakış açısıyla, bir Azure ortamını ele geçirmenin **ilk adımı** bazı **ayak izleri** elde etmektir. +Kırmızı takım bakış açısıyla, bir Azure ortamını tehlikeye atmanın **ilk adımı** bazı **ayak izleri** elde etmektir. ### Dış Enum & İlk Erişim İlk adım, elbette, saldırdığınız kiracı hakkında bilgi toplamak ve bir ayak izi elde etmeye çalışmaktır. -Alan adı temelinde, **şirketin Azure kullanıp kullanmadığını**, **kiracı ID'sini**, aynı kiracıda (varsa) diğer **geçerli alan adlarını** ve SSO'nun etkin olup olmadığını, e-posta yapılandırmalarını, geçerli kullanıcı e-postalarını gibi **ilgili bilgileri** öğrenmek mümkündür. +Alan adı temelinde, **şirketin Azure kullanıp kullanmadığını**, **kiracı ID'sini** öğrenmek, aynı kiracıda (varsa) diğer **geçerli alan adlarını** bulmak ve SSO'nun etkin olup olmadığını, e-posta yapılandırmalarını, geçerli kullanıcı e-postalarını gibi **ilgili bilgileri** elde etmek mümkündür. **Dış enum** gerçekleştirmek için aşağıdaki sayfayı kontrol edin: @@ -29,8 +29,8 @@ az-unauthenticated-enum-and-initial-entry/ {{#endref}} Bu bilgilerle, bir ayak izi elde etmeye çalışmanın en yaygın yolları şunlardır: -- **OSINT**: **leak**'leri Github veya başka bir açık kaynak platformda kontrol edin; bu platformlar **kimlik bilgileri** veya ilginç bilgiler içerebilir. -- **Şifre** tekrar kullanımı, sızıntılar veya [şifre püskürtme](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md) +- **OSINT**: **leak**'leri Github veya başka bir açık kaynak platformda kontrol edin, bu platformlar **kimlik bilgileri** veya ilginç bilgiler içerebilir. +- **Şifre** yeniden kullanımı, sızıntılar veya [şifre püskürtme](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md) - Bir çalışandan kimlik bilgileri satın almak - [**Yaygın Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (kimlik bilgileri veya Oauth Uygulaması) - [Cihaz Kodu Kimlik Doğrulama Phishing](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md) @@ -39,21 +39,21 @@ Bu bilgilerle, bir ayak izi elde etmeye çalışmanın en yaygın yolları şunl - [**Sunucu Tarafı İstek Sahteciliği**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) ile meta veri uç noktasına erişim - [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/) gibi **alt alan ele geçirmeleri** - **Diğer azure hizmetleri yanlış yapılandırmaları** -- Bazı geliştirici dizüstü bilgisayarları ele geçirilmişse ([WinPEAS ve LinPEAS](https://github.com/peass-ng/PEASS-ng) bu bilgiyi bulabilir): -- **`/.Azure`** içinde +- Bazı geliştirici dizüstü bilgisayarları tehlikeye girerse ([WinPEAS ve LinPEAS](https://github.com/peass-ng/PEASS-ng) bu bilgiyi bulabilir): +- İçinde **`/.Azure`** - **`azureProfile.json`** geçmişte oturum açmış kullanıcılar hakkında bilgi içerir - **`clouds.config`** abonelikler hakkında bilgi içerir -- **`service_principal_entries.json`** uygulama kimlik bilgilerini (kiracı id'si, istemciler ve gizli anahtar) içerir. Sadece Linux & macOS'ta -- **`msal_token_cache.json`** erişim jetonları ve yenileme jetonlarını içerir. Sadece Linux & macOS'ta +- **`service_principal_entries.json`** uygulama kimlik bilgilerini (kiracı id, istemciler ve gizli anahtar) içerir. Sadece Linux ve macOS'ta +- **`msal_token_cache.json`** erişim jetonları ve yenileme jetonları içerir. Sadece Linux ve macOS'ta - **`service_principal_entries.bin`** ve msal_token_cache.bin Windows'ta kullanılır ve DPAPI ile şifrelenmiştir - **`msal_http_cache.bin`** HTTP isteği önbelleğidir - Yükleyin: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)` - **`AzureRmContext.json`** Az PowerShell kullanarak önceki oturum açma bilgilerini içerir (ancak kimlik bilgileri yoktur) -- **`C:\Users\\AppData\Local\Microsoft\IdentityCache\*`** içinde, kullanıcıların DPAPI ile şifrelenmiş **erişim jetonları**, ID jetonları ve hesap bilgileri içeren birkaç `.bin` dosyası bulunmaktadır. -- **`C:\Users\\AppData\Local\Microsoft\TokenBroken\Cache\`** içindeki `.tbres` dosyalarında daha fazla **erişim jetonu** bulmak mümkündür; bu dosyalar DPAPI ile şifrelenmiş erişim jetonları içeren bir base64 içerir. -- Linux ve macOS'ta, Az PowerShell'den (kullanıldıysa) `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` komutunu çalıştırarak **erişim jetonları, yenileme jetonları ve id jetonları** alabilirsiniz. +- İçinde **`C:\Users\\AppData\Local\Microsoft\IdentityCache\*`** birçok `.bin` dosyası bulunur ve bunlar **erişim jetonları**, ID jetonları ve kullanıcıların DPAPI ile şifrelenmiş hesap bilgilerini içerir. +- **`C:\Users\\AppData\Local\Microsoft\TokenBroken\Cache\`** içindeki `.tbres` dosyalarında daha fazla **erişim jetonu** bulmak mümkündür; bunlar DPAPI ile şifrelenmiş erişim jetonlarını içerir. +- Linux ve macOS'ta, Az PowerShell (kullanıldıysa) ile `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` çalıştırarak **erişim jetonları, yenileme jetonları ve id jetonları** alabilirsiniz. - Windows'ta bu sadece id jetonları üretir. -- Linux ve macOS'ta Az PowerShell'in kullanılıp kullanılmadığını kontrol etmek için `$HOME/.local/share/.IdentityService/` dizininin var olup olmadığını kontrol edebilirsiniz (içindeki dosyalar boş ve işe yaramaz olsa da). +- Linux ve macOS'ta Az PowerShell'in kullanılıp kullanılmadığını kontrol etmek için `$HOME/.local/share/.IdentityService/` var mı diye bakabilirsiniz (içindeki dosyalar boş ve işe yaramaz olsa da) Aşağıdaki sayfada bir ayak izi elde etmeye yol açabilecek **diğer Azure Hizmetleri yanlış yapılandırmalarını** bulun: @@ -66,7 +66,7 @@ az-unauthenticated-enum-and-initial-entry/ ### Azure & Entra ID Araçları -Aşağıdaki araçlar, hem Entra ID kiracılarını hem de Azure ortamlarını yavaşça (tespit edilmemek için) veya otomatik olarak (zaman kazanmak için) listelemek için çok yararlı olacaktır: +Aşağıdaki araçlar, hem Entra ID kiracılarını hem de Azure ortamlarını yavaşça (tespit edilmemek için) veya otomatik olarak (zaman kazanmak için) listelemek için çok faydalı olacaktır: {{#ref}} az-enumeration-tools.md @@ -76,12 +76,12 @@ az-enumeration-tools.md
-Geçerli kimlik bilgileriniz olsa bile giriş yapamadığınız durumlarda, mevcut olabilecek bazı yaygın korumalar şunlardır: +Geçerli kimlik bilgilerine sahip olduğunuz ancak giriş yapamadığınız durumlarda, mevcut olabilecek bazı yaygın korumalar şunlardır: -- **IP beyaz listeleme** -- Geçerli bir IP'yi ele geçirmeniz gerekir -- **Coğrafi kısıtlamalar** -- Kullanıcının nerede yaşadığını veya şirketin ofislerinin nerede olduğunu bulup aynı şehirden (veya en azından aynı ülkeden) bir IP alın +- **IP beyaz listeleme** -- Geçerli bir IP'yi tehlikeye atmanız gerekir +- **Coğrafi kısıtlamalar** -- Kullanıcının nerede yaşadığını veya şirketin ofislerinin nerede olduğunu bulmak ve aynı şehirden (veya en azından aynı ülkeden) bir IP almak - **Tarayıcı** -- Belki de yalnızca belirli bir işletim sisteminden (Windows, Linux, Mac, Android, iOS) bir tarayıcıya izin verilmektedir. Kurbanın/şirketin hangi işletim sistemini kullandığını öğrenin. -- Ayrıca, genellikle daha az sınırlı olan ve girişleri daha az incelenen **Hizmet Prensibi kimlik bilgilerini** ele geçirmeyi de deneyebilirsiniz. +- Ayrıca, genellikle daha az sınırlı olan ve girişi daha az incelenen **Hizmet Prensibi kimlik bilgilerini** tehlikeye atmayı deneyebilirsiniz. Bunu aştıktan sonra, başlangıç ayarlarınıza geri dönebilir ve hala erişiminiz olabilir. @@ -94,7 +94,7 @@ az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-by ### Whoami > [!CAUTION] -> [**Az - Entra ID**](az-services/az-azuread.md) bölümünde az cli, AzureAD ve Az PowerShell'in **nasıl kurulacağını** öğrenin. +> [**Az - Entra ID**](az-services/az-azuread.md) bölümünde az cli, AzureAD ve Az PowerShell'in **nasıl yükleneceğini** öğrenin. Bilmeniz gereken ilk şey **kim olduğunuzdur** (hangi ortamda olduğunuz): @@ -150,7 +150,7 @@ Burada bir kılavuz bulabilirsiniz: az-services/az-azuread.md {{#endref}} -**Post-Exploitation araçlarını** kontrol edin, Entra ID'de ayrıcalıkları artırmak için **AzureHound** gibi araçlar bulabilirsiniz: +Entra ID'de ayrıcalıkları artırmak için **AzureHound** gibi araçlar bulmak için **Post-Exploitation araçlarına** bakın: {{#ref}} az-enumeration-tools.md#automated-post-exploitation-tools @@ -161,48 +161,68 @@ az-enumeration-tools.md#automated-post-exploitation-tools Kendinizi tanıdıktan sonra, **erişim sağladığınız Azure hizmetlerini listelemeye** başlayabilirsiniz. -**Kaynaklar üzerindeki izinlerinizi** öğrenmeye başlamalısınız. Bunun için: +Kaynaklar üzerindeki **izinlerinizi** bulmaya başlamalısınız. Bunun için: 1. **Erişim sağladığınız kaynağı bulun**: -Az PowerShell komutu **`Get-AzResource`**, **mevcut kullanıcınızın görünürlüğe sahip olduğu kaynakları bilmenizi sağlar**. +> [!TIP] +> Bu, herhangi bir özel izin gerektirmez. -Ayrıca, aynı bilgiyi **web konsolunda** [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) adresine giderek veya "Tüm kaynaklar" araması yaparak ya da şu komutu çalıştırarak alabilirsiniz: +Az PowerShell komutu **`Get-AzResource`**, **mevcut kullanıcınızın görünürlüğü olan kaynakları bilmenizi sağlar**. + +Ayrıca, aynı bilgiyi **web konsolunda** [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) adresine giderek veya "Tüm kaynaklar" araması yaparak veya şu komutu çalıştırarak alabilirsiniz: ```bash az rest --method GET --url "https://management.azure.com/subscriptions//resources?api-version=2021-04-01" ``` -2. **Erişim sağladığınız kaynaklar üzerindeki izinlerinizi bulun ve size atanan rolleri belirleyin**: +2. **Görüntüleyebileceğiniz kaynaklar üzerindeki izinlerinizi bulun**: -Bu işlemi gerçekleştirmek için **`Microsoft.Authorization/roleAssignments/read`** iznine ihtiyacınız olduğunu unutmayın. +> [!TIP] +> Bu, herhangi bir özel izin gerektirmez. -Ayrıca, yeterli izinlerle, **`Get-AzRoleAssignment`** rolü, abonelikteki **tüm rolleri** listelemek veya belirli bir kaynak üzerindeki izni belirtmek için kullanılabilir: +API ile **`https://management.azure.com/{resource_id}/providers/Microsoft.Authorization/permissions?api-version=2022-04-01`** konuşarak, belirtilen kaynak üzerindeki izinlerinizi alabilirsiniz **`resource_id`**. + +Bu nedenle, **erişim sağladığınız her bir kaynağı kontrol ederek**, üzerindeki izinlerinizi alabilirsiniz. + +> [!WARNING] +> Bu sayım işlemini **[Find_My_Az_Management_Permissions](https://github.com/carlospolop/Find_My_Az_Management_Permissions)** aracıyla otomatikleştirebilirsiniz. + + +
+İzinleri **`Microsoft.Authorization/roleAssignments/read`** ile sayın + +> [!TIP] +> Bu işlemi gerçekleştirmek için **`Microsoft.Authorization/roleAssignments/read`** iznine ihtiyacınız olduğunu unutmayın. + +- Yeterli izinlerle, **`Get-AzRoleAssignment`** rolü, abonelikteki **tüm rolleri** veya belirli bir kaynak üzerindeki izinleri saymak için kullanılabilir. ```bash Get-AzRoleAssignment -Scope /subscriptions//resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4 ``` Bu bilgiyi çalıştırarak almak da mümkündür: ```bash -az rest --method GET --uri "https://management.azure.com//providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value" +az rest --method GET --uri "https://management.azure.com//providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value" ``` gibi: ```bash -az rest --method GET --uri "https://management.azure.com//subscriptions//resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value" +az rest --method GET --uri "https://management.azure.com//subscriptions//resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value" ``` -Başka bir seçenek, azure'da size bağlı olan rolleri almak için: +- Diğer bir seçenek, **azure'da size atanmış rolleri almak**. Bu da **`Microsoft.Authorization/roleAssignments/read`** iznini gerektirir: ```bash az role assignment list --assignee "" --all --output table ``` -Aşağıdakileri çalıştırarak (Eğer sonuçlar boşsa, bunun nedeni onları almak için izninizin olmaması olabilir): +Aşağıdakileri çalıştırarak (Eğer sonuçlar boşsa, bu onların alınması için izninizin olmamasından kaynaklanıyor olabilir): ```bash az rest --method GET --uri 'https://management.azure.com/subscriptions//providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '' ``` -3. **Sizeye bağlı rollerin ayrıntılı izinlerini bulun**: +- **Size size izinleri bul**: -Ayrıntılı izinleri almak için **`(Get-AzRoleDefinition -Id "").Actions`** komutunu çalıştırabilirsiniz. +Ardından, granular izinleri almak için **`(Get-AzRoleDefinition -Id "").Actions`** komutunu çalıştırabilirsiniz. -Ya da API'yi doğrudan çağırabilirsiniz. +Veya API'yi doğrudan çağırın. ```bash -az rest --method GET --uri "https://management.azure.com//subscriptions//providers/Microsoft.Authorization/roleDefinitions/?api-version=2020-08-01-preview" | jq ".properties" +az rest --method GET --uri "https://management.azure.com//subscriptions//providers/Microsoft.Authorization/roleDefinitions/?api-version=2022-04-01" | jq ".properties" ``` +
+ Aşağıdaki bölümde **en yaygın Azure hizmetleri hakkında bilgi ve bunları nasıl listeleyeceğinizi** bulabilirsiniz: {{#ref}} @@ -213,19 +233,19 @@ az-services/ Azure ortamının nasıl yapılandığını ve hangi hizmetlerin kullanıldığını öğrendikten sonra, **ayrıcalıkları yükseltme, yan hareket etme, diğer sonrası sömürü saldırılarını gerçekleştirme ve sürekliliği sağlama** yollarını aramaya başlayabilirsiniz. -Aşağıdaki bölümde en yaygın Azure hizmetlerinde ayrıcalıkları nasıl yükselteceğinize dair bilgi bulabilirsiniz: +Aşağıdaki bölümde en yaygın Azure hizmetlerinde ayrıcalıkları nasıl yükselteceğiniz hakkında bilgi bulabilirsiniz: {{#ref}} az-privilege-escalation/ {{#endref}} -Aşağıdaki bölümde en yaygın Azure hizmetlerinde sonrası sömürü saldırılarını nasıl gerçekleştireceğinize dair bilgi bulabilirsiniz: +Aşağıdaki bölümde en yaygın Azure hizmetlerinde sonrası sömürü saldırılarını nasıl gerçekleştireceğiniz hakkında bilgi bulabilirsiniz: {{#ref}} az-post-exploitation/ {{#endref}} -Aşağıdaki bölümde en yaygın Azure hizmetlerinde sürekliliği nasıl sağlayacağınıza dair bilgi bulabilirsiniz: +Aşağıdaki bölümde en yaygın Azure hizmetlerinde sürekliliği nasıl sağlayacağınız hakkında bilgi bulabilirsiniz: {{#ref}} az-persistence/