Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes

This commit is contained in:
Translator
2025-02-07 00:05:04 +00:00
parent cc3ebeb1dc
commit 41c378d159
2 changed files with 90 additions and 65 deletions

View File

@@ -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ıyla, 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**, 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.
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.
**Dış enum** gerçekleştirmek için aşağıdaki sayfayı kontrol edin:
@@ -29,31 +29,31 @@ 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 kimlik bilgileri veya ilginç bilgiler içerebilecek diğer açık kaynak platformlarda kontrol edin.
- **Şifre** tekrar kullanımı, leak'ler 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** tekrar 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)
- 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 devralmaları** gibi [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/)
- [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):
- **`<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'si, istemciler ve gizli anahtar). Sadece Linux & macOS'ta
- **`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.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\<username>\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ı 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'den **erişim jetonları, yenileme jetonları ve id jetonları** almak için `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` komutunu çalıştırabilirsiniz (kullanıldıysa).
- **`C:\Users\<username>\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\<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ş 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.
- 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/` var mı diye bakmak mümkündür (içerdiği 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/` dizininin var olup olmadığını kontrol edebilirsiniz (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:
@@ -76,10 +76,10 @@ az-enumeration-tools.md
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
Geçerli kimlik bilgilerine sahip olduğunuz ancak 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 bulup 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 alın
- **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.
@@ -141,74 +141,91 @@ Get-AzureADTenantDetail
{{#endtabs }}
### Entra ID Sayımı & Yetki Yükseltme
### Entra ID Enumeration & Privesc
Varsayılan olarak, herhangi bir kullanıcının **kullanıcılar, gruplar, roller, hizmet ilkeleri gibi şeyleri saymak için yeterli izinlere sahip olması gerekir**... (bakınız [varsayılan AzureAD izinleri](az-basic-information/index.html#default-user-permissions)).\
Varsayılan olarak, herhangi bir kullanıcının **kullanıcılar, gruplar, roller, hizmet ilkeleri gibi şeyleri listelemek için yeterli izinlere sahip olması gerekir**... (bakınız [varsayılan AzureAD izinleri](az-basic-information/index.html#default-user-permissions)).\
Burada bir kılavuz bulabilirsiniz:
{{#ref}}
az-services/az-azuread.md
{{#endref}}
**Yetki Yükseltme araçlarını** kontrol edin, Entra ID'de yetki yükseltmek için **AzureHound** gibi araçlar bulabilirsiniz:
**Post-Exploitation araçlarını** kontrol edin, Entra ID'de ayrıcalıkları artırmak için **AzureHound** gibi araçlar bulabilirsiniz:
{{#ref}}
az-enumeration-tools.md#automated-post-exploitation-tools
{{#endref}}
### Azure Sayımı
### Azure Enumeration
Kendinizi tanıdıktan sonra, **erişim sağladığınız Azure hizmetlerini saymaya** başlayabilirsiniz.
Kendinizi tanıdıktan sonra, **erişim sağladığınız Azure hizmetlerini listelemeye** başlayabilirsiniz.
**Kaynaklar üzerindeki izinlerinizi** bulmaya başlamalısınız. Bunun için:
**Kaynaklar üzerindeki izinlerinizi** öğrenmeye 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**.
Az PowerShell komutu **`Get-AzResource`**, **mevcut kullanıcınızın görünürlüğe sahip olduğu 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: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
2. **Erişim sağladığınız kaynaklar üzerindeki izinlerinizi ve size atanan rolleri bulun**:
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:
```bash
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
```
2. **Erişim sağladığınız kaynaklar üzerindeki izinlerinizi bulun ve size atanan rolleri belirleyin**:
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 elde etmek için **`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, örneğin:
- **`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ıca, yeterli izinlerle, **`Get-AzRoleAssignment`** rolü, abonelikteki **tüm rolleri** listelemek veya belirli bir kaynak üzerindeki izni belirtmek için kullanılabilir:
```bash
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/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/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
```
gibi:
```bash
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
```
Başka bir seçenek, azure'da size bağlı olan rolleri almak için:
```bash
az role assignment list --assignee "<email>" --all --output table
```
Aşağıdakileri çalıştırarak (Eğer sonuçlar boşsa, bunun nedeni onları almak için izninizin olmaması olabilir):
```bash
az rest --method GET --uri 'https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '<user-id>'
```
3. **Sizeye bağlı 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**:
Ya da API'yi doğrudan çağırabilirsiniz.
```bash
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"
```
Aşağıdaki bölümde **en yaygın Azure hizmetleri hakkında bilgi ve bunları nasıl listeleyeceğinizi** bulabilirsiniz:
{{#ref}}
az-services/
{{#endref}}
### Yetki Yükseltme, Post-Exploitation & Süreklilik
### Ayrıcalık Yükseltme, Sonrası Sömürü & Süreklilik
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.
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 yetki yükseltme hakkında bilgi bulabilirsiniz:
Aşağıdaki bölümde en yaygın Azure hizmetlerinde ayrıcalıkları nasıl yükselteceğinize dair bilgi bulabilirsiniz:
{{#ref}}
az-privilege-escalation/
{{#endref}}
Sonraki bölümde en yaygın Azure hizmetlerinde post-exploitation saldırıları gerçekleştirme hakkında 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ğinize dair bilgi bulabilirsiniz:
{{#ref}}
az-post-exploitation/
{{#endref}}
Bir sonraki bölümde en yaygın Azure hizmetlerinde sürekliliği sağlama hakkında bilgi bulabilirsiniz:
Aşağıdaki bölümde en yaygın Azure hizmetlerinde sürekliliği nasıl sağlayacağınıza dair bilgi bulabilirsiniz:
{{#ref}}
az-persistence/

View File

@@ -1,46 +1,54 @@
# Az - Koşullu Erişim Politikaları & MFA Atlatma
# Az - Koşullu Erişim Politikaları ve MFA Atlatma
{{#include ../../../../banners/hacktricks-training.md}}
## Temel Bilgiler
Azure Koşullu Erişim politikaları, belirli **koşullara** dayalı olarak Azure hizmetlerine ve uygulamalarına erişim kontrollerini uygulamak için Microsoft Azure'da oluşturulan kurallardır. Bu politikalar, organizasyonların doğru koşullar altında doğru erişim kontrollerini uygulayarak kaynaklarını güvence altına almasına yardımcı olur.\
Koşullu erişim politikaları esasen **Kim**'in **Neyi** **Nereden** ve **Nasıl** erişebileceğini **tanımlar**.
Azure Koşullu Erişim politikaları, belirli **koşullara** dayalı olarak Azure hizmetlerine ve uygulamalarına erişim kontrollerini uygulamak için Microsoft Azure'da kurulan kurallardır. Bu politikalar, organizasyonların doğru koşullar altında doğru erişim kontrollerini uygulayarak kaynaklarını güvence altına almasına yardımcı olur.\
Koşullu erişim politikaları temelde **Kim**'in **Neye** **Nereden** ve **Nasıl** erişebileceğini **tanımlar**.
İşte birkaç örnek:
1. **Oturum Açma Risk Politikası**: Bu politika, bir oturum açma riski tespit edildiğinde çok faktörlü kimlik doğrulama (MFA) gerektirecek şekilde ayarlanabilir. Örneğin, bir kullanıcının oturum açma davranışı, farklı bir ülkeden oturum açmak gibi, normal desenine kıyasla alışılmadık olduğunda, sistem ek kimlik doğrulama talep edebilir.
2. **Cihaz Uygunluk Politikası**: Bu politika, yalnızca organizasyonun güvenlik standartlarına uygun cihazların Azure hizmetlerine erişimini kısıtlayabilir. Örneğin, yalnızca güncel antivirüs yazılımına sahip veya belirli bir işletim sistemi sürümünü çalıştıran cihazlardan erişime izin verilebilir.
## Koşullu Erişim Politikaları Atlatmaları
## Sayım
```bash
# Get all the policies from Azure without needing any special permission with (idea from https://github.com/LuemmelSec/APEX/blob/main/APEX.ps1)
az rest --method GET --uri 'https://graph.windows.net/<tenant-id>/policies?api-version=1.61-internal' | jq '.value[] | select(.policyType == 18) | {displayName, policyDetail: (.policyDetail[] | fromjson)}'
Bir koşullu erişim politikasının **kolayca manipüle edilebilecek bazı bilgileri kontrol etmesi mümkündür, bu da politikanın atlatılmasına olanak tanır**. Örneğin, politika MFA'yı yapılandırıyorsa, saldırgan bunu atlatabilecektir.
# You need Policy.Read.ConditionalAccess or Policy.Read.All permission in Entra ID
az rest --method get --uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies"
```
## Koşullu Erişim Politikası Aşmaları
Bir koşullu erişim politikası yapılandırırken, etkilenen **kullanıcıları** ve **hedef kaynakları** (tüm bulut uygulamaları gibi) belirtmek gerekir.
Bir koşullu erişim politikasının **kolayca manipüle edilebilecek bazı bilgileri kontrol etmesi mümkündür, bu da politikanın aşılmasına olanak tanır**. Örneğin, politika MFA yapılandırıyorsa, saldırgan bunu aşabilecektir.
Ayrıca, politikayı **tetikleyecek** **koşulları** yapılandırmak da gereklidir:
Bir koşullu erişim politikası yapılandırırken, **etkilenen kullanıcılar** ve **hedef kaynaklar** (tüm bulut uygulamaları gibi) belirtilmelidir.
Ayrıca, politikayı **tetikleyecek** **koşulların** yapılandırılması gerekmektedir:
- **Ağ**: IP, IP aralıkları ve coğrafi konumlar
- Bir VPN veya Proxy kullanarak bir ülkeye bağlanarak veya izin verilen bir IP adresinden oturum açarak atlatılabilir
- **Microsoft riskleri**: Kullanıcı riski, Oturum açma riski, İçeriden gelen risk
- **Cihaz platformları**: Herhangi bir cihaz veya Android, iOS, Windows Phone, Windows, macOS, Linux'u seçin
- “Herhangi bir cihaz” seçilmediyse ancak diğer tüm seçenekler seçildiyse, bu platformlarla ilgili olmayan rastgele bir kullanıcı aracını kullanarak atlatmak mümkündür
- Bir VPN veya Proxy kullanarak bir ülkeye bağlanmak veya izin verilen bir IP adresinden giriş yapmayı başarmak suretiyle aşılabilir
- **Microsoft riskleri**: Kullanıcı riski, Giriş riski, İçeriden gelen risk
- **Cihaz platformları**: Herhangi bir cihaz veya Android, iOS, Windows phone, Windows, macOS, Linux seçilebilir
- “Herhangi bir cihaz” seçilmediğinde ancak diğer tüm seçenekler seçildiğinde, bu platformlarla ilgili olmayan rastgele bir kullanıcı aracısı kullanarak aşmak mümkündür
- **İstemci uygulamaları**: Seçenekler “Tarayıcı”, “Mobil uygulamalar ve masaüstü istemcileri”, “Exchange ActiveSync istemcileri” ve “Diğer istemciler”
- Seçilmeyen bir seçenekle oturum açmayı atlatmak için
- Seçilmeyen bir seçenekle giriş yaparak aşmak
- **Cihazlar için filtre**: Kullanılan cihaza ilişkin bir kural oluşturmak mümkündür
- **Kimlik doğrulama akışları**: Seçenekler “Cihaz kodu akışı” ve “Kimlik doğrulama transferi”
- Bu, bir saldırganı etkilemeyecektir, yalnızca bu protokolleri bir oltalama girişiminde kurbanın hesabına erişmek için kötüye kullanmaya çalışıyorsa
- Bu, bir saldırganı etkilemeyecektir, yalnızca bu protokollerden herhangi birini bir oltalama girişiminde kötüye kullanmaya çalışıyorsa
Olası **sonuçlar**: Erişimi engelle veya MFA gerektirme, cihazın uygun olmasını sağlama gibi potansiyel koşullarla erişim izni ver.
Olası **sonuçlar**: Erişimi engelle veya MFA, uyumlu cihaz gerektiren potansiyel koşullarla erişim ver.
### Cihaz Platformları - Cihaz Koşulu
**Cihaz platformuna** (Android, iOS, Windows, macOS...) dayalı bir koşul ayarlamak mümkündür, ancak bu **kullanıcı aracına** dayandığı için atlatmak kolaydır. Tüm seçenekleri MFA'yı zorlamak için ayarlasanız bile, **tanınmayan bir kullanıcı aracı** kullanıyorsanız, MFA'yı veya engellemeyi atlatabilirsiniz:
Bir **cihaz platformuna** (Android, iOS, Windows, macOS...) dayalı bir koşul ayarlamak mümkündür, ancak bu **kullanıcı aracısına** dayandığı için aşılması kolaydır. Tüm seçenekleri MFA'yı zorlamak için ayarlasanız bile, **tanınmayan bir kullanıcı aracısı** kullanıyorsanız, MFA'yı veya engellemeyi aşabileceksiniz:
<figure><img src="../../../../images/image (352).png" alt=""><figcaption></figcaption></figure>
Tarayıcının **bilinmeyen bir kullanıcı aracını göndermesini sağlamak** (örneğin `Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile`) bu koşulu tetiklememek için yeterlidir.\
Kullanıcı aracını **manuel olarak** geliştirici araçlarında değiştirebilirsiniz:
Tarayıcının **bilinmeyen bir kullanıcı aracısı göndermesini sağlamak** (örneğin `Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile`) bu koşulu tetiklememek için yeterlidir.\
Kullanıcı aracısını **manuel olarak** geliştirici araçlarında değiştirebilirsiniz:
<figure><img src="../../../../images/image (351).png" alt="" width="375"><figcaption></figcaption></figure>
@@ -48,16 +56,16 @@ Veya [bunun gibi bir tarayıcı uzantısı](https://chromewebstore.google.com/de
### Konumlar: Ülkeler, IP aralıkları - Cihaz Koşulu
Bu koşullu politikada ayarlanmışsa, bir saldırgan sadece **izin verilen ülkede** bir **VPN** kullanabilir veya bu koşulları atlatmak için **izin verilen bir IP adresinden** erişim sağlamanın bir yolunu bulabilir.
Bu koşullu politikada ayarlandığında, bir saldırgan sadece **izin verilen ülkede** bir **VPN** kullanabilir veya bu koşulları aşmak için **izin verilen bir IP adresinden** erişim sağlamanın bir yolunu bulmaya çalışabilir.
### Bulut Uygulamaları
Bir kullanıcı **belirli bir uygulamaya** erişmeye çalıştığında, örneğin MFA'yı engellemek veya zorlamak için **koşullu erişim politikaları yapılandırmak** mümkündür:
Bir kullanıcı **belirli bir uygulamaya** erişmeye çalıştığında, örneğin MFA'yı engellemek veya zorlamak için **koşullu erişim politikaları yapılandırmak mümkündür**:
<figure><img src="../../../../images/image (353).png" alt=""><figcaption></figcaption></figure>
Bu korumayı atlatmaya çalışmak için, **herhangi bir uygulamaya** yalnızca erişip erişemeyeceğinizi görmelisiniz.\
[**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) aracı, **hardcoded** olarak **onlarca uygulama kimliği** içerir ve bunlara giriş yapmaya çalışır, başarılı olursa size token bile verir.
Bu korumayı aşmaya çalışmak için, **sadece herhangi bir uygulamaya** giriş yapıp yapamayacağınıza bakmalısınız.\
[**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) aracı, **hardcoded** olarak **onlarca uygulama kimliği** içerir ve bunlara giriş yapmaya çalışır, başarılı olursa size token bile verebilir.
**Belirli kaynaklarda belirli uygulama kimliklerini test etmek** için ayrıca şu aracı kullanabilirsiniz:
```bash
@@ -75,10 +83,10 @@ Araç [**ROPCI**](https://github.com/wunderwuzzi23/ropci) bu korumaları test et
### Zil sesi
Bir Azure MFA seçeneği, **yapılandırılmış telefon numarasına bir çağrı almak** ve kullanıcının **`#` karakterini göndermesini istemektir**.
Bir Azure MFA seçeneği, **yapılandırılmış telefon numarasına bir çağrı almak** ve kullanıcının **`#` karakterini göndermesi** istenecektir.
> [!CAUTION]
> Karakterler sadece **tonlar** olduğundan, bir saldırgan **telefon numarasının** **sesli mesajını** **tehdit edebilir**, mesaj olarak **`#` tonunu** ayarlayabilir ve ardından MFA talep edildiğinde **kurbanın telefonunun meşgul olduğundan emin olabilir** (aramak suretiyle) böylece Azure çağrısı sesli mesaja yönlendirilir.
> Karakterler sadece **tonlar** olduğundan, bir saldırgan **telefon numarasının** **sesli mesajını** **tehdit edebilir**, mesaj olarak **`#` tonunu** ayarlayabilir ve ardından MFA talep edildiğinde **kurbanın telefonunun meşgul** olmasını (aramak) sağlayarak Azure çağrısının sesli mesaja yönlendirilmesini sağlayabilir.
### Uyumlu Cihazlar
@@ -135,20 +143,20 @@ Bu araç, MFA atlatmalarını tanımlamaya ve ardından birden fazla üretim AAD
```
### [donkeytoken](https://github.com/silverhack/donkeytoken)
Donkey token, Conditional Access Policies'ı doğrulamak, 2FA etkin Microsoft portalları için testler yapmak gibi ihtiyaçları olan güvenlik danışmanlarına yardımcı olmayı amaçlayan bir dizi işlevdir.
Donkey token, Conditional Access Policies'ı doğrulamak, 2FA etkinleştirilmiş Microsoft portalları için testler yapmak gibi ihtiyaçları olan güvenlik danışmanlarına yardımcı olmayı amaçlayan bir dizi işlevdir.
<pre class="language-powershell"><code class="lang-powershell"><strong>git clone https://github.com/silverhack/donkeytoken.git
</strong><strong>Import-Module '.\donkeytoken' -Force
</strong></code></pre>
**Her portalı test edin** eğer **MFA olmadan giriş yapmak** mümkünse:
**Her portali test edin** eğer **MFA olmadan giriş yapmak mümkünse**:
```bash
$username = "conditional-access-app-user@azure.training.hacktricks.xyz"
$password = ConvertTo-SecureString "Poehurgi78633" -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential($username, $password)
Invoke-MFATest -credential $cred -Verbose -Debug -InformationAction Continue
```
**Azure** **portal** kısıtlanmadığı için, önceki yürütme ile tespit edilen herhangi bir hizmete erişmek için portal uç noktasından bir token toplamak mümkündür. Bu durumda Sharepoint tanımlandı ve ona erişmek için bir token talep ediliyor:
Çünkü **Azure** **portalı** **kısıtlanmamıştır**, önceki yürütme ile tespit edilen herhangi bir hizmete erişmek için portal uç noktasından bir **token** toplamak mümkündür. Bu durumda Sharepoint tanımlandı ve ona erişmek için bir **token** talep ediliyor:
```bash
$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token