mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-07-30 23:50:25 -07:00
Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes
This commit is contained in:
@@ -29,31 +29,31 @@ az-unauthenticated-enum-and-initial-entry/
|
|||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
इस जानकारी के साथ foothold प्राप्त करने के लिए सबसे सामान्य तरीके हैं:
|
इस जानकारी के साथ foothold प्राप्त करने के लिए सबसे सामान्य तरीके हैं:
|
||||||
- **OSINT**: GitHub या किसी अन्य ओपन-सोर्स प्लेटफॉर्म पर **leaks** की जांच करें जो **credentials** या दिलचस्प जानकारी हो सकती है।
|
- **OSINT**: GitHub या किसी अन्य ओपन-सोर्स प्लेटफॉर्म पर **leaks** की जांच करें जो **credentials** या दिलचस्प जानकारी रख सकता है।
|
||||||
- **Password** पुन: उपयोग, leaks या [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
- **Password** पुन: उपयोग, leaks या [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||||
- एक कर्मचारी से credentials खरीदें
|
- एक कर्मचारी से क्रेडेंशियल्स खरीदें
|
||||||
- [**Common Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (credentials या Oauth App)
|
- [**Common Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (क्रेडेंशियल्स या Oauth ऐप)
|
||||||
- [Device Code Authentication Phishing](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
- [Device Code Authentication Phishing](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||||
- 3rd parties **breached**
|
- 3rd पार्टी **breached**
|
||||||
- Azure-Hosted Applications में कमजोरियाँ
|
- Azure-Hosted Applications में कमजोरियाँ
|
||||||
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) के साथ मेटाडेटा एंडपॉइंट तक पहुँच
|
- [**Server Side Request Forgery**](https://book.hacktricks.wiki/en/pentesting-web/ssrf-server-side-request-forgery/cloud-ssrf.html) जिसमें मेटाडेटा एंडपॉइंट तक पहुँच है
|
||||||
- **Subdomain takeovers** जैसे [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/)
|
- **Subdomain takeovers** जैसे [https://godiego.co/posts/STO-Azure/](https://godiego.co/posts/STO-Azure/)
|
||||||
- **अन्य Azure सेवाओं की गलत कॉन्फ़िगरेशन**
|
- **अन्य Azure सेवाओं की गलत कॉन्फ़िगरेशन**
|
||||||
- यदि किसी डेवलपर का लैपटॉप समझौता किया गया है ([WinPEAS और LinPEAS](https://github.com/peass-ng/PEASS-ng) इस जानकारी को खोज सकते हैं):
|
- यदि किसी डेवलपर का लैपटॉप समझौता किया गया है ([WinPEAS और LinPEAS](https://github.com/peass-ng/PEASS-ng) इस जानकारी को खोज सकते हैं):
|
||||||
- **`<HOME>/.Azure`** के अंदर
|
- **`<HOME>/.Azure`** के अंदर
|
||||||
- **`azureProfile.json`** पिछले लॉग इन उपयोगकर्ताओं के बारे में जानकारी रखता है
|
- **`azureProfile.json`** पिछले लॉगिन उपयोगकर्ताओं के बारे में जानकारी रखता है
|
||||||
- **`clouds.config contains`** सब्सक्रिप्शन के बारे में जानकारी रखता है
|
- **`clouds.config contains`** सब्सक्रिप्शन के बारे में जानकारी रखता है
|
||||||
- **`service_principal_entries.json`** एप्लिकेशन के credentials (टेनेन्ट आईडी, क्लाइंट और सीक्रेट) रखता है। केवल Linux और macOS में
|
- **`service_principal_entries.json`** एप्लिकेशन क्रेडेंशियल्स (टेनेन्ट आईडी, क्लाइंट और सीक्रेट) रखता है। केवल Linux और macOS में
|
||||||
- **`msal_token_cache.json`** में एक्सेस टोकन और रिफ्रेश टोकन होते हैं। केवल Linux और macOS में
|
- **`msal_token_cache.json`** में एक्सेस टोकन और रिफ्रेश टोकन होते हैं। केवल Linux और macOS में
|
||||||
- **`service_principal_entries.bin`** और msal_token_cache.bin Windows में उपयोग होते हैं और DPAPI के साथ एन्क्रिप्टेड होते हैं
|
- **`service_principal_entries.bin`** और msal_token_cache.bin Windows में उपयोग होते हैं और DPAPI के साथ एन्क्रिप्टेड होते हैं
|
||||||
- **`msal_http_cache.bin`** HTTP अनुरोध का कैश है
|
- **`msal_http_cache.bin`** HTTP अनुरोध का कैश है
|
||||||
- इसे लोड करें: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
- इसे लोड करें: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
||||||
- **`AzureRmContext.json`** Az PowerShell का उपयोग करके पिछले लॉगिन के बारे में जानकारी रखता है (लेकिन कोई credentials नहीं)
|
- **`AzureRmContext.json`** पिछले लॉगिन के बारे में जानकारी रखता है जो Az PowerShell का उपयोग करके किया गया था (लेकिन कोई क्रेडेंशियल नहीं)
|
||||||
- **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** के अंदर कई `.bin` फ़ाइलें हैं जिनमें **access tokens**, ID tokens और उपयोगकर्ता के DPAPI के साथ एन्क्रिप्टेड खाता जानकारी होती है।
|
- **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** के अंदर कई `.bin` फ़ाइलें हैं जिनमें **access tokens**, ID tokens और उपयोगकर्ता के DPAPI के साथ एन्क्रिप्टेड खाता जानकारी होती है।
|
||||||
- **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** के अंदर `.tbres` फ़ाइलों में अधिक **access tokens** मिल सकते हैं, जो DPAPI के साथ एन्क्रिप्टेड बेस64 होते हैं।
|
- **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** के अंदर `.tbres` फ़ाइलों में अधिक **access tokens** मिल सकते हैं, जो DPAPI के साथ एन्क्रिप्टेड बेस64 होते हैं।
|
||||||
- Linux और macOS में आप Az PowerShell (यदि उपयोग किया गया हो) से **access tokens, refresh tokens और id tokens** प्राप्त कर सकते हैं `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` चलाकर
|
- Linux और macOS में आप Az PowerShell (यदि उपयोग किया गया हो) से **access tokens, refresh tokens और id tokens** प्राप्त कर सकते हैं `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` चलाकर
|
||||||
- Windows में यह केवल ID tokens उत्पन्न करता है।
|
- Windows में यह केवल ID टोकन उत्पन्न करता है।
|
||||||
- यह देखना संभव है कि क्या Az PowerShell का उपयोग Linux और macOS में किया गया था, यह जांचकर कि `$HOME/.local/share/.IdentityService/` मौजूद है (हालांकि इसमें मौजूद फ़ाइलें खाली और बेकार हैं)
|
- यह देखना संभव है कि क्या Az PowerShell का उपयोग Linux और macOS में किया गया था यह जांचकर कि `$HOME/.local/share/.IdentityService/` मौजूद है (हालांकि इसमें मौजूद फ़ाइलें खाली और बेकार हैं)
|
||||||
|
|
||||||
फुटहोल प्राप्त करने के लिए **अन्य Azure सेवाओं की गलत कॉन्फ़िगरेशन** खोजें निम्नलिखित पृष्ठ पर:
|
फुटहोल प्राप्त करने के लिए **अन्य Azure सेवाओं की गलत कॉन्फ़िगरेशन** खोजें निम्नलिखित पृष्ठ पर:
|
||||||
|
|
||||||
@@ -76,11 +76,11 @@ az-enumeration-tools.md
|
|||||||
|
|
||||||
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
उन मामलों में जहाँ आपके पास कुछ मान्य credentials हैं लेकिन आप लॉगिन नहीं कर सकते, ये कुछ सामान्य सुरक्षा उपाय हैं जो लागू हो सकते हैं:
|
उन मामलों में जहाँ आपके पास कुछ मान्य क्रेडेंशियल्स हैं लेकिन आप लॉगिन नहीं कर सकते, ये कुछ सामान्य सुरक्षा उपाय हैं जो लागू हो सकते हैं:
|
||||||
|
|
||||||
- **IP whitelisting** -- आपको एक मान्य IP से समझौता करना होगा
|
- **IP whitelisting** -- आपको एक मान्य IP से समझौता करना होगा
|
||||||
- **Geo restrictions** -- पता करें कि उपयोगकर्ता कहाँ रहता है या कंपनी के कार्यालय कहाँ हैं और उसी शहर (या कम से कम देश) से एक IP प्राप्त करें
|
- **Geo restrictions** -- पता करें कि उपयोगकर्ता कहाँ रहता है या कंपनी के कार्यालय कहाँ हैं और उसी शहर (या कम से कम देश) से एक IP प्राप्त करें
|
||||||
- **Browser** -- शायद केवल कुछ OS (Windows, Linux, Mac, Android, iOS) से एक ब्राउज़र की अनुमति है। पता करें कि पीड़ित/कंपनी कौन सा OS उपयोग कर रही है।
|
- **Browser** -- शायद केवल कुछ OS (Windows, Linux, Mac, Android, iOS) से एक ब्राउज़र की अनुमति है। पता करें कि पीड़ित/कंपनी कौन सा OS उपयोग करती है।
|
||||||
- आप **Service Principal credentials** को भी समझौता करने की कोशिश कर सकते हैं क्योंकि ये आमतौर पर कम सीमित होते हैं और इसका लॉगिन कम समीक्षा किया जाता है
|
- आप **Service Principal credentials** को भी समझौता करने की कोशिश कर सकते हैं क्योंकि ये आमतौर पर कम सीमित होते हैं और इसका लॉगिन कम समीक्षा किया जाता है
|
||||||
|
|
||||||
इसे बायपास करने के बाद, आप अपनी प्रारंभिक सेटअप पर वापस जाने में सक्षम हो सकते हैं और आपके पास अभी भी पहुँच होगी।
|
इसे बायपास करने के बाद, आप अपनी प्रारंभिक सेटअप पर वापस जाने में सक्षम हो सकते हैं और आपके पास अभी भी पहुँच होगी।
|
||||||
@@ -140,75 +140,90 @@ Get-AzureADTenantDetail
|
|||||||
{{#endtab }}
|
{{#endtab }}
|
||||||
{{#endtabs }}
|
{{#endtabs }}
|
||||||
|
|
||||||
|
|
||||||
### Entra ID Enumeration & Privesc
|
### Entra ID Enumeration & Privesc
|
||||||
|
|
||||||
डिफ़ॉल्ट रूप से, किसी भी उपयोगकर्ता को **उपयोगकर्ताओं, समूहों, भूमिकाओं, सेवा प्रमुखों** जैसी चीजों को सूचीबद्ध करने के लिए **पर्याप्त अनुमतियाँ होनी चाहिए**... (चेक [default AzureAD permissions](az-basic-information/index.html#default-user-permissions)).\
|
डिफ़ॉल्ट रूप से, किसी भी उपयोगकर्ता को **उपयोगकर्ताओं, समूहों, भूमिकाओं, सेवा प्रमुखों** जैसी चीजों को सूचीबद्ध करने के लिए **पर्याप्त अनुमतियाँ होनी चाहिए**... (चेक करें [default AzureAD permissions](az-basic-information/index.html#default-user-permissions)).\
|
||||||
यहाँ एक गाइड है:
|
यहाँ एक गाइड है:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
az-services/az-azuread.md
|
az-services/az-azuread.md
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
**Post-Exploitation tools** की जाँच करें ताकि Entra ID में अनुमतियों को बढ़ाने के लिए उपकरण मिल सकें जैसे **AzureHound:**
|
**Post-Exploitation tools** की जाँच करें ताकि Entra ID में अनुमतियाँ बढ़ाने के लिए उपकरण मिल सकें जैसे **AzureHound:**
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
az-enumeration-tools.md#automated-post-exploitation-tools
|
az-enumeration-tools.md#automated-post-exploitation-tools
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
|
|
||||||
### Azure Enumeration
|
### Azure Enumeration
|
||||||
|
|
||||||
एक बार जब आप जान लेते हैं कि आप कौन हैं, तो आप **Azure सेवाओं की सूचीबद्धता शुरू कर सकते हैं जिन तक आपकी पहुँच है**।
|
एक बार जब आप जान लेते हैं कि आप कौन हैं, तो आप **Azure सेवाओं की सूची बनाना शुरू कर सकते हैं जिन तक आपकी पहुँच है**।
|
||||||
|
|
||||||
आपको यह पता लगाना चाहिए कि आपके पास **संसाधनों पर क्या अनुमतियाँ हैं**। इसके लिए:
|
आपको यह पता लगाना चाहिए कि आपके पास संसाधनों पर **क्या अनुमतियाँ हैं**। इसके लिए:
|
||||||
|
|
||||||
1. **उस संसाधन को खोजें जिसके लिए आपके पास कुछ पहुँच है**:
|
1. **उस संसाधन को खोजें जिसके लिए आपके पास कुछ पहुँच है**:
|
||||||
|
|
||||||
Az PoswerShell कमांड **`Get-AzResource`** आपको **जानकारी देता है कि आपके वर्तमान उपयोगकर्ता के पास किन संसाधनों पर दृश्यता है**।
|
Az PoswerShell कमांड **`Get-AzResource`** आपको **जानकारी देता है कि आपके वर्तमान उपयोगकर्ता के पास किन संसाधनों पर दृश्यता है**।
|
||||||
|
|
||||||
इसके अलावा, आप **वेब कंसोल** में [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) पर जाकर या "All resources" के लिए खोजकर या निष्पादित करके वही जानकारी प्राप्त कर सकते हैं: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
|
इसके अलावा, आप **वेब कंसोल** में वही जानकारी प्राप्त कर सकते हैं [https://portal.azure.com/#view/HubsExtension/BrowseAll](https://portal.azure.com/#view/HubsExtension/BrowseAll) पर जाकर या "All resources" खोजकर या निष्पादित करके:
|
||||||
|
```bash
|
||||||
|
az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"
|
||||||
|
```
|
||||||
|
2. **उन संसाधनों पर आपके पास जो अनुमतियाँ हैं, उन्हें खोजें जिन तक आपकी पहुँच है और आपके लिए निर्धारित भूमिकाएँ खोजें**:
|
||||||
|
|
||||||
2. **उन संसाधनों पर आपके पास जो अनुमतियाँ हैं उन्हें खोजें जिन तक आपकी पहुँच है और आपके लिए असाइन की गई भूमिकाएँ खोजें**:
|
ध्यान दें कि इस क्रिया को निष्पादित करने के लिए आपको अनुमति **`Microsoft.Authorization/roleAssignments/read`** की आवश्यकता है।
|
||||||
|
|
||||||
ध्यान दें कि आपको इस क्रिया को निष्पादित करने के लिए अनुमति **`Microsoft.Authorization/roleAssignments/read`** की आवश्यकता है।
|
इसके अलावा, पर्याप्त अनुमतियों के साथ, भूमिका **`Get-AzRoleAssignment`** का उपयोग **सदस्यता में सभी भूमिकाओं को सूचीबद्ध करने** या एक विशिष्ट संसाधन पर अनुमति को इंगित करने के लिए किया जा सकता है जैसे:
|
||||||
|
```bash
|
||||||
इसके अलावा, पर्याप्त अनुमतियों के साथ, भूमिका **`Get-AzRoleAssignment`** का उपयोग **सदस्यता में सभी भूमिकाओं की सूचीबद्धता** करने या एक विशिष्ट संसाधन पर अनुमति प्राप्त करने के लिए किया जा सकता है जैसे: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**।
|
Get-AzRoleAssignment -Scope /subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4
|
||||||
|
```
|
||||||
यह जानकारी प्राप्त करने के लिए **`az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** चलाना भी संभव है जैसे:
|
यह जानकारी प्राप्त करना भी संभव है:
|
||||||
|
```bash
|
||||||
- **`az rest --method GET --uri "https://management.azure.com//subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`**
|
az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
|
||||||
|
```
|
||||||
3. **आपके लिए संलग्न भूमिकाओं की सूक्ष्म अनुमतियाँ खोजें**:
|
जैसे कि:
|
||||||
|
```bash
|
||||||
|
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/resourceGroups/Resource_Group_1/providers/Microsoft.KeyVault/vaults/vault-m3ww8ut4/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"
|
||||||
|
```
|
||||||
|
एक और विकल्प है कि आप azure में आपके साथ जुड़े रोल प्राप्त करें:
|
||||||
|
```bash
|
||||||
|
az role assignment list --assignee "<email>" --all --output table
|
||||||
|
```
|
||||||
|
या निम्नलिखित चलाने पर (यदि परिणाम खाली हैं, तो इसका कारण यह हो सकता है कि आपके पास उन्हें प्राप्त करने की अनुमति नहीं है):
|
||||||
|
```bash
|
||||||
|
az rest --method GET --uri 'https://management.azure.com/subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleAssignments?api-version=2022-04-01&$filter=principalId eq '<user-id>'
|
||||||
|
```
|
||||||
|
3. **आपसे जुड़े भूमिकाओं की सूक्ष्म अनुमतियों को खोजें**:
|
||||||
|
|
||||||
फिर, सूक्ष्म अनुमति प्राप्त करने के लिए आप **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`** चला सकते हैं।
|
फिर, सूक्ष्म अनुमति प्राप्त करने के लिए आप **`(Get-AzRoleDefinition -Id "<RoleDefinitionId>").Actions`** चला सकते हैं।
|
||||||
|
|
||||||
या सीधे API को कॉल करें **`az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2020-08-01-preview" | jq ".properties"`** के साथ।
|
या सीधे API को कॉल करें:
|
||||||
|
```bash
|
||||||
|
az rest --method GET --uri "https://management.azure.com//subscriptions/<subscription-id>/providers/Microsoft.Authorization/roleDefinitions/<RoleDefinitionId>?api-version=2020-08-01-preview" | jq ".properties"
|
||||||
अगली अनुभाग में आप **सबसे सामान्य Azure सेवाओं के बारे में जानकारी और उन्हें सूचीबद्ध करने के तरीके** पा सकते हैं:
|
```
|
||||||
|
इस अनुभाग में आप **सबसे सामान्य Azure सेवाओं के बारे में जानकारी और उन्हें कैसे सूचीबद्ध करें** पा सकते हैं:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
az-services/
|
az-services/
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
### Privilege Escalation, Post-Exploitation & Persistence
|
### विशेषाधिकार वृद्धि, पोस्ट-एक्सप्लॉइटेशन और स्थिरता
|
||||||
|
|
||||||
एक बार जब आप जान लेते हैं कि Azure वातावरण कैसे संरचित है और कौन सी सेवाएँ उपयोग की जा रही हैं, तो आप **अनुमतियों को बढ़ाने, पार्श्व रूप से स्थानांतरित करने, अन्य पोस्ट-एक्सप्लॉइटेशन हमलों को करने और स्थिरता बनाए रखने** के तरीकों की तलाश शुरू कर सकते हैं।
|
एक बार जब आप जान लेते हैं कि Azure वातावरण कैसे संरचित है और कौन सी सेवाएँ उपयोग की जा रही हैं, तो आप **विशेषाधिकार बढ़ाने, पार्श्व रूप से स्थानांतरित करने, अन्य पोस्ट-एक्सप्लॉइटेशन हमले करने और स्थिरता बनाए रखने** के तरीकों की तलाश शुरू कर सकते हैं।
|
||||||
|
|
||||||
अगली अनुभाग में आप सबसे सामान्य Azure सेवाओं में अनुमतियों को बढ़ाने के तरीके के बारे में जानकारी पा सकते हैं:
|
इस अनुभाग में आप सबसे सामान्य Azure सेवाओं में विशेषाधिकार बढ़ाने के बारे में जानकारी पा सकते हैं:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
az-privilege-escalation/
|
az-privilege-escalation/
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
अगली में आप सबसे सामान्य Azure सेवाओं में पोस्ट-एक्सप्लॉइटेशन हमलों को करने के तरीके के बारे में जानकारी पा सकते हैं:
|
अगले में आप सबसे सामान्य Azure सेवाओं में पोस्ट-एक्सप्लॉइटेशन हमले करने के बारे में जानकारी पा सकते हैं:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
az-post-exploitation/
|
az-post-exploitation/
|
||||||
{{#endref}}
|
{{#endref}}
|
||||||
|
|
||||||
अगली में आप सबसे सामान्य Azure सेवाओं में स्थिरता बनाए रखने के तरीके के बारे में जानकारी पा सकते हैं:
|
अगले में आप सबसे सामान्य Azure सेवाओं में स्थिरता बनाए रखने के बारे में जानकारी पा सकते हैं:
|
||||||
|
|
||||||
{{#ref}}
|
{{#ref}}
|
||||||
az-persistence/
|
az-persistence/
|
||||||
|
|||||||
+35
-27
@@ -4,62 +4,70 @@
|
|||||||
|
|
||||||
## Basic Information
|
## Basic Information
|
||||||
|
|
||||||
Azure Conditional Access नीतियाँ Microsoft Azure में नियम हैं जो कुछ **शर्तों** के आधार पर Azure सेवाओं और अनुप्रयोगों तक पहुँच नियंत्रण लागू करने के लिए स्थापित की जाती हैं। ये नीतियाँ संगठनों को सही परिस्थितियों में सही पहुँच नियंत्रण लागू करके अपने संसाधनों को सुरक्षित रखने में मदद करती हैं।\
|
Azure Conditional Access नीतियाँ Microsoft Azure में स्थापित नियम हैं जो कुछ **शर्तों** के आधार पर Azure सेवाओं और अनुप्रयोगों तक पहुँच नियंत्रण लागू करने के लिए हैं। ये नीतियाँ संगठनों को सही परिस्थितियों में सही पहुँच नियंत्रण लागू करके अपने संसाधनों को सुरक्षित रखने में मदद करती हैं।\
|
||||||
Conditional access नीतियाँ मूल रूप से **यह परिभाषित करती हैं** **कौन** **क्या** **कहाँ** और **कैसे** पहुँच सकता है।
|
Conditional access नीतियाँ मूल रूप से **यह निर्धारित करती हैं** **कौन** **क्या** **कहाँ** और **कैसे** पहुँच सकता है।
|
||||||
|
|
||||||
यहाँ कुछ उदाहरण दिए गए हैं:
|
यहाँ कुछ उदाहरण दिए गए हैं:
|
||||||
|
|
||||||
1. **साइन-इन जोखिम नीति**: यह नीति तब लागू की जा सकती है जब साइन-इन जोखिम का पता लगाया जाता है, जैसे कि जब एक उपयोगकर्ता का लॉगिन व्यवहार उनके नियमित पैटर्न की तुलना में असामान्य होता है, जैसे कि किसी अन्य देश से लॉगिन करना, तो सिस्टम अतिरिक्त प्रमाणीकरण के लिए संकेत दे सकता है।
|
1. **साइन-इन जोखिम नीति**: यह नीति तब लागू की जा सकती है जब साइन-इन जोखिम का पता लगाया जाए, जिसमें बहु-कारक प्रमाणीकरण (MFA) की आवश्यकता हो। उदाहरण के लिए, यदि किसी उपयोगकर्ता का लॉगिन व्यवहार उनके नियमित पैटर्न की तुलना में असामान्य है, जैसे कि किसी अन्य देश से लॉगिन करना, तो सिस्टम अतिरिक्त प्रमाणीकरण के लिए संकेत दे सकता है।
|
||||||
2. **डिवाइस अनुपालन नीति**: यह नीति केवल उन उपकरणों तक पहुँच को प्रतिबंधित कर सकती है जो संगठन के सुरक्षा मानकों के अनुपालन में हैं। उदाहरण के लिए, केवल उन उपकरणों से पहुँच की अनुमति दी जा सकती है जिनमें अद्यतन एंटीवायरस सॉफ़्टवेयर है या जो एक निश्चित ऑपरेटिंग सिस्टम संस्करण चला रहे हैं।
|
2. **डिवाइस अनुपालन नीति**: यह नीति केवल उन उपकरणों के लिए Azure सेवाओं तक पहुँच को प्रतिबंधित कर सकती है जो संगठन के सुरक्षा मानकों के अनुपालन में हैं। उदाहरण के लिए, केवल उन उपकरणों से पहुँच की अनुमति दी जा सकती है जिनमें अद्यतन एंटीवायरस सॉफ़्टवेयर है या जो एक निश्चित ऑपरेटिंग सिस्टम संस्करण चला रहे हैं।
|
||||||
|
|
||||||
## Conditional Access Policies Bypasses
|
## Enumeration
|
||||||
|
```bash
|
||||||
|
# Get all the policies from Azure without needing any special permission with (idea from https://github.com/LuemmelSec/APEX/blob/main/APEX.ps1)
|
||||||
|
az rest --method GET --uri 'https://graph.windows.net/<tenant-id>/policies?api-version=1.61-internal' | jq '.value[] | select(.policyType == 18) | {displayName, policyDetail: (.policyDetail[] | fromjson)}'
|
||||||
|
|
||||||
यह संभव है कि एक conditional access नीति **कुछ जानकारी की जाँच कर रही हो जिसे आसानी से छेड़ा जा सकता है जिससे नीति को बायपास किया जा सके**। और यदि उदाहरण के लिए नीति MFA को कॉन्फ़िगर कर रही थी, तो हमलावर इसे बायपास करने में सक्षम होगा।
|
# You need Policy.Read.ConditionalAccess or Policy.Read.All permission in Entra ID
|
||||||
|
az rest --method get --uri "https://graph.microsoft.com/beta/identity/conditionalAccess/policies"
|
||||||
|
```
|
||||||
|
## Conditional Acces Policies Bypasses
|
||||||
|
|
||||||
एक conditional access नीति को कॉन्फ़िगर करते समय यह आवश्यक है कि प्रभावित **उपयोगकर्ताओं** और **लक्षित संसाधनों** (जैसे सभी क्लाउड ऐप) को इंगित किया जाए।
|
यह संभव है कि एक conditional access policy **कुछ जानकारी की जांच कर रही हो जिसे आसानी से छेड़ा जा सकता है जिससे नीति का बायपास किया जा सके**। और यदि उदाहरण के लिए नीति MFA को कॉन्फ़िगर कर रही थी, तो हमलावर इसे बायपास करने में सक्षम होगा।
|
||||||
|
|
||||||
यह भी आवश्यक है कि उन **शर्तों** को कॉन्फ़िगर किया जाए जो नीति को **प्रेरित** करेंगी:
|
एक conditional access policy को कॉन्फ़िगर करते समय **प्रभावित उपयोगकर्ताओं** और **लक्षित संसाधनों** (जैसे सभी क्लाउड ऐप) को इंगित करना आवश्यक है।
|
||||||
|
|
||||||
|
यह भी आवश्यक है कि **शर्तें** कॉन्फ़िगर की जाएं जो नीति को **प्रेरित** करें:
|
||||||
|
|
||||||
- **नेटवर्क**: आईपी, आईपी रेंज और भौगोलिक स्थान
|
- **नेटवर्क**: आईपी, आईपी रेंज और भौगोलिक स्थान
|
||||||
- एक VPN या प्रॉक्सी का उपयोग करके एक देश से कनेक्ट करने या एक अनुमत आईपी पते से लॉगिन करने में बायपास किया जा सकता है
|
- एक देश से कनेक्ट करने के लिए VPN या Proxy का उपयोग करके या एक अनुमत आईपी पते से लॉगिन करने में सक्षम होना
|
||||||
- **Microsoft जोखिम**: उपयोगकर्ता जोखिम, साइन-इन जोखिम, अंदरूनी जोखिम
|
- **Microsoft जोखिम**: उपयोगकर्ता जोखिम, साइन-इन जोखिम, अंदरूनी जोखिम
|
||||||
- **डिवाइस प्लेटफार्म**: कोई भी डिवाइस या Android, iOS, Windows phone, Windows, macOS, Linux का चयन करें
|
- **डिवाइस प्लेटफार्म**: कोई भी डिवाइस या Android, iOS, Windows phone, Windows, macOS, Linux का चयन करें
|
||||||
- यदि "कोई भी डिवाइस" का चयन नहीं किया गया है लेकिन सभी अन्य विकल्प चुने गए हैं, तो इसे उन प्लेटफार्मों से संबंधित न होने वाले यादृच्छिक उपयोगकर्ता-एजेंट का उपयोग करके बायपास किया जा सकता है
|
- यदि "कोई भी डिवाइस" चयनित नहीं है लेकिन सभी अन्य विकल्प चयनित हैं, तो इसे उन प्लेटफार्मों से संबंधित न होने वाले यादृच्छिक उपयोगकर्ता-एजेंट का उपयोग करके बायपास किया जा सकता है
|
||||||
- **क्लाइंट ऐप**: विकल्प हैं "ब्राउज़र", "मोबाइल ऐप और डेस्कटॉप क्लाइंट", "एक्सचेंज एक्टिवसिंक क्लाइंट" और अन्य क्लाइंट"
|
- **क्लाइंट ऐप**: विकल्प हैं "ब्राउज़र", "मोबाइल ऐप और डेस्कटॉप क्लाइंट", "Exchange ActiveSync क्लाइंट" और "अन्य क्लाइंट"
|
||||||
- एक न चुने गए विकल्प के साथ लॉगिन बायपास करने के लिए
|
- एक न चुने गए विकल्प के साथ लॉगिन को बायपास करने के लिए
|
||||||
- **डिवाइस के लिए फ़िल्टर**: उपयोग किए गए डिवाइस से संबंधित एक नियम उत्पन्न करना संभव है
|
- **डिवाइस के लिए फ़िल्टर**: उपयोग किए गए डिवाइस से संबंधित एक नियम उत्पन्न करना संभव है
|
||||||
- **प्रमाणीकरण प्रवाह**: विकल्प हैं "डिवाइस कोड प्रवाह" और "प्रमाणीकरण स्थानांतरण"
|
- **प्रमाणन प्रवाह**: विकल्प हैं "डिवाइस कोड प्रवाह" और "प्रमाणन स्थानांतरण"
|
||||||
- यह एक हमलावर को प्रभावित नहीं करेगा जब तक कि वह पीड़ित के खाते तक पहुँचने के लिए फ़िशिंग प्रयास में इनमें से किसी भी प्रोटोकॉल का दुरुपयोग करने की कोशिश नहीं कर रहा हो
|
- यह एक हमलावर को प्रभावित नहीं करेगा जब तक कि वह पीड़ित के खाते तक पहुँचने के लिए फ़िशिंग प्रयास में इनमें से किसी भी प्रोटोकॉल का दुरुपयोग करने की कोशिश न कर रहा हो
|
||||||
|
|
||||||
संभावित **परिणाम** हैं: ब्लॉक या पहुँच प्रदान करें जिसमें संभावित शर्तें जैसे MFA की आवश्यकता, डिवाइस का अनुपालन...
|
संभावित **परिणाम** हैं: ब्लॉक या एक्सेस प्रदान करें जिसमें संभावित शर्तें जैसे MFA की आवश्यकता, डिवाइस का अनुपालन होना शामिल हैं…
|
||||||
|
|
||||||
### Device Platforms - Device Condition
|
### Device Platforms - Device Condition
|
||||||
|
|
||||||
यह **डिवाइस प्लेटफार्म** (Android, iOS, Windows, macOS...) के आधार पर एक शर्त सेट करना संभव है, हालाँकि, यह **उपयोगकर्ता-एजेंट** पर आधारित है इसलिए इसे बायपास करना आसान है। यहाँ तक कि **सभी विकल्पों को MFA लागू करने के लिए**, यदि आप एक **उपयोगकर्ता-एजेंट का उपयोग करते हैं जो पहचाना नहीं गया है,** तो आप MFA या ब्लॉक को बायपास करने में सक्षम होंगे:
|
यह **डिवाइस प्लेटफार्म** (Android, iOS, Windows, macOS...) के आधार पर एक शर्त सेट करना संभव है, हालाँकि, यह **उपयोगकर्ता-एजेंट** पर आधारित है इसलिए इसे बायपास करना आसान है। यहां तक कि **सभी विकल्पों को MFA लागू करने के लिए**, यदि आप एक **उपयोगकर्ता-एजेंट का उपयोग करते हैं जिसे पहचाना नहीं गया है,** तो आप MFA या ब्लॉक को बायपास करने में सक्षम होंगे:
|
||||||
|
|
||||||
<figure><img src="../../../../images/image (352).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../../../../images/image (352).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
बस ब्राउज़र को **एक अज्ञात उपयोगकर्ता-एजेंट भेजने** (जैसे `Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile`) के लिए पर्याप्त है कि यह शर्त सक्रिय न हो।\
|
बस ब्राउज़र को **एक अज्ञात उपयोगकर्ता-एजेंट भेजने** (जैसे `Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile`) के लिए पर्याप्त है कि यह शर्त सक्रिय न हो।\
|
||||||
आप डेवलपर टूल में **हाथ से** उपयोगकर्ता एजेंट बदल सकते हैं:
|
आप डेवलपर टूल में उपयोगकर्ता एजेंट को **हाथ से** बदल सकते हैं:
|
||||||
|
|
||||||
<figure><img src="../../../../images/image (351).png" alt="" width="375"><figcaption></figcaption></figure>
|
<figure><img src="../../../../images/image (351).png" alt="" width="375"><figcaption></figcaption></figure>
|
||||||
|
|
||||||
या [इस तरह के ब्राउज़र एक्सटेंशन का उपयोग करें](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en).
|
या [इस तरह के ब्राउज़र एक्सटेंशन](https://chromewebstore.google.com/detail/user-agent-switcher-and-m/bhchdcejhohfmigjafbampogmaanbfkg?hl=en) का उपयोग करें।
|
||||||
|
|
||||||
### Locations: Countries, IP ranges - Device Condition
|
### Locations: Countries, IP ranges - Device Condition
|
||||||
|
|
||||||
यदि यह conditional policy में सेट किया गया है, तो एक हमलावर बस **अनुमत देश** में एक **VPN** का उपयोग कर सकता है या इन शर्तों को बायपास करने के लिए एक **अनुमत आईपी पते** से पहुँचने का तरीका खोज सकता है।
|
यदि यह conditional policy में सेट किया गया है, तो एक हमलावर बस **अनुमत देश** में एक **VPN** का उपयोग कर सकता है या इन शर्तों को बायपास करने के लिए **अनुमत आईपी पते** से पहुंचने का एक तरीका खोज सकता है।
|
||||||
|
|
||||||
### Cloud Apps
|
### Cloud Apps
|
||||||
|
|
||||||
यह संभव है कि **विशिष्ट ऐप** तक पहुँचने का प्रयास करते समय **कंडीशनल एक्सेस नीतियों को ब्लॉक या मजबूर** किया जाए, जैसे कि MFA:
|
यह संभव है कि **विशिष्ट ऐप** तक पहुँचने का प्रयास करते समय **conditional access policies को ब्लॉक या मजबूर** करने के लिए MFA को कॉन्फ़िगर किया जाए:
|
||||||
|
|
||||||
<figure><img src="../../../../images/image (353).png" alt=""><figcaption></figcaption></figure>
|
<figure><img src="../../../../images/image (353).png" alt=""><figcaption></figcaption></figure>
|
||||||
|
|
||||||
इस सुरक्षा को बायपास करने के लिए आपको देखना चाहिए कि क्या आप **केवल किसी भी एप्लिकेशन में** लॉगिन कर सकते हैं।\
|
इस सुरक्षा को बायपास करने का प्रयास करने के लिए आपको देखना चाहिए कि क्या आप **किसी भी एप्लिकेशन में केवल लॉगिन कर सकते हैं**।\
|
||||||
उपकरण [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) में **दर्जनों एप्लिकेशन आईडी हार्डकोडेड** हैं और यह उनमें लॉगिन करने का प्रयास करेगा और आपको सूचित करेगा और यदि सफल होता है तो आपको टोकन भी देगा।
|
उपकरण [**AzureAppsSweep**](https://github.com/carlospolop/AzureAppsSweep) में **कई एप्लिकेशन आईडी हार्डकोडेड** हैं और यह उनमें लॉगिन करने का प्रयास करेगा और आपको सूचित करेगा और यदि सफल होता है तो आपको टोकन भी देगा।
|
||||||
|
|
||||||
विशिष्ट संसाधनों में **विशिष्ट एप्लिकेशन आईडी का परीक्षण करने के लिए** आप एक उपकरण का उपयोग कर सकते हैं जैसे:
|
विशिष्ट संसाधनों में **विशिष्ट एप्लिकेशन आईडी का परीक्षण करने** के लिए आप एक उपकरण का उपयोग कर सकते हैं जैसे:
|
||||||
```bash
|
```bash
|
||||||
roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokens-stdout
|
roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokens-stdout
|
||||||
|
|
||||||
@@ -69,7 +77,7 @@ roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4
|
|||||||
|
|
||||||
उपकरण [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) को भी समान उद्देश्यों के लिए उपयोग किया जा सकता है हालांकि यह अप्रबंधित लगता है।
|
उपकरण [**donkeytoken**](az-conditional-access-policies-mfa-bypass.md#donkeytoken) को भी समान उद्देश्यों के लिए उपयोग किया जा सकता है हालांकि यह अप्रबंधित लगता है।
|
||||||
|
|
||||||
उपकरण [**ROPCI**](https://github.com/wunderwuzzi23/ropci) का उपयोग इन सुरक्षा उपायों का परीक्षण करने और यह देखने के लिए किया जा सकता है कि क्या MFAs या ब्लॉकों को बायपास करना संभव है, लेकिन यह उपकरण **whitebox** दृष्टिकोण से काम करता है। आपको पहले टेनेट में अनुमत ऐप्स की सूची डाउनलोड करनी होगी और फिर यह उनमें लॉगिन करने की कोशिश करेगा।
|
उपकरण [**ROPCI**](https://github.com/wunderwuzzi23/ropci) का उपयोग भी इन सुरक्षा उपायों का परीक्षण करने और यह देखने के लिए किया जा सकता है कि क्या MFAs या ब्लॉकों को बायपास करना संभव है, लेकिन यह उपकरण **whitebox** दृष्टिकोण से काम करता है। आपको पहले टेनेट में अनुमत ऐप्स की सूची डाउनलोड करनी होगी और फिर यह उनमें लॉगिन करने की कोशिश करेगा।
|
||||||
|
|
||||||
## अन्य Az MFA बायपास
|
## अन्य Az MFA बायपास
|
||||||
|
|
||||||
@@ -106,7 +114,7 @@ Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken
|
|||||||
|
|
||||||
यह स्क्रिप्ट कुछ उपयोगकर्ता क्रेडेंशियल प्राप्त करती है और जांचती है कि क्या यह कुछ अनुप्रयोगों में लॉगिन कर सकती है।
|
यह स्क्रिप्ट कुछ उपयोगकर्ता क्रेडेंशियल प्राप्त करती है और जांचती है कि क्या यह कुछ अनुप्रयोगों में लॉगिन कर सकती है।
|
||||||
|
|
||||||
यह उपयोगी है यह देखने के लिए कि क्या आप **कुछ अनुप्रयोगों में लॉगिन करने के लिए MFA की आवश्यकता नहीं है** जिसे आप बाद में **privileges बढ़ाने** के लिए दुरुपयोग कर सकते हैं।
|
यह उपयोगी है यह देखने के लिए कि क्या आपको कुछ अनुप्रयोगों में लॉगिन करने के लिए **MFA की आवश्यकता नहीं है** जिसे आप बाद में **privileges बढ़ाने** के लिए दुरुपयोग कर सकते हैं।
|
||||||
|
|
||||||
### [roadrecon](https://github.com/dirkjanm/ROADtools)
|
### [roadrecon](https://github.com/dirkjanm/ROADtools)
|
||||||
|
|
||||||
@@ -135,7 +143,7 @@ Invoke-MFASweep -Username <username> -Password <pass>
|
|||||||
```
|
```
|
||||||
### [donkeytoken](https://github.com/silverhack/donkeytoken)
|
### [donkeytoken](https://github.com/silverhack/donkeytoken)
|
||||||
|
|
||||||
Donkey token एक सेट फ़ंक्शंस का है जिसका उद्देश्य सुरक्षा सलाहकारों की मदद करना है जिन्हें Conditional Access Policies को मान्य करने, 2FA-सक्षम Microsoft पोर्टलों के लिए परीक्षण करने आदि की आवश्यकता होती है।
|
Donkey token एक सेट फ़ंक्शंस का है जिसका उद्देश्य सुरक्षा सलाहकारों की मदद करना है जिन्हें Conditional Access Policies को मान्य करने, 2FA-सक्षम Microsoft पोर्टल्स के लिए परीक्षण करने आदि की आवश्यकता होती है।
|
||||||
|
|
||||||
<pre class="language-powershell"><code class="lang-powershell"><strong>git clone https://github.com/silverhack/donkeytoken.git
|
<pre class="language-powershell"><code class="lang-powershell"><strong>git clone https://github.com/silverhack/donkeytoken.git
|
||||||
</strong><strong>Import-Module '.\donkeytoken' -Force
|
</strong><strong>Import-Module '.\donkeytoken' -Force
|
||||||
@@ -153,7 +161,7 @@ Invoke-MFATest -credential $cred -Verbose -Debug -InformationAction Continue
|
|||||||
$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
|
$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
|
||||||
Read-JWTtoken -token $token.access_token
|
Read-JWTtoken -token $token.access_token
|
||||||
```
|
```
|
||||||
मान लीजिए कि टोकन में Sites.Read.All (Sharepoint से) की अनुमति है, भले ही आप MFA के कारण वेब से Sharepoint तक पहुँच नहीं पा रहे हैं, फिर भी आप उत्पन्न टोकन के साथ फ़ाइलों तक पहुँचने के लिए टोकन का उपयोग कर सकते हैं:
|
मान लीजिए कि टोकन के पास Sites.Read.All (Sharepoint से) की अनुमति है, भले ही आप MFA के कारण वेब से Sharepoint तक पहुँच नहीं पा रहे हैं, फिर भी आप उत्पन्न टोकन के साथ फ़ाइलों तक पहुँचने के लिए टोकन का उपयोग कर सकते हैं:
|
||||||
```bash
|
```bash
|
||||||
$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl
|
$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user