Az - Conditional Access Policies / MFA Bypass

Support HackTricks

Basic Information

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

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

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

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

Conditional Acces Policies Bypasses

संभव है कि एक conditional access policy कुछ जानकारी की जांच कर रही हो जिसे आसानी से छेड़ा जा सकता है जिससे नीति को बायपास किया जा सके। और यदि उदाहरण के लिए नीति 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 ऐप के पास बहुत सारी अनुमतियाँ हैं, आप उस एक्सेस का उपयोग कर सकेंगे।

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

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 portal सीमित नहीं है, यह संभव है कि पिछले निष्पादन द्वारा पहचानी गई किसी भी सेवा तक पहुंचने के लिए पोर्टल एंडपॉइंट से एक टोकन एकत्र किया जा सके। इस मामले में 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

References

HackTricks को समर्थन दें

Last updated