From 2517a83f640ccb9dbab16f343014ab4bbd13aa41 Mon Sep 17 00:00:00 2001 From: Translator Date: Sun, 26 Jan 2025 10:44:53 +0000 Subject: [PATCH] Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes --- src/pentesting-cloud/azure-security/README.md | 80 ++++++++++++------- .../az-privilege-escalation/README.md | 1 - .../az-storage-unauth.md | 41 ++++++++++ 3 files changed, 94 insertions(+), 28 deletions(-) delete mode 100644 src/pentesting-cloud/azure-security/az-privilege-escalation/README.md create mode 100644 src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md diff --git a/src/pentesting-cloud/azure-security/README.md b/src/pentesting-cloud/azure-security/README.md index 0148cb00b..15312fcc4 100644 --- a/src/pentesting-cloud/azure-security/README.md +++ b/src/pentesting-cloud/azure-security/README.md @@ -10,17 +10,17 @@ Azure ve Entra ID'nin temellerini öğrenmek için aşağıdaki sayfayı ziyaret az-basic-information/ {{#endref}} -## Azure Pentester/Kırmızı Ekip Metodolojisi +## 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ığı. -Kırmızı Ekip perspektifinden, bir Azure ortamını ele geçirmenin **ilk adımı** bazı **ayak izleri** elde etmektir. +Kırmızı Takım bakış açısından, bir Azure ortamını ele geçirmenin **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** öğrenmek, aynı kiracıda başka **geçerli alan adlarını** (varsa) 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... +Alan adı temelinde, **şirketin Azure kullanıp kullanmadığını**, **kiracı ID'sini**, aynı kiracıda başka **geçerli alan adlarını** (varsa) 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. **Dış enum** gerçekleştirmek için aşağıdaki sayfayı kontrol edin: @@ -29,7 +29,7 @@ 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 herhangi bir açık kaynak platformda kontrol edin, bu platformlar **kimlik bilgileri** veya ilginç bilgiler içerebilir. +- **OSINT**: **kimlik bilgileri** veya ilginç bilgiler içerebilecek Github veya başka bir açık kaynak platformda **sızıntıları** kontrol edin. - **Ş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ı) @@ -37,29 +37,36 @@ Bu bilgilerle, bir ayak izi elde etmeye çalışmanın en yaygın yolları şunl - 3. tarafların **ihlal edilmesi** - Azure'da Barındırılan Uygulamalardaki Güvenlik Açıkları - [**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 -- **Alt alan ele geçirmeleri** gibi [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/) -- Eğer bir geliştirici dizüstü bilgisayarı ele geçirilmişse ([WinPEAS ve LinPEAS](https://github.com/peass-ng/PEASS-ng) bu bilgiyi bulabilir): -- İçinde **`/.Azure`** +- **Alt alan devralmaları** gibi [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/) +- **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 - **`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 içerir (kiracı id, istemciler ve gizli anahtar). 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 içerir (kiracı id'si, istemciler ve gizli anahtar). Sadece Linux & macOS'ta +- **`msal_token_cache.json`** erişim belirteçlerini ve yenileme belirteçlerini içerir. Sadece Linux & 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) -- İçinde **`C:\Users\\AppData\Local\Microsoft\IdentityCache\*`** kullanıcıların DPAPI ile şifrelenmiş **erişim jetonları**, ID jetonları ve hesap bilgileri içeren birkaç `.bin` dosyası vardı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ş base64 içerir. -- Linux ve macOS'ta, Az PowerShell kullanarak **erişim jetonları, yenileme jetonları ve id jetonları** elde edebilirsiniz (kullanıldıysa) `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` komutunu çalıştırarak -- Windows'ta bu sadece id jetonları üretir. -- Linux ve macOS'ta Az PowerShell'in kullanılıp kullanılmadığını kontrol etmek mümkündür; `$HOME/.local/share/.IdentityService/` var mı diye bakarak (içindeki dosyalar boş ve işe yaramaz olsa da) +- **`C:\Users\\AppData\Local\Microsoft\IdentityCache\*`** içinde, kullanıcıların DPAPI ile şifrelenmiş **erişim belirteçleri**, ID belirteçleri ve hesap bilgileri içeren birkaç `.bin` dosyası vardır. +- **`C:\Users\\AppData\Local\Microsoft\TokenBroken\Cache\`** içindeki `.tbres` dosyalarında daha fazla **erişim belirteci** bulmak mümkündür; bu dosyalar DPAPI ile şifrelenmiş base64 içerir. +- Linux ve macOS'ta, Az PowerShell'den **erişim belirteçleri, yenileme belirteçleri ve id belirteçleri** almak için `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` komutunu çalıştırabilirsiniz (kullanıldıysa). +- Windows'ta bu sadece id belirteçleri üretir. +- Linux ve macOS'ta Az PowerShell'in kullanılıp kullanılmadığını kontrol etmek için `$HOME/.local/share/.IdentityService/` var mı diye bakmak mümkündür (içerdiği 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: + +{{#ref}} +az-unauthenticated-enum-and-initial-entry/ +{{#endref}} > [!NOTE] -> Unutmayın ki genellikle **en gürültülü** kısım **giriş** kısmıdır, kendisi değil. +> Genellikle **en gürültülü** bölümün **giriş** olduğunu, kendisinin değil, enum olduğunu unutmayın. ### Azure & Entra ID Araçları -Aşağıdaki araçlar, hem Entra ID kiracılarını hem de Azure ortamlarını yavaş (tespit edilmemek için) veya otomatik olarak (zaman kazanmak için) listelemek için çok faydalı 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 @@ -69,19 +76,19 @@ az-enumeration-tools.md
-Geçerli kimlik bilgileriniz olsa da giriş yapamadığınız durumlarda, mevcut olabilecek bazı yaygın korumalar şunlardır: +Geçerli kimlik bilgileriniz olsa bile 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 bulmak ve aynı şehirden (veya en azından aynı ülkeden) bir IP almak +- **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 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şi daha az denetlenen **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** ele geçirmeyi de deneyebilirsiniz. -Bunu aştıktan sonra, başlangıç ayarlarınıza geri dönebilir ve hala erişiminiz olabilir. +Bunu aştıktan sonra, başlangıç ayarınıza geri dönebilir ve hala erişiminiz olabilir. ### 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): @@ -148,13 +155,32 @@ az-enumeration-tools.md#automated-post-exploitation-tools Kendinizi tanıdıktan sonra, **erişim sağladığınız Azure hizmetlerini saymaya** başlayabilirsiniz. +**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üğü olan kaynakları bilmenizi sağlar**. -Ayrıca, **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 `az rest --method GET --url "https://management.azure.com/subscriptions//resources?api-version=2021-04-01"` komutunu çalıştırarak aynı bilgiyi alabilirsiniz. +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: `az rest --method GET --url "https://management.azure.com/subscriptions//resources?api-version=2021-04-01"` -Dahası, yeterli izinlere sahip olduğunuzda, **`Get-AzRoleAssignment`** rolü, abonelikteki **tüm rolleri saymak veya belirli bir kaynak üzerindeki izinleri** belirtmek için kullanılabilir; bunu şu şekilde gösterebilirsiniz: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`** +2. **Erişim sağladığınız kaynaklar üzerindeki izinlerinizi ve size atanan rolleri bulun**: -Aşağıdaki bölümde, en yaygın Azure hizmetleri ve bunları nasıl sayacağınız hakkında bilgi bulabilirsiniz: +Bu işlemi gerçekleştirmek için **`Microsoft.Authorization/roleAssignments/read`** iznine ihtiyacınız olduğunu unutmayın. + +Ayrıca, yeterli izinlerle, **`Get-AzRoleAssignment`** rolü, abonelikteki **tüm rolleri** saymak veya belirli bir kaynak üzerindeki izni belirtmek için kullanılabilir, örneğin: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**. + +Bu bilgiyi **`az rest --method GET --uri "https://management.azure.com//providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** komutunu çalıştırarak da alabilirsiniz: + +- **`az rest --method GET --uri "https://management.azure.com//subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** + +3. **Size atanan rollerin ayrıntılı izinlerini bulun**: + +Ayrıntılı izinleri almak için **`(Get-AzRoleDefinition -Id "").Actions`** komutunu çalıştırabilirsiniz. + +Ya da API'yi doğrudan **`az rest --method GET --uri "https://management.azure.com//subscriptions//providers/Microsoft.Authorization/roleDefinitions/?api-version=2020-08-01-preview" | jq ".properties"`** komutuyla çağırabilirsiniz. + + +Aşağıdaki bölümde **en yaygın Azure hizmetleri ve bunları nasıl sayacağınız hakkında bilgi bulabilirsiniz**: {{#ref}} az-services/ @@ -164,19 +190,19 @@ az-services/ Azure ortamının nasıl yapılandığını ve hangi hizmetlerin kullanıldığını öğrendikten sonra, **yetki yükseltme, yan hareket etme, diğer post-exploitation 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 yetki yükseltme hakkında bilgi bulabilirsiniz: +Aşağıdaki bölümde en yaygın Azure hizmetlerinde yetki yükseltme hakkında bilgi bulabilirsiniz: {{#ref}} az-privilege-escalation/ {{#endref}} -Aşağıdaki bölümde, en yaygın Azure hizmetlerinde post-exploitation saldırılarını nasıl gerçekleştireceğiniz hakkında bilgi bulabilirsiniz: +Aşağıdaki bölümde en yaygın Azure hizmetlerinde post-exploitation saldırıları gerçekleştirme 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ız hakkında bilgi bulabilirsiniz: +Aşağıdaki bölümde en yaygın Azure hizmetlerinde sürekliliği sağlama hakkında bilgi bulabilirsiniz: {{#ref}} az-persistence/ diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md deleted file mode 100644 index 19c1e389e..000000000 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/README.md +++ /dev/null @@ -1 +0,0 @@ -# Az - Yetki Yükseltme diff --git a/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md new file mode 100644 index 000000000..f5b1a6171 --- /dev/null +++ b/src/pentesting-cloud/azure-security/az-unauthenticated-enum-and-initial-entry/az-storage-unauth.md @@ -0,0 +1,41 @@ +# Az - Storage Unauth + +{{#include ../../../banners/hacktricks-training.md}} + +## Storage Unauth + +Depolama hakkında daha fazla bilgi için kontrol edin: + +{{#ref}} +../az-services/az-storage.md +{{#endref}} + +### Açık Depolama + +Açık depolamayı keşfetmek için [**InvokeEnumerateAzureBlobs.ps1**](https://github.com/NetSPI/MicroBurst/blob/master/Misc/Invoke-EnumerateAzureBlobs.ps1) gibi bir araç kullanabilirsiniz; bu araç **`Microburst/Misc/permutations.txt`** dosyasını kullanarak **açık depolama hesaplarını bulmak** için denemeler (çok basit) oluşturacaktır. +```bash +Import-Module .\MicroBurst\MicroBurst.psm1 +Invoke-EnumerateAzureBlobs -Base corp +[...] +https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list +[...] + +# Access https://corpcommon.blob.core.windows.net/secrets?restype=container&comp=list +# Check: ssh_info.json +# Access then https://corpcommon.blob.core.windows.net/secrets/ssh_info.json +``` +Aynı zamanda bu amaç için [**MicroBust**](https://github.com/NetSPI/MicroBurst) yöntemini de kullanabilirsiniz. Bu fonksiyon, birkaç permütasyon ile birlikte temel alan adını birkaç **azure alanında** (depolama alanları dahil) arayacaktır: +```bash +Import-Module .\MicroBurst\MicroBurst.psm1 -Verbose +Invoke-EnumerateAzureSubDomains -Base corp -Verbose +``` +### SAS URL'leri + +Bir _**paylaşımlı erişim imzası**_ (SAS) URL'si, belirli bir Depolama hesabının (tam bir konteyner, bir dosya olabilir...) belirli izinlerle (okuma, yazma...) kaynaklara erişim **sağlayan** bir URL'dir. Eğer sızmış bir tane bulursanız, hassas bilgilere erişim sağlayabilirsiniz, bu şekilde görünür (bu bir konteyner erişimi içindir, eğer sadece bir dosyaya erişim veriyorsa, URL'nin yolu o dosyayı da içerecektir): + +`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` + +Verilere erişmek için [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-explorer/) kullanın + + +{{#include ../../../banners/hacktricks-training.md}}