Az - Storage Privesc

Reading time: 7 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें

Storage Privesc

स्टोरेज के बारे में अधिक जानकारी के लिए देखें:

Az - Storage Accounts & Blobs

Microsoft.Storage/storageAccounts/listkeys/action

इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के एक्सेस की के (और गुप्त मानों) को सूचीबद्ध करने में सक्षम होगा। जिससे प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकार बढ़ाने की अनुमति मिलती है।

bash
az storage account keys list --account-name <acc-name>

Microsoft.Storage/storageAccounts/regenerateKey/action

इस अनुमति के साथ एक प्रिंसिपल स्टोरेज खातों के एक्सेस की के नए गुप्त मान को नवीनीकरण और प्राप्त करने में सक्षम होगा। यह प्रिंसिपल को स्टोरेज खातों पर अपने विशेषाधिकारों को बढ़ाने की अनुमति देता है।

इसके अलावा, प्रतिक्रिया में, उपयोगकर्ता को नवीनीकृत कुंजी का मान और नवीनीकृत न होने वाली कुंजी का मान भी प्राप्त होगा:

bash
az storage account keys renew --account-name <acc-name> --key key2

Microsoft.Storage/storageAccounts/write

इस अनुमति के साथ एक प्रिंसिपल एक मौजूदा स्टोरेज अकाउंट को बनाने या अपडेट करने में सक्षम होगा, किसी भी सेटिंग को अपडेट करते हुए जैसे नेटवर्क नियम या नीतियाँ।

bash
# e.g. set default action to allow so network restrictions are avoided
az storage account update --name <acc-name> --default-action Allow

# e.g. allow an IP address
az storage account update --name <acc-name> --add networkRuleSet.ipRules value=<ip-address>

Blobs Specific privesc

Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/write | Microsoft.Storage/storageAccounts/blobServices/containers/immutabilityPolicies/delete

पहली अनुमति कंटेनरों में अम्यूटेबिलिटी नीतियों को संशोधित करने की अनुमति देती है और दूसरी उन्हें हटाने की अनुमति देती है।

note

ध्यान दें कि यदि एक अम्यूटेबिलिटी नीति लॉक स्थिति में है, तो आप इनमें से कोई भी कार्य नहीं कर सकते।

bash
az storage container immutability-policy delete \
--account-name <STORAGE_ACCOUNT_NAME> \
--container-name <CONTAINER_NAME> \
--resource-group <RESOURCE_GROUP>

az storage container immutability-policy update \
--account-name <STORAGE_ACCOUNT_NAME> \
--container-name <CONTAINER_NAME> \
--resource-group <RESOURCE_GROUP> \
--period <NEW_RETENTION_PERIOD_IN_DAYS>

फ़ाइल शेयर विशेष प्रिवेस्क

Microsoft.Storage/storageAccounts/fileServices/takeOwnership/action

यह एक उपयोगकर्ता को इस अनुमति के साथ साझा फ़ाइल सिस्टम के अंदर फ़ाइलों का स्वामित्व लेने की अनुमति देनी चाहिए।

Microsoft.Storage/storageAccounts/fileServices/fileshares/files/modifypermissions/action

यह एक उपयोगकर्ता को इस अनुमति के साथ साझा फ़ाइल सिस्टम के अंदर फ़ाइलों की अनुमतियों को संशोधित करने की अनुमति देनी चाहिए।

Microsoft.Storage/storageAccounts/fileServices/fileshares/files/actassuperuser/action

यह एक उपयोगकर्ता को इस अनुमति के साथ फ़ाइल सिस्टम के अंदर सुपरयूज़र के रूप में क्रियाएँ करने की अनुमति देनी चाहिए।

Microsoft.Storage/storageAccounts/localusers/write (Microsoft.Storage/storageAccounts/localusers/read)

इस अनुमति के साथ, एक हमलावर एक नए स्थानीय उपयोगकर्ता को Azure Storage खाते (जो हायरार्किकल नेमस्पेस के साथ कॉन्फ़िगर किया गया है) के लिए बना और अपडेट कर सकता है (यदि उसके पास Microsoft.Storage/storageAccounts/localusers/read अनुमति है), जिसमें उपयोगकर्ता की अनुमतियाँ और होम डायरेक्टरी निर्दिष्ट करना शामिल है। यह अनुमति महत्वपूर्ण है क्योंकि यह हमलावर को विशिष्ट अनुमतियों जैसे पढ़ने (r), लिखने (w), हटाने (d), और सूची (l) आदि के साथ एक स्टोरेज खाते को अपने लिए प्रदान करने की अनुमति देती है। इसके अतिरिक्त, जो प्रमाणीकरण विधियाँ इसका उपयोग करती हैं, वे Azure-जनित पासवर्ड और SSH कुंजी जोड़े हो सकते हैं। यह जांच नहीं की जाती है कि क्या कोई उपयोगकर्ता पहले से मौजूद है, इसलिए आप पहले से मौजूद अन्य उपयोगकर्ताओं को ओवरराइट कर सकते हैं। हमलावर अपनी विशेषताओं को बढ़ा सकता है और स्टोरेज खाते तक SSH पहुंच प्राप्त कर सकता है, संभावित रूप से संवेदनशील डेटा को उजागर या समझौता कर सकता है।

