mirror of
https://github.com/HackTricks-wiki/hacktricks-cloud.git
synced 2026-01-16 14:52:43 -08:00
Translated ['src/pentesting-cloud/azure-security/README.md', 'src/pentes
This commit is contained in:
@@ -12,50 +12,50 @@ az-basic-information/
|
||||
|
||||
## Azure Pentester/Red Team Methodology
|
||||
|
||||
AZURE वातावरण का ऑडिट करने के लिए यह बहुत महत्वपूर्ण है: कौन से **सेवाएँ उपयोग की जा रही हैं**, क्या **प्रदर्शित किया जा रहा है**, किसके पास **पहुँच** है, और आंतरिक Azure सेवाएँ और **बाहरी सेवाएँ** कैसे जुड़ी हुई हैं।
|
||||
AZURE वातावरण का ऑडिट करने के लिए यह जानना बहुत महत्वपूर्ण है: कौन से **सेवाएँ उपयोग की जा रही हैं**, क्या **प्रदर्शित किया जा रहा है**, किसके पास **पहुँच** है, और आंतरिक Azure सेवाएँ और **बाहरी सेवाएँ** कैसे जुड़ी हुई हैं।
|
||||
|
||||
Red Team के दृष्टिकोण से, **Azure वातावरण को समझौता करने का पहला कदम** कुछ **foothold** प्राप्त करना है।
|
||||
|
||||
### External enum & Initial Access
|
||||
|
||||
पहला कदम निश्चित रूप से उस टेनेन्ट के बारे में जानकारी इकट्ठा करना है जिसे आप हमला कर रहे हैं और एक foothold प्राप्त करने की कोशिश करना है।
|
||||
पहला कदम निश्चित रूप से उस टेनेन्ट के बारे में जानकारी इकट्ठा करना है जिसे आप हमला कर रहे हैं और foothold प्राप्त करने की कोशिश करना है।
|
||||
|
||||
डोमेन नाम के आधार पर यह जानना संभव है **क्या कंपनी Azure का उपयोग कर रही है**, **टेनेन्ट ID** प्राप्त करें, उसी टेनेन्ट में अन्य **मान्य डोमेन** प्राप्त करें (यदि अधिक हैं) और **संबंधित जानकारी** प्राप्त करें जैसे कि SSO सक्षम है या नहीं, मेल कॉन्फ़िगरेशन, मान्य उपयोगकर्ता ईमेल...
|
||||
|
||||
**बाहरी एन्यूमरेशन** करने के लिए निम्नलिखित पृष्ठ की जांच करें:
|
||||
**बाहरी एन्यूमरेशन** करने के लिए निम्नलिखित पृष्ठ देखें:
|
||||
|
||||
{{#ref}}
|
||||
az-unauthenticated-enum-and-initial-entry/
|
||||
{{#endref}}
|
||||
|
||||
इस जानकारी के साथ, foothold प्राप्त करने के लिए सबसे सामान्य तरीके हैं:
|
||||
- **OSINT**: GitHub या किसी अन्य ओपन-सोर्स प्लेटफॉर्म पर **leaks** की जांच करें जो **क्रेडेंशियल्स** या दिलचस्प जानकारी रख सकता है।
|
||||
- **Password** पुन: उपयोग, लीक या [password spraying](az-unauthenticated-enum-and-initial-entry/az-password-spraying.md)
|
||||
- एक कर्मचारी के लिए क्रेडेंशियल्स खरीदें
|
||||
- [**Common Phishing**](https://book.hacktricks.wiki/en/generic-methodologies-and-resources/phishing-methodology/index.html) (क्रेडेंशियल्स या Oauth ऐप)
|
||||
इस जानकारी के साथ foothold प्राप्त करने के लिए सबसे सामान्य तरीके हैं:
|
||||
- **OSINT**: GitHub या किसी अन्य ओपन-सोर्स प्लेटफॉर्म पर **leaks** की जांच करें जो **credentials** या दिलचस्प जानकारी हो सकती है।
|
||||
- **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)
|
||||
- [Device Code Authentication Phishing](az-unauthenticated-enum-and-initial-entry/az-device-code-authentication-phishing.md)
|
||||
- 3rd पार्टी **breached**
|
||||
- 3rd parties **breached**
|
||||
- Azure-Hosted Applications में कमजोरियाँ
|
||||
- [**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/)
|
||||
- **अन्य Azure सेवाओं की गलत कॉन्फ़िगरेशन**
|
||||
- यदि किसी डेवलपर का लैपटॉप समझौता किया गया है ([WinPEAS और LinPEAS](https://github.com/peass-ng/PEASS-ng) इस जानकारी को खोज सकते हैं):
|
||||
- **`<HOME>/.Azure`** के अंदर
|
||||
- **`azureProfile.json`** पिछले लॉगिन उपयोगकर्ताओं के बारे में जानकारी रखता है
|
||||
- **`azureProfile.json`** पिछले लॉग इन उपयोगकर्ताओं के बारे में जानकारी रखता है
|
||||
- **`clouds.config contains`** सब्सक्रिप्शन के बारे में जानकारी रखता है
|
||||
- **`service_principal_entries.json`** एप्लिकेशन क्रेडेंशियल्स (टेनेन्ट आईडी, क्लाइंट और सीक्रेट) रखता है। केवल Linux और macOS में
|
||||
- **`service_principal_entries.json`** एप्लिकेशन के credentials (टेनेन्ट आईडी, क्लाइंट और सीक्रेट) रखता है। केवल Linux और macOS में
|
||||
- **`msal_token_cache.json`** में एक्सेस टोकन और रिफ्रेश टोकन होते हैं। केवल Linux और macOS में
|
||||
- **`service_principal_entries.bin`** और msal_token_cache.bin Windows में उपयोग होते हैं और DPAPI के साथ एन्क्रिप्टेड होते हैं
|
||||
- **`msal_http_cache.bin`** HTTP अनुरोध का कैश है
|
||||
- इसे लोड करें: `with open("msal_http_cache.bin", 'rb') as f: pickle.load(f)`
|
||||
- **`AzureRmContext.json`** पिछले लॉगिन के बारे में जानकारी रखता है जो Az PowerShell का उपयोग करके किया गया था (लेकिन कोई क्रेडेंशियल्स नहीं)
|
||||
- **`C:\Users\<username>\AppData\Local\Microsoft\IdentityCache\*`** के अंदर कई `.bin` फ़ाइलें हैं जिनमें **एक्सेस टोकन**, आईडी टोकन और उपयोगकर्ता DPAPI के साथ एन्क्रिप्टेड खाता जानकारी होती है।
|
||||
- **`C:\Users\<username>\AppData\Local\Microsoft\TokenBroken\Cache\`** के अंदर `.tbres` फ़ाइलों में अधिक **एक्सेस टोकन** मिल सकते हैं, जो DPAPI के साथ बेस64 एन्क्रिप्टेड होते हैं।
|
||||
- Linux और macOS में आप Az PowerShell (यदि उपयोग किया गया हो) से **एक्सेस टोकन, रिफ्रेश टोकन और आईडी टोकन** प्राप्त कर सकते हैं `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` चलाकर
|
||||
- Windows में यह केवल आईडी टोकन उत्पन्न करता है।
|
||||
- यह देखना संभव है कि क्या Az PowerShell का उपयोग Linux और macOS में किया गया था यह जांचकर कि `$HOME/.local/share/.IdentityService/` मौजूद है (हालांकि इसमें मौजूद फ़ाइलें खाली और बेकार हैं)
|
||||
- **`AzureRmContext.json`** Az PowerShell का उपयोग करके पिछले लॉगिन के बारे में जानकारी रखता है (लेकिन कोई credentials नहीं)
|
||||
- **`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 होते हैं।
|
||||
- Linux और macOS में आप Az PowerShell (यदि उपयोग किया गया हो) से **access tokens, refresh tokens और id tokens** प्राप्त कर सकते हैं `pwsh -Command "Save-AzContext -Path /tmp/az-context.json"` चलाकर
|
||||
- Windows में यह केवल ID tokens उत्पन्न करता है।
|
||||
- यह देखना संभव है कि क्या Az PowerShell का उपयोग Linux और macOS में किया गया था, यह जांचकर कि `$HOME/.local/share/.IdentityService/` मौजूद है (हालांकि इसमें मौजूद फ़ाइलें खाली और बेकार हैं)
|
||||
|
||||
फुटहोल्ड की ओर ले जाने वाली **अन्य Azure सेवाओं की गलत कॉन्फ़िगरेशन** खोजें निम्नलिखित पृष्ठ पर:
|
||||
फुटहोल प्राप्त करने के लिए **अन्य Azure सेवाओं की गलत कॉन्फ़िगरेशन** खोजें निम्नलिखित पृष्ठ पर:
|
||||
|
||||
{{#ref}}
|
||||
az-unauthenticated-enum-and-initial-entry/
|
||||
@@ -72,19 +72,25 @@ az-unauthenticated-enum-and-initial-entry/
|
||||
az-enumeration-tools.md
|
||||
{{#endref}}
|
||||
|
||||
### Bypass Login Conditions
|
||||
### Bypass Access Policies
|
||||
|
||||
<figure><img src="../../images/image (268).png" alt=""><figcaption></figcaption></figure>
|
||||
|
||||
उन मामलों में जहाँ आपके पास कुछ मान्य क्रेडेंशियल्स हैं लेकिन आप लॉगिन नहीं कर सकते, ये कुछ सामान्य सुरक्षा उपाय हैं जो लागू हो सकते हैं:
|
||||
उन मामलों में जहाँ आपके पास कुछ मान्य credentials हैं लेकिन आप लॉगिन नहीं कर सकते, ये कुछ सामान्य सुरक्षा उपाय हैं जो लागू हो सकते हैं:
|
||||
|
||||
- **IP whitelisting** -- आपको एक मान्य IP से समझौता करने की आवश्यकता है
|
||||
- **IP whitelisting** -- आपको एक मान्य IP से समझौता करना होगा
|
||||
- **Geo restrictions** -- पता करें कि उपयोगकर्ता कहाँ रहता है या कंपनी के कार्यालय कहाँ हैं और उसी शहर (या कम से कम देश) से एक IP प्राप्त करें
|
||||
- **Browser** -- शायद केवल कुछ OS (Windows, Linux, Mac, Android, iOS) से एक ब्राउज़र की अनुमति है। पता करें कि पीड़ित/कंपनी कौन सा OS उपयोग करती है।
|
||||
- आप **Service Principal क्रेडेंशियल्स** से भी समझौता करने की कोशिश कर सकते हैं क्योंकि ये आमतौर पर कम सीमित होते हैं और इसका लॉगिन कम समीक्षा किया जाता है
|
||||
- **Browser** -- शायद केवल कुछ OS (Windows, Linux, Mac, Android, iOS) से एक ब्राउज़र की अनुमति है। पता करें कि पीड़ित/कंपनी कौन सा OS उपयोग कर रही है।
|
||||
- आप **Service Principal credentials** को भी समझौता करने की कोशिश कर सकते हैं क्योंकि ये आमतौर पर कम सीमित होते हैं और इसका लॉगिन कम समीक्षा किया जाता है
|
||||
|
||||
इसे बायपास करने के बाद, आप अपनी प्रारंभिक सेटअप पर वापस जाने में सक्षम हो सकते हैं और आपके पास अभी भी पहुँच होगी।
|
||||
|
||||
जांचें:
|
||||
|
||||
{{#ref}}
|
||||
az-privilege-escalation/az-entraid-privesc/az-conditional-access-policies-mfa-bypass.md
|
||||
{{#endref}}
|
||||
|
||||
### Whoami
|
||||
|
||||
> [!CAUTION]
|
||||
@@ -135,7 +141,7 @@ Get-AzureADTenantDetail
|
||||
{{#endtabs }}
|
||||
|
||||
|
||||
### Entra ID Enumeration & Privilege Escalation
|
||||
### Entra ID Enumeration & Privesc
|
||||
|
||||
डिफ़ॉल्ट रूप से, किसी भी उपयोगकर्ता को **उपयोगकर्ताओं, समूहों, भूमिकाओं, सेवा प्रमुखों** जैसी चीजों को सूचीबद्ध करने के लिए **पर्याप्त अनुमतियाँ होनी चाहिए**... (चेक [default AzureAD permissions](az-basic-information/index.html#default-user-permissions)).\
|
||||
यहाँ एक गाइड है:
|
||||
@@ -151,25 +157,25 @@ az-enumeration-tools.md#automated-post-exploitation-tools
|
||||
{{#endref}}
|
||||
|
||||
|
||||
### Enumerate Azure Services
|
||||
### Azure Enumeration
|
||||
|
||||
एक बार जब आप जान लेते हैं कि आप कौन हैं, तो आप **Azure सेवाओं को सूचीबद्ध करना शुरू कर सकते हैं जिन तक आपकी पहुँच है**।
|
||||
एक बार जब आप जान लेते हैं कि आप कौन हैं, तो आप **Azure सेवाओं की सूचीबद्धता शुरू कर सकते हैं जिन तक आपकी पहुँच है**।
|
||||
|
||||
आपको यह पता लगाना चाहिए कि आपके पास **संसाधनों पर क्या अनुमतियाँ हैं**। इसके लिए:
|
||||
|
||||
1. **उस संसाधन को खोजें जिसके लिए आपके पास कुछ पहुँच है**:
|
||||
|
||||
Az PoswerShell कमांड **`Get-AzResource`** आपको **जानकारी देता है कि आपके वर्तमान उपयोगकर्ता के पास कौन से संसाधनों पर दृश्यता है**।
|
||||
Az PoswerShell कमांड **`Get-AzResource`** आपको **जानकारी देता है कि आपके वर्तमान उपयोगकर्ता के पास किन संसाधनों पर दृश्यता है**।
|
||||
|
||||
इसके अलावा, आप **वेब कंसोल** में जाकर या "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" के लिए खोजकर या निष्पादित करके वही जानकारी प्राप्त कर सकते हैं: `az rest --method GET --url "https://management.azure.com/subscriptions/<subscription-id>/resources?api-version=2021-04-01"`
|
||||
|
||||
2. **उन संसाधनों पर आपके पास जो अनुमतियाँ हैं उन्हें खोजें और आपके लिए असाइन की गई भूमिकाएँ खोजें**:
|
||||
2. **उन संसाधनों पर आपके पास जो अनुमतियाँ हैं उन्हें खोजें जिन तक आपकी पहुँच है और आपके लिए असाइन की गई भूमिकाएँ खोजें**:
|
||||
|
||||
ध्यान दें कि आपको इस क्रिया को निष्पादित करने के लिए अनुमति **`Microsoft.Authorization/roleAssignments/read`** की आवश्यकता है।
|
||||
|
||||
इसके अलावा, पर्याप्त अनुमतियों के साथ, भूमिका **`Get-AzRoleAssignment`** का उपयोग **सदस्यता में सभी भूमिकाओं को सूचीबद्ध करने** या एक विशिष्ट संसाधन पर अनुमति प्राप्त करने के लिए किया जा सकता है जैसे: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/resourceGroups/Resource_Group_1/providers/Microsoft.RecoveryServices/vaults/vault-m3ww8ut4`**।
|
||||
इसके अलावा, पर्याप्त अनुमतियों के साथ, भूमिका **`Get-AzRoleAssignment`** का उपयोग **सदस्यता में सभी भूमिकाओं की सूचीबद्धता** करने या एक विशिष्ट संसाधन पर अनुमति प्राप्त करने के लिए किया जा सकता है जैसे: **`Get-AzRoleAssignment -Scope /subscriptions/9291ff6e-6afb-430e-82a4-6f04b2d05c7f/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"`** चलाकर जैसे:
|
||||
यह जानकारी प्राप्त करने के लिए **`az rest --method GET --uri "https://management.azure.com/<Scope>/providers/Microsoft.Authorization/roleAssignments?api-version=2020-08-01-preview" | jq ".value"`** चलाना भी संभव है जैसे:
|
||||
|
||||
- **`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"`**
|
||||
|
||||
@@ -186,7 +192,7 @@ Az PoswerShell कमांड **`Get-AzResource`** आपको **जानक
|
||||
az-services/
|
||||
{{#endref}}
|
||||
|
||||
### Privilege Escalation, Post-Exploitation & Persistence in Azure Services
|
||||
### Privilege Escalation, Post-Exploitation & Persistence
|
||||
|
||||
एक बार जब आप जान लेते हैं कि Azure वातावरण कैसे संरचित है और कौन सी सेवाएँ उपयोग की जा रही हैं, तो आप **अनुमतियों को बढ़ाने, पार्श्व रूप से स्थानांतरित करने, अन्य पोस्ट-एक्सप्लॉइटेशन हमलों को करने और स्थिरता बनाए रखने** के तरीकों की तलाश शुरू कर सकते हैं।
|
||||
|
||||
|
||||
Reference in New Issue
Block a user