
Azure और Azure Active Directory ऑब्जेक्ट्स का ग्राफ बनाने के लिए Azure Red Team उपकरण

Stormspotter, किसी Azure सब्सक्रिप्शन में संसाधनों का एक "आक्रमण ग्राफ़" (attack graph) बनाता है। यह रेड टीमों और पेंटेस्टर्स को किसी टेनेंट के भीतर हमले की सतह और पिवट अवसरों को देखने में सक्षम बनाता है, और आपके डिफ़ेंडरों को घटना प्रतिक्रिया कार्य को जल्दी से उन्मुख और प्राथमिकता देने में सुपरचार्ज करता है।
अधिकांश उपयोगकर्ताओं को Stormspotter को डॉकर के माध्यम से स्थापित करना आसान लग सकता है। यह अनुशंसित विधि है।
git clone https://github.com/Azure/Stormspotter
docker-compose up
docker-compose फ़ाइल तीन कंटेनर बनाएगी:
डिफ़ॉल्ट रूप से, Stormspotter कंटेनर पोर्ट 9091 पर UI को उजागर करेगा। neo4j कंटेनर neo4j को पोर्ट 7474 (HTTP) और 7687 (Bolt) पर उजागर करेगा। Neo4j के डिफ़ॉल्ट कॉन्फ़िगरेशन में SSL सक्षम नहीं है, इसलिए आप शुरू में पोर्ट 7474 पर neo4j इंटरफ़ेस से सीधे संपर्क कर सकते हैं।
नोट: वर्तमान में, Stormspotter केवल इन कंटेनरों को स्थानीय रूप से चलाने का समर्थन करता है। दूरस्थ रूप से होस्ट किए गए फ्रंटएंड पर अपलोड करने का प्रयास असफल होगा, लेकिन भविष्य में इस व्यवहार में बदलाव की उम्मीद है।
neo4j के लिए डिफ़ॉल्ट क्रेडेंशियल हैं: neo4j/password। आप इसे docker-compose फ़ाइल में NEO4JAUTH पर्यावरण चर के माध्यम से बदल सकते हैं।
यदि आप डॉकर के बिना Stormspotter चलाना चुनते हैं, तो आपके पास Python 3.8, NodeJS/npm, और Neo4j स्थापित होना चाहिए। आप नवीनतम Stormspotter रिलीज़ यहाँ से भी प्राप्त कर सकते हैं।
डेटा को Neo4j में पार्स करने वाला बैकएंड FastAPI के साथ बनाया गया है। यदि आप डेटाबेस के लिए नई सामग्री अपलोड करने की योजना नहीं बनाते हैं, तो आपको बैकएंड को बिल्कुल भी चलाने की आवश्यकता नहीं हो सकती है। बैकएंड पोर्ट 9090 पर चलने के लिए कॉन्फ़िगर किया गया है। आप app.py की पंक्ति 5 पर पोर्ट नंबर बदलकर इसे बदल सकते हैं। यदि आप ऐसा करते हैं, तो आपको DatabaseView Component में Q-Uploader घटक में पोर्ट भी बदलना होगा ताकि फ्रंटएंड से अपलोड उस सही पोर्ट पर भेजे जाएँ जहाँ बैकएंड स्थित है।
cd backend
python3 ssbackend.pyz
वेब ऐप Vue और Quasar Framework का उपयोग करके विकसित किया गया है। सिंगल-पेज ऐप (SPA) आपके लिए बनाया गया है और frontend/dist/spa में स्थित है। इस निर्देशिका को सेवा करने के लिए:
npm install -g @quasar/cli
cd frontend/dist/spa
quasar serve -p 9091 --history
इसके बाद आप अपने ब्राउज़र में http://localhost:9091 पर जा सकते हैं।
Stormcollector, Stormspotter का वह हिस्सा है जो आपको प्रदान किए गए क्रेडेंशियल्स तक पहुँच वाले सब्सक्रिप्शनों को गणना (enumerate) करने की अनुमति देता है। Stormcollector का उपयोग करने का अनुशंसित तरीका है कि sscollector.pyz पैकेज चलाएँ, जो आपके ऑपरेटिंग सिस्टम के लिए रिलीज़ फ़ाइल में पाया जाता है। यह PYZ Shiv के साथ बनाया गया है और सभी पैकेज पहले से ज़िप किए हुए आते हैं! निर्भरताएँ उपयोगकर्ता की होम निर्देशिका में .shiv फ़ोल्डर में स्वयं को निकाल लेंगी।
cd stormcollector
python3 sscollector.pyz -h
यदि किसी कारण से आप प्रदान किए गए पैकेज का उपयोग नहीं करना चाहते हैं, तो आप pip या pipenv के साथ आवश्यक पैकेज स्थापित कर सकते हैं। इस दृष्टिकोण के साथ, पैकेज विरोध को रोकने के लिए Stormcollector को वर्चुअल वातावरण में स्थापित करने की अत्यधिक अनुशंसा की जाती है। यदि आपको अपने वर्चुअल वातावरण प्रबंधित करने में समस्या है, तो आपको ऊपर दी गई अनुशंसित विधि का उपयोग करना चाहिए।
cd stormcollector
python3 -m pip install pipenv
pipenv install .
python3 ./sscollector.py
वर्तमान समर्थित लॉगिन प्रकार:
az login का उपयोग करना होगा)आप ऊपर दिखाए अनुसार -h स्विच का उपयोग करके Stormcollector द्वारा प्रदान किए गए सभी विकल्पों की जांच कर सकते हैं। Stormcollector के सबसे बुनियादी उपयोग हैं:
python3 sscollector.pyz cli
python3 sscollector.pyz spn -t <tenant> -c <clientID> -s <clientSecret>
सभी प्रमाणीकरण प्रकारों के लिए सामान्य विकल्प
परिणाम अपलोड करना
एक बार जब आप UI शुरू कर लेते हैं, तो आपको डेटाबेस टैब में "Stormcollector Upload" नामक एक अनुभाग दिखाई देगा। अपनी फ़ाइल को इस अपलोडर में जोड़ें और प्रसंस्करण शुरू हो जाएगा। जैसे-जैसे परिणाम संसाधित होते हैं, आप प्रगति देखने के लिए बैकएंड लॉग की जांच कर सकते हैं, और परिणाम उसी Database View टैब में भी दिखाई देने चाहिए।
KeyVault पर अनुमतियाँ देखें

