Az - Conditional Access Policies / MFA Bypass

Support HackTricks

Basic Information

Azure Conditional Access नीतियाँ Microsoft Azure में नियम हैं जो Azure सेवाओं और अनुप्रयोगों तक पहुँच नियंत्रण लागू करने के लिए कुछ शर्तों के आधार पर स्थापित की जाती हैं। ये नीतियाँ संगठनों को सही परिस्थितियों में सही पहुँच नियंत्रण लागू करके अपने संसाधनों को सुरक्षित रखने में मदद करती हैं। Conditional access नीतियाँ मूल रूप से यह परिभाषित करती हैं कौन क्या कहाँ और कैसे पहुँच सकता है।

यहाँ कुछ उदाहरण दिए गए हैं:

  1. साइन-इन जोखिम नीति: यह नीति तब लागू की जा सकती है जब साइन-इन जोखिम का पता लगाया जाता है, जिसमें बहु-कारक प्रमाणीकरण (MFA) की आवश्यकता हो सकती है। उदाहरण के लिए, यदि किसी उपयोगकर्ता का लॉगिन व्यवहार उनके नियमित पैटर्न की तुलना में असामान्य है, जैसे कि किसी अन्य देश से लॉगिन करना, तो सिस्टम अतिरिक्त प्रमाणीकरण के लिए संकेत दे सकता है।

  2. डिवाइस अनुपालन नीति: यह नीति केवल उन उपकरणों तक Azure सेवाओं की पहुँच को सीमित कर सकती है जो संगठन के सुरक्षा मानकों के अनुपालन में हैं। उदाहरण के लिए, केवल उन उपकरणों से पहुँच की अनुमति दी जा सकती है जिनमें अद्यतन एंटीवायरस सॉफ़्टवेयर है या जो एक निश्चित ऑपरेटिंग सिस्टम संस्करण चला रहे हैं।

Conditional Access Policies Bypasses

यह संभव है कि एक conditional access नीति कुछ जानकारी की जाँच कर रही हो जिसे आसानी से छेड़ा जा सकता है जिससे नीति को बायपास किया जा सके। और यदि उदाहरण के लिए नीति MFA को कॉन्फ़िगर कर रही थी, तो हमलावर इसे बायपास करने में सक्षम होगा।

Device Platforms - Device Condition

यह डिवाइस प्लेटफ़ॉर्म (Android, iOS, Windows, macOS) के आधार पर एक शर्त सेट करना संभव है, हालाँकि, यह यूजर-एजेंट पर आधारित है इसलिए इसे बायपास करना काफी आसान है। यहाँ तक कि सभी विकल्पों को MFA लागू करने के लिए बनाना, यदि आप एक यूजर-एजेंट का उपयोग करते हैं जिसे यह पहचानता नहीं है तो आप MFA को बायपास करने में सक्षम होंगे।

Locations: Countries, IP ranges - Device Condition

बिल्कुल, यदि यह conditional policy में सेट किया गया है, तो एक हमलावर बस एक VPN का उपयोग कर सकता है अनुमत देश में या इन शर्तों को बायपास करने के लिए एक अनुमत IP पते से पहुँचने का प्रयास कर सकता है।

Office365 Client Apps

आप यह संकेत कर सकते हैं कि यदि ग्राहक ब्राउज़र से Office 365 ऐप्स तक पहुँचते हैं तो उन्हें MFA की आवश्यकता है:

इसे बायपास करने के लिए, यह संभव है कि आप एक डेस्कटॉप एप्लिकेशन (जैसे कि निम्नलिखित उदाहरण में Microsoft Teams) से एक ऐप में लॉग-इन करने का नाटक करें, जो सुरक्षा को बायपास करेगा:

roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokrns-stdout

<token>

जैसे कि Microsoft Teams ऐप के पास बहुत सारी अनुमतियाँ हैं, आप उस पहुँच का उपयोग कर सकेंगे।

आप पूर्वनिर्धारित Office365 अनुमतियों के साथ अधिक सार्वजनिक अनुप्रयोगों का ID रोडटूल्स के डेटाबेस में पा सकते हैं:

SELECT appId, displayName FROM ApplicationRefs WHERE publicCLient = 1 ORDER BY displayName ASC

यह हमला विशेष रूप से दिलचस्प है क्योंकि डिफ़ॉल्ट रूप से सार्वजनिक Office365 अनुप्रयोगों को कुछ डेटा तक पहुँचने की अनुमति होगी।

अन्य ऐप्स

डिफ़ॉल्ट रूप से, उपयोगकर्ताओं द्वारा बनाए गए अन्य ऐप्स को अनुमति नहीं होगी और वे निजी हो सकते हैं। हालांकि, उपयोगकर्ता सार्वजनिक ऐप्स भी बना सकते हैं जो उन्हें कुछ अनुमतियाँ प्रदान करते हैं।

