Az - Conditional Access Policies & MFA Bypass
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Azure Conditional Access नीतियाँ Microsoft Azure में नियम हैं जो Azure सेवाओं और अनुप्रयोगों तक पहुँच नियंत्रण को लागू करने के लिए कुछ शर्तों के आधार पर स्थापित की जाती हैं। ये नीतियाँ संगठनों को सही परिस्थितियों में सही पहुँच नियंत्रण लागू करके अपने संसाधनों को सुरक्षित रखने में मदद करती हैं। Conditional access नीतियाँ मूल रूप से यह परिभाषित करती हैं कि कौन क्या कहाँ और कैसे पहुँच सकता है।
यहाँ कुछ उदाहरण दिए गए हैं:
साइन-इन जोखिम नीति: यह नीति तब लागू की जा सकती है जब साइन-इन जोखिम का पता लगाया जाता है, जिसमें बहु-कारक प्रमाणीकरण (MFA) की आवश्यकता हो सकती है। उदाहरण के लिए, यदि किसी उपयोगकर्ता का लॉगिन व्यवहार उनके नियमित पैटर्न की तुलना में असामान्य है, जैसे कि किसी अन्य देश से लॉगिन करना, तो सिस्टम अतिरिक्त प्रमाणीकरण के लिए संकेत दे सकता है।
डिवाइस अनुपालन नीति: यह नीति केवल उन उपकरणों तक पहुँच को प्रतिबंधित कर सकती है जो संगठन के सुरक्षा मानकों के अनुपालन में हैं। उदाहरण के लिए, केवल उन उपकरणों से पहुँच की अनुमति दी जा सकती है जिनमें अद्यतन एंटीवायरस सॉफ़्टवेयर है या जो एक निश्चित ऑपरेटिंग सिस्टम संस्करण चला रहे हैं।
यह संभव है कि एक conditional access नीति कुछ जानकारी की जाँच कर रही हो जिसे आसानी से छेड़ा जा सकता है जिससे नीति का बायपास किया जा सके। और यदि उदाहरण के लिए नीति MFA को कॉन्फ़िगर कर रही थी, तो हमलावर इसे बायपास करने में सक्षम होगा।
एक conditional access नीति को कॉन्फ़िगर करते समय यह आवश्यक है कि प्रभावित उपयोगकर्ताओं और लक्षित संसाधनों (जैसे सभी क्लाउड ऐप) को इंगित किया जाए।
यह भी आवश्यक है कि उन शर्तों को कॉन्फ़िगर किया जाए जो नीति को प्रेरित करेंगी:
नेटवर्क: आईपी, आईपी रेंज और भौगोलिक स्थान
एक देश से कनेक्ट करने के लिए VPN या प्रॉक्सी का उपयोग करके या एक अनुमत आईपी पते से लॉगिन करने में सक्षम हो सकता है
Microsoft जोखिम: उपयोगकर्ता जोखिम, साइन-इन जोखिम, अंदरूनी जोखिम
डिवाइस प्लेटफार्म: कोई भी डिवाइस या Android, iOS, Windows फोन, Windows, macOS, Linux का चयन करें
यदि "कोई भी डिवाइस" चयनित नहीं है लेकिन सभी अन्य विकल्प चयनित हैं, तो इसे उन प्लेटफार्मों से संबंधित न होने वाले यादृच्छिक उपयोगकर्ता-एजेंट का उपयोग करके बायपास किया जा सकता है
क्लाइंट ऐप: विकल्प हैं "ब्राउज़र", "मोबाइल ऐप और डेस्कटॉप क्लाइंट", "एक्सचेंज एक्टिवसिंक क्लाइंट" और अन्य क्लाइंट"
एक न चुने गए विकल्प के साथ लॉगिन बायपास करने के लिए
डिवाइस के लिए फ़िल्टर: उपयोग किए गए डिवाइस से संबंधित एक नियम उत्पन्न करना संभव है
प्रमाणीकरण प्रवाह: विकल्प हैं "डिवाइस कोड प्रवाह" और "प्रमाणीकरण स्थानांतरण"
यह एक हमलावर को प्रभावित नहीं करेगा जब तक कि वह किसी फ़िशिंग प्रयास में उन प्रोटोकॉल का दुरुपयोग करने की कोशिश नहीं कर रहा हो ताकि पीड़ित के खाते तक पहुँच सके
संभावित परिणाम हैं: ब्लॉक या पहुँच प्रदान करना संभावित शर्तों के साथ जैसे MFA की आवश्यकता, डिवाइस का अनुपालन होना...
यह डिवाइस प्लेटफार्म (Android, iOS, Windows, macOS...) के आधार पर एक शर्त सेट करना संभव है, हालाँकि, यह उपयोगकर्ता-एजेंट पर आधारित है इसलिए इसे बायपास करना आसान है। यहाँ तक कि सभी विकल्पों को MFA लागू करने के लिए, यदि आप एक उपयोगकर्ता-एजेंट का उपयोग करते हैं जिसे पहचाना नहीं गया है, तो आप MFA या ब्लॉक को बायपास करने में सक्षम होंगे:
बस ब्राउज़र को एक अज्ञात उपयोगकर्ता-एजेंट भेजने (जैसे Mozilla/5.0 (compatible; MSIE 10.0; Windows Phone 8.0; Trident/6.0; IEMobile/10.0; ARM; Touch; NOKIA; Lumia 920) UCBrowser/10.1.0.563 Mobile
) के लिए पर्याप्त है कि यह शर्त सक्रिय न हो।
आप डेवलपर टूल में हाथ से उपयोगकर्ता एजेंट बदल सकते हैं:
या इस तरह के ब्राउज़र एक्सटेंशन का उपयोग करें।
यदि यह conditional policy में सेट किया गया है, तो एक हमलावर बस अनुमत देश में एक VPN का उपयोग कर सकता है या इन शर्तों को बायपास करने के लिए एक अनुमत आईपी पते से पहुँचने का तरीका खोज सकता है।
यह संभव है कि विशिष्ट ऐप तक पहुँचने के लिए उपयोगकर्ता द्वारा प्रयास करते समय MFA को ब्लॉक या मजबूर करने के लिए conditional access नीतियों को कॉन्फ़िगर किया जाए:
इस सुरक्षा को बायपास करने के लिए आपको देखना चाहिए कि क्या आप केवल किसी भी एप्लिकेशन में लॉगिन कर सकते हैं। उपकरण AzureAppsSweep में कई एप्लिकेशन आईडी हार्डकोडेड हैं और यह उनमें लॉगिन करने का प्रयास करेगा और आपको सूचित करेगा और यदि सफल होता है तो आपको टोकन भी देगा।
विशिष्ट संसाधनों में विशिष्ट एप्लिकेशन आईडी का परीक्षण करने के लिए आप इस तरह के उपकरण का भी उपयोग कर सकते हैं:
इसके अलावा, लॉगिन विधि की सुरक्षा करना भी संभव है (जैसे कि यदि आप ब्राउज़र से या डेस्कटॉप एप्लिकेशन से लॉगिन करने की कोशिश कर रहे हैं)। उपकरण Invoke-MFASweep कुछ जांचें करता है ताकि इन सुरक्षा उपायों को बायपास करने की कोशिश की जा सके।
उपकरण donkeytoken को भी समान उद्देश्यों के लिए उपयोग किया जा सकता है हालांकि यह अप्रबंधित लगता है।
उपकरण ROPCI का उपयोग भी इन सुरक्षा उपायों का परीक्षण करने और यह देखने के लिए किया जा सकता है कि क्या MFAs या ब्लॉकों को बायपास करना संभव है, लेकिन यह उपकरण व्हाइटबॉक्स दृष्टिकोण से काम करता है। आपको पहले टेनेट में अनुमत ऐप्स की सूची डाउनलोड करनी होगी और फिर यह उनमें लॉगिन करने की कोशिश करेगा।
एक Azure MFA विकल्प है कॉन्फ़िगर किए गए फोन नंबर पर कॉल प्राप्त करना जहां उपयोगकर्ता से चर #
भेजने के लिए कहा जाएगा।
चरों को केवल स्वर के रूप में माना जाता है, एक हमलावर फोन नंबर के वॉयसमेल संदेश को समझौता कर सकता है, संदेश के रूप में #
का स्वर कॉन्फ़िगर कर सकता है और फिर, जब MFA का अनुरोध किया जाता है, तो सुनिश्चित करें कि पीड़ित का फोन व्यस्त है (इसे कॉल करके) ताकि Azure कॉल वॉयसमेल पर पुनर्निर्देशित हो जाए।
नीतियाँ अक्सर एक अनुपालन उपकरण या MFA की मांग करती हैं, इसलिए एक हमलावर एक अनुपालन उपकरण पंजीकृत कर सकता है, एक PRT टोकन प्राप्त कर सकता है और इस तरह MFA को बायपास कर सकता है।
एक अनुपालन उपकरण को Intune में पंजीकृत करने से शुरू करें, फिर PRT प्राप्त करें:
Find more information about this kind of attack in the following page:
Az - Pass the PRTयह स्क्रिप्ट कुछ उपयोगकर्ता क्रेडेंशियल प्राप्त करती है और जांचती है कि क्या यह कुछ अनुप्रयोगों में लॉगिन कर सकती है।
यह उपयोगी है यह देखने के लिए कि क्या आपको कुछ अनुप्रयोगों में लॉगिन करने के लिए MFA की आवश्यकता नहीं है जिन्हें आप बाद में privileges बढ़ाने के लिए दुरुपयोग कर सकते हैं।
सभी नीतियों को प्राप्त करें
MFASweep एक PowerShell स्क्रिप्ट है जो प्रदान किए गए क्रेडेंशियल्स का उपयोग करके विभिन्न Microsoft सेवाओं में लॉग इन करने का प्रयास करती है और यह पहचानने का प्रयास करती है कि क्या MFA सक्षम है। यह इस पर निर्भर करता है कि कंडीशनल एक्सेस नीतियाँ और अन्य मल्टी-फैक्टर ऑथेंटिकेशन सेटिंग्स कैसे कॉन्फ़िगर की गई हैं, कुछ प्रोटोकॉल अंततः एकल कारक के रूप में रह सकते हैं। इसमें ADFS कॉन्फ़िगरेशन के लिए एक अतिरिक्त जांच भी है और यदि पता लगाया गया तो यह ऑन-प्रिम ADFS सर्वर में लॉग इन करने का प्रयास कर सकता है।
यह उपकरण MFA बायपास की पहचान करने और फिर कई उत्पादन AAD टेनेन्ट्स में APIs का दुरुपयोग करने में मदद करता है, जहाँ AAD ग्राहक मानते थे कि उनके पास MFA लागू है, लेकिन ROPC आधारित प्रमाणीकरण सफल रहा।
आपको सभी अनुप्रयोगों की सूची बनाने के लिए अनुमतियाँ होनी चाहिए ताकि आप ब्रूट-फोर्स करने के लिए अनुप्रयोगों की सूची उत्पन्न कर सकें।
Donkey token एक सेट फ़ंक्शंस का है जो सुरक्षा सलाहकारों की मदद करने के लिए है जिन्हें Conditional Access Policies को मान्य करने, 2FA-सक्षम Microsoft पोर्टल्स के लिए परीक्षण करने आदि की आवश्यकता होती है।
प्रत्येक पोर्टल का परीक्षण करें कि क्या MFA के बिना लॉगिन करना संभव है:
क्योंकि Azure पोर्टल सीमित नहीं है, इसलिए पोर्टल एंडपॉइंट से किसी भी सेवा तक पहुँचने के लिए एक टोकन इकट्ठा करना संभव है जो पिछले निष्पादन द्वारा पता लगाया गया था। इस मामले में Sharepoint की पहचान की गई, और इसे एक्सेस करने के लिए एक टोकन का अनुरोध किया गया:
मान लीजिए कि टोकन के पास Sites.Read.All (Sharepoint से) की अनुमति है, भले ही आप MFA के कारण वेब से Sharepoint तक पहुँच नहीं पा रहे हैं, फिर भी आप उत्पन्न टोकन का उपयोग करके फ़ाइलों तक पहुँचने के लिए टोकन का उपयोग कर सकते हैं:
AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE) GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)