Azure AD भूमिका के सदस्य दिखाएँ

इनकमिंग और आउटगोइंग संबंध दिखाएँ

यह परियोजना योगदान और सुझावों का स्वागत करती है। अधिकांश योगदानों के लिए आपको एक योगदानकर्ता लाइसेंस अनुबंध (CLA) से सहमत होना आवश्यक है जो घोषित करता है कि आपके पास हमें आपके योगदान का उपयोग करने का अधिकार है, और वास्तव में करते हैं। विवरण के लिए, https://cla.opensource.microsoft.com पर जाएँ।
जब आप एक पुल रिक्वेस्ट सबमिट करते हैं, तो एक CLA बॉट स्वचालित रूप से निर्धारित करेगा कि क्या आपको CLA प्रदान करने की आवश्यकता है और PR को उचित रूप से सजाएगा (जैसे, स्थिति जाँच, टिप्पणी)। बस बॉट द्वारा प्रदान किए गए निर्देशों का पालन करें। आपको हमारे CLA का उपयोग करने वाले सभी रिपॉजिटरी में ऐसा केवल एक बार करने की आवश्यकता होगी।
इस परियोजना ने Microsoft Open Source Code of Conduct को अपनाया है। अधिक जानकारी के लिए Code of Conduct FAQ देखें या किसी अतिरिक्त प्रश्न या टिप्पणी के लिए [email protected] से संपर्क करें।