mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-02-05 03:16:37 -08:00
Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes
This commit is contained in:
@@ -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 **`<HOME>/.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):
|
||||
- **`<HOME>/.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\<username>\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\<username>\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\<username>\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\<username>\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
|
||||
|
||||
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
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/<subscription-id>/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/<subscription-id>/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/<Scope>/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 "<RoleDefinitionId>").Actions`** komutunu çalıştırabilirsiniz.
|
||||
|
||||
Ya da API'yi doğrudan **`az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?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/
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
# Az - Yetki Yükseltme
|
||||
@@ -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: <Name>ssh_info.json</Name>
|
||||
# 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://<storage_account_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`
|
||||
|
||||
Verilere erişmek için [**Storage Explorer**](https://azure.microsoft.com/en-us/features/storage-explorer/) kullanın
|
||||
|
||||
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
Reference in New Issue
Block a user