Azure Pentesting
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
Temel Bilgiler
Azure ve Entra ID’nin temellerini öğrenmek için aşağıdaki sayfayı ziyaret edin:
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ı 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 öğ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:
Az - Unauthenticated Enum & Initial Entry
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 yeniden kullanımı, sızıntılar veya şifre püskürtme
- Bir çalışandan kimlik bilgileri satın almak
- Yaygın Phishing (kimlik bilgileri veya Oauth Uygulaması)
- Cihaz Kodu Kimlik Doğrulama Phishing
-
- tarafların ihlal edilmesi
- Azure’da barındırılan uygulamalardaki güvenlik açıkları
- Sunucu Tarafı İstek Sahteciliği ile meta veri uç noktasına erişim
- 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ı tehlikeye girerse (WinPEAS ve LinPEAS bu bilgiyi bulabilir):
- İçinde
<HOME>/.Azure azureProfile.jsongeçmişte oturum açmış kullanıcılar hakkında bilgi içerirclouds.configabonelikler hakkında bilgi içerirservice_principal_entries.jsonuygulama kimlik bilgilerini (kiracı id, istemciler ve gizli anahtar) içerir. Sadece Linux ve macOS’tamsal_token_cache.jsonerişim jetonları ve yenileme jetonları içerir. Sadece Linux ve macOS’taservice_principal_entries.binve msal_token_cache.bin Windows’ta kullanılır ve DPAPI ile şifrelenmiştirmsal_http_cache.binHTTP isteği önbelleğidir- Yükleyin:
with open("msal_http_cache.bin", 'rb') as f: pickle.load(f) AzureRmContext.jsonAz PowerShell kullanarak önceki oturum açma bilgilerini içerir (ancak kimlik bilgileri yoktur)- İçinde
C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*birçok.bindosyası bulunur ve bunlar erişim jetonları, ID jetonları ve kullanıcıların DPAPI ile şifrelenmiş hesap bilgilerini içerir. C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\içindeki.tbresdosyaları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/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:
Az - Unauthenticated Enum & Initial Entry
Note
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şça (tespit edilmemek için) veya otomatik olarak (zaman kazanmak için) listelemek için çok faydalı olacaktır:
Erişim Politikalarını Aşma
.png)
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 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ş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.
Kontrol edin:
Az - Conditional Access Policies & MFA Bypass
Whoami
Caution
Az - Entra ID 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):
az account list
az account tenant list # Current tenant info
az account subscription list # Current subscription info
az ad signed-in-user show # Current signed-in user
az ad signed-in-user list-owned-objects # Get owned objects by current user
az account management-group list #Not allowed by default
Entra ID Enumeration & Privesc
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).
Burada bir kılavuz bulabilirsiniz:
Az - Entra ID (AzureAD) & Azure IAM
Entra ID’de ayrıcalıkları artırmak için AzureHound gibi araçlar bulmak için Post-Exploitation araçlarına bakın:
Automated Post Exploitation Tools
Azure Enumeration
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:
- Erişim sağladığınız kaynağı bulun:
Tip
Bu, herhangi bir özel izin gerektirmez.
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 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"
- Görüntüleyebileceğiniz kaynaklar üzerindeki izinlerinizi bulun:
Tip
Bu, herhangi bir özel izin gerektirmez.
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 aracıyla otomatikleştirebilirsiniz.
İzinleri **`Microsoft.Authorization/roleAssignments/read`** ile sayın
Tip
Bu işlemi gerçekleştirmek için
Microsoft.Authorization/roleAssignments/readiznine ihtiyacınız olduğunu unutmayın.
- Yeterli izinlerle,
Get-AzRoleAssignmentrolü, abonelikteki tüm rolleri veya belirli bir kaynak üzerindeki izinleri saymak için kullanılabilir.
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:
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01" | jq ".value"
gibi:
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=2022-04-01" | jq ".value"
- Diğer bir seçenek, azure’da size atanmış rolleri almak. Bu da
Microsoft.Authorization/roleAssignments/readiznini gerektirir:
az role assignment list --assignee "<email>" --all --output table
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):
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>'
- Size size izinleri bul:
Ardından, granular izinleri almak için (Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions komutunu çalıştırabilirsiniz.
Veya API’yi doğrudan çağırın.
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?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:
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, 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ğiniz 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ğiniz hakkında 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:
Tip
AWS Hacking’i öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking’i öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking’i öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- Katılın 💬 Discord group veya telegram group veya Twitter’da bizi takip edin 🐦 @hacktricks_live.
- PR göndererek hacking tricks paylaşın: HackTricks ve HackTricks Cloud github repos.
HackTricks Cloud