bash
az storage account local-user create \
--account-name <STORAGE_ACCOUNT_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--name <LOCAL_USER_NAME> \
--permission-scope permissions=rwdl service=blob resource-name=<CONTAINER_NAME> \
--home-directory <HOME_DIRECTORY> \
--has-ssh-key false/true # Depends on the auth method to use

Microsoft.Storage/storageAccounts/localusers/regeneratePassword/action

इस अनुमति के साथ, एक हमलावर Azure Storage खाते में एक स्थानीय उपयोगकर्ता के लिए पासवर्ड को फिर से उत्पन्न कर सकता है। यह हमलावर को उपयोगकर्ता के लिए नए प्रमाणीकरण क्रेडेंशियल (जैसे SSH या SFTP पासवर्ड) प्राप्त करने की क्षमता देता है। इन क्रेडेंशियल का लाभ उठाकर, हमलावर स्टोरेज खाते में अनधिकृत पहुंच प्राप्त कर सकता है, फ़ाइल ट्रांसफर कर सकता है, या स्टोरेज कंटेनरों के भीतर डेटा में हेरफेर कर सकता है। इससे डेटा लीक, भ्रष्टाचार, या स्टोरेज खाते की सामग्री में दुर्भावनापूर्ण संशोधन हो सकता है।

bash
az storage account local-user regenerate-password \
--account-name <STORAGE_ACCOUNT_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--name <LOCAL_USER_NAME>

Azure Blob Storage को SFTP के माध्यम से एक्सेस करने के लिए (is_hns_enabled को true होना चाहिए) एक स्थानीय उपयोगकर्ता के माध्यम से SFTP का उपयोग करते हुए आप (आप कनेक्ट करने के लिए ssh कुंजी का भी उपयोग कर सकते हैं):

bash
sftp <storage-account-name>.<local-user-name>@<storage-account-name>.blob.core.windows.net
#regenerated-password

Microsoft.Storage/storageAccounts/restoreBlobRanges/action, Microsoft.Storage/storageAccounts/blobServices/containers/read, Microsoft.Storage/storageAccounts/read && Microsoft.Storage/storageAccounts/listKeys/action

इन अनुमतियों के साथ, एक हमलावर एक हटाए गए कंटेनर को उसके हटाए गए संस्करण ID को निर्दिष्ट करके पुनर्स्थापित कर सकता है या एक कंटेनर के भीतर विशिष्ट ब्लॉब को अनहटाने कर सकता है, यदि वे पहले से सॉफ्ट-डिलीट किए गए थे। यह विशेषाधिकार वृद्धि एक हमलावर को संवेदनशील डेटा को पुनर्प्राप्त करने की अनुमति दे सकती है जिसे स्थायी रूप से हटाया जाना था, संभावित रूप से अनधिकृत पहुंच की ओर ले जा सकती है।

bash
#Restore the soft deleted container
az storage container restore \
--account-name <STORAGE_ACCOUNT_NAME> \
--name <CONTAINER_NAME> \
--deleted-version <VERSION>

#Restore the soft deleted blob
az storage blob undelete \
--account-name <STORAGE_ACCOUNT_NAME> \
--container-name <CONTAINER_NAME> \
--name "fileName.txt"

Microsoft.Storage/storageAccounts/fileServices/shares/restore/action && Microsoft.Storage/storageAccounts/read

इन अनुमतियों के साथ, एक हमलावर एक हटाए गए Azure फ़ाइल शेयर को उसके हटाए गए संस्करण ID को निर्दिष्ट करके पुनर्स्थापित कर सकता है। यह विशेषाधिकार वृद्धि एक हमलावर को संवेदनशील डेटा को पुनर्प्राप्त करने की अनुमति दे सकती है जिसे स्थायी रूप से हटाया जाना था, जो संभावित रूप से अनधिकृत पहुंच की ओर ले जा सकता है।

bash
az storage share-rm restore \
--storage-account <STORAGE_ACCOUNT_NAME> \
--name <FILE_SHARE_NAME> \
--deleted-version <VERSION>

अन्य दिलचस्प दिखने वाली अनुमतियाँ (TODO)

  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/manageOwnership/action: ब्लॉब की स्वामित्व को बदलता है
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/modifyPermissions/action: ब्लॉब की अनुमतियों को संशोधित करता है
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/runAsSuperUser/action: ब्लॉब कमांड का परिणाम लौटाता है
  • Microsoft.Storage/storageAccounts/blobServices/containers/blobs/immutableStorage/runAsSuperUser/action

संदर्भ

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE) Azure हैकिंग सीखें और अभ्यास करें: HackTricks Training Azure Red Team Expert (AzRTE)

HackTricks का समर्थन करें