Azure Pentesting
मैं अभी भी AZURE METHODOLOGY बना रहा हूँ
Basic Information
Az - Basic InformationAzure Pentester/Red Team Methodology
एक AZURE environment का ऑडिट करने के लिए यह जानना बहुत महत्वपूर्ण है: कौन से services उपयोग किए जा रहे हैं, क्या exposed हो रहा है, किसके पास किस चीज़ का access है, और आंतरिक Azure services और external services कैसे जुड़े हुए हैं।
Red Team के दृष्टिकोण से, Azure environment को compromise करने का पहला कदम कुछ credentials प्राप्त करना है Azure AD के लिए। यहाँ कुछ विचार दिए गए हैं कि यह कैसे किया जा सकता है:
github (या समान) में Leaks - OSINT
Social Engineering
Password पुन: उपयोग (password leaks)
Azure-Hosted Applications में Vulnerabilities
Server Side Request Forgery metadata endpoint तक पहुंच के साथ
Local File Read
/home/USERNAME/.azure
C:\Users\USERNAME\.azure
az cli
मेंaccessTokens.json
फ़ाइल 2.30 से पहले - Jan2022 - ने access tokens को स्पष्ट पाठ में संग्रहीत कियाazureProfile.json
फ़ाइल में लॉग इन किए गए उपयोगकर्ता के बारे में जानकारी होती है।az logout
token को हटा देता है।Az PowerShell
के पुराने संस्करणों ने access tokens को clear पाठ मेंTokenCache.dat
में संग्रहीत किया। इसने ServicePrincipalSecret को clear-पाठ मेंAzureRmContext.json
में भी संग्रहीत किया।Save-AzContext
cmdlet का उपयोग tokens को store करने के लिए किया जा सकता है। उन्हें हटाने के लिएDisconnect-AzAccount
का उपयोग करें।3rd parties breached
Internal कर्मचारी
Common Phishing (credentials या Oauth App)
भले ही आपने उस Azure tenant के अंदर किसी भी उपयोगकर्ता को compromise नहीं किया है जिसे आप अटैक कर रहे हैं, आप उससे कुछ जानकारी एकत्र कर सकते हैं:
Az - Unauthenticated Enum & Initial Entryएक बार जब आप credentials प्राप्त कर लेते हैं, तो आपको यह जानना होगा कि वे credentials किसके हैं, और उनके पास किस चीज़ का access है, इसलिए आपको कुछ बुनियादी enumeration करना होगा:
Basic Enumeration
याद रखें कि enumeration का सबसे शोरगुल वाला हिस्सा login है, न कि enumeration स्वयं।
SSRF
यदि आपने Azure के अंदर किसी मशीन में SSRF पाया है तो इस पेज पर ट्रिक्स देखें:
Login Conditions को Bypass करें
ऐसे मामलों में जहां आपके पास कुछ वैध credentials हैं लेकिन आप लॉगिन नहीं कर सकते, ये कुछ सामान्य सुरक्षा उपाय हो सकते हैं:
IP whitelisting -- आपको एक वैध IP को compromise करना होगा
Geo restrictions -- पता लगाएं कि उपयोगकर्ता कहाँ रहता है या कंपनी के कार्यालय कहाँ हैं और उसी शहर (या कम से कम देश) से एक IP प्राप्त करें
Browser -- हो सकता है कि केवल एक निश्चित OS (Windows, Linux, Mac, Android, iOS) से ब्राउज़र की अनुमति हो। पता लगाएं कि पीड़ित/कंपनी कौन सा OS उपयोग करती है।
आप Service Principal credentials को भी compromise करने का प्रयास कर सकते हैं क्योंकि वे आमतौर पर कम सीमित होते हैं और उनका लॉगिन कम समीक्षा किया जाता है
इसे बायपास करने के बाद, आप अपने प्रारंभिक सेटअप पर वापस जा सकते हैं और आपके पास अभी भी access होगा।
Subdomain Takeover
Whoami
जानें कैसे स्थापित करें az cli, AzureAD और Az PowerShell Az - AzureAD अनुभाग में।
पहली चीजों में से एक जो आपको जानने की आवश्यकता है वह है आप कौन हैं (आप किस environment में हैं):
Azure को enumerate करने के लिए सबसे महत्वपूर्ण commands में से एक है Get-AzResource
Az PowerShell से, क्योंकि यह आपको उन resources के बारे में जानने देता है जिन पर आपके वर्तमान उपयोगकर्ता की visibility है।
आप web console में जाकर भी वही जानकारी प्राप्त कर सकते हैं https://portal.azure.com/#view/HubsExtension/BrowseAll या "All resources" खोजकर।
AzureAD Enumeration
डिफ़ॉल्ट रूप से, किसी भी उपयोगकर्ता के पास पर्याप्त permissions होनी चाहिए जैसे कि, users, groups, roles, service principals... (देखें default AzureAD permissions)। आप यहां एक गाइड पा सकते हैं:
Az - AzureAD (AAD)अब जब आपके पास अपने credentials के बारे में कुछ जानकारी है (और यदि आप red team हैं तो उम्मीद है कि आप पता नहीं चले हैं)। अब यह पता लगाने का समय है कि environment में कौन-कौन सी services उपयोग की जा रही हैं। अगले section में आप कुछ सामान्य services को enumerate करने के कुछ तरीके देख सकते हैं।
Service Principal और Access Policy
एक Azure service के पास System Identity (service स्वयं की) हो सकती है या User Assigned Managed Identity का उपयोग कर सकती है। इस Identity के पास Access Policy हो सकती है, उदाहरण के लिए, एक KeyVault से secrets पढ़ने के लिए। ये Access Policies सीमित होनी चाहिए (least privilege principle), लेकिन इनमें आवश्यक से अधिक permissions हो सकती हैं। आमतौर पर एक App Service KeyVault का उपयोग secrets और certificates प्राप्त करने के लिए करेगी।
इसलिए इन identities को explore करना उपयोगी है।
App Service SCM
App Service 'container' में लॉग इन करने के लिए Kudu console।
Webshell
portal.azure.com का उपयोग करें और shell चुनें, या shell.azure.com का उपयोग करें, bash या powershell के लिए। इस shell का 'disk' एक image file के रूप में storage-account में संग्रहीत होता है।
Azure DevOps
Azure DevOps Azure से अलग है। इसमें repositories, pipelines (yaml या release), boards, wiki, और अधिक होते हैं। Variable Groups का उपयोग variable values और secrets को संग्रहीत करने के लिए किया जाता है।
Automated Recon Tools
Azucar एक Azure सुरक्षा ऑडिटिंग टूल है जो Azure सब्सक्रिप्शन के विभिन्न पहलुओं का मूल्यांकन करता है। यह टूल Azure संसाधनों की सुरक्षा स्थिति की जांच करने के लिए विभिन्न मॉड्यूल प्रदान करता है।
PowerZure एक PowerShell स्क्रिप्ट है जो Azure के खिलाफ विभिन्न कार्यों को निष्पादित करने के लिए उपयोग की जाती है। यह स्क्रिप्ट Azure के संसाधनों को सूचीबद्ध करने, जानकारी निकालने, और संभावित कमजोरियों का परीक्षण करने में मदद करती है।
Last updated