एक संभावित परिदृश्य जहां एक नीति अनुप्रयोग तक पहुँचने के लिए MFA की आवश्यकता निर्धारित करती है जब उपयोगकर्ता एक ब्राउज़र का उपयोग कर रहा है (शायद क्योंकि यह एक वेब अनुप्रयोग है और इसलिए यह एकमात्र तरीका होगा), यदि एक प्रॉक्सी एप्लिकेशन है -एक एप्लिकेशन जो उपयोगकर्ताओं की ओर से अन्य ऐप्स के साथ बातचीत करने की अनुमति देता है-, उपयोगकर्ता प्रॉक्सी एप्लिकेशन में लॉगिन कर सकता है और फिर इस प्रॉक्सी एप्लिकेशन के माध्यम से प्रारंभिक MFA सुरक्षित ऐप में लॉगिन कर सकता है

Invoke-MFASweep और donkeytoken तकनीकों की जांच करें।

अन्य Az MFA बायपास

रिंग टोन

एक Azure MFA विकल्प है कॉन्फ़िगर किए गए फोन नंबर पर कॉल प्राप्त करना जहां उपयोगकर्ता से चर # भेजने के लिए कहा जाएगा।

चूंकि चर केवल स्वर हैं, एक हमलावर फोन नंबर के वॉयसमेल संदेश को समझौता कर सकता है, संदेश के रूप में # का स्वर कॉन्फ़िगर कर सकता है और फिर, जब MFA का अनुरोध किया जाता है, सुनिश्चित करें कि शिकार का फोन व्यस्त है (इसे कॉल करके) ताकि Azure कॉल वॉयसमेल पर पुनर्निर्देशित हो जाए।

अनुपालन उपकरण

नीतियाँ अक्सर एक अनुपालन उपकरण या MFA की मांग करती हैं, इसलिए एक हमलावर एक अनुपालन उपकरण पंजीकृत कर सकता है, एक PRT टोकन प्राप्त कर सकता है और इस तरह MFA को बायपास कर सकता है

एक अनुपालन उपकरण को Intune में पंजीकृत करने से शुरू करें, फिर PRT प्राप्त करें:

$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials

$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

इस प्रकार के हमले के बारे में अधिक जानकारी निम्नलिखित पृष्ठ पर प्राप्त करें:

Az - Pass the PRT

उपकरण

सभी नीतियों को प्राप्त करें

roadrecon plugin policies

MFASweep एक PowerShell स्क्रिप्ट है जो प्रदान किए गए क्रेडेंशियल्स का उपयोग करके विभिन्न Microsoft सेवाओं में लॉग इन करने का प्रयास करती है और यह पहचानने का प्रयास करती है कि क्या MFA सक्षम है। यह इस पर निर्भर करता है कि कंडीशनल एक्सेस नीतियाँ और अन्य मल्टी-फैक्टर ऑथेंटिकेशन सेटिंग्स कैसे कॉन्फ़िगर की गई हैं, कुछ प्रोटोकॉल अंततः सिंगल फैक्टर रह सकते हैं। इसमें ADFS कॉन्फ़िगरेशन के लिए एक अतिरिक्त जांच भी है और यदि पता लगाया गया तो यह ऑन-प्रिम ADFS सर्वर में लॉग इन करने का प्रयास कर सकता है।

Invoke-MFASweep -Username <username> -Password <pass>

Donkey token एक सेट फ़ंक्शंस का है जिसका उद्देश्य सुरक्षा सलाहकारों की मदद करना है जिन्हें Conditional Access Policies को मान्य करने, 2FA-सक्षम Microsoft पोर्टलों के लिए परीक्षण करने आदि की आवश्यकता होती है।

Import-Module 'C:\Users\Administrador\Desktop\Azure\Modulos ps1\donkeytoken' -Force

प्रत्येक पोर्टल का परीक्षण करें कि क्या MFA के बिना लॉगिन करना संभव है:

Test-MFA -credential $cred -Verbose -Debug -InformationAction Continue

क्योंकि Azure पोर्टल सीमित नहीं है, इसलिए पोर्टल एंडपॉइंट से किसी भी सेवा तक पहुँचने के लिए एक टोकन इकट्ठा करना संभव है जो पिछले निष्पादन द्वारा पता लगाया गया था। इस मामले में Sharepoint की पहचान की गई, और इसे एक्सेस करने के लिए एक टोकन का अनुरोध किया गया:

$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token

मान लीजिए कि टोकन के पास Sites.Read.All (Sharepoint से) की अनुमति है, भले ही आप MFA के कारण वेब से Sharepoint तक पहुँच नहीं पा रहे हैं, फिर भी आप उत्पन्न टोकन के साथ फ़ाइलों तक पहुँचने के लिए टोकन का उपयोग कर सकते हैं:

$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl

संदर्भ

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

Last updated