
Microsoft Entra ID वातावरणों की सुरक्षा स्थिति का आकलन करने के लिए एक हल्का PowerShell उपकरण। यह विशेषाधिकार प्राप्त ऑब्जेक्ट्स, जोखिमपूर्ण असाइनमेंट और संभावित गलत कॉन्फ़िगरेशन की पहचान करने में मदद करता है।

EntraFalcon एक PowerShell-आधारित मूल्यांकन उपकरण है जो पेंटेस्टर्स, सुरक्षा विश्लेषकों और सिस्टम प्रशासकों के लिए Microsoft Entra ID वातावरण की सुरक्षा स्थिति का मूल्यांकन करने हेतु बनाया गया है।
उपयोग में आसानी के लिए डिज़ाइन किया गया, EntraFalcon PowerShell 5.1 और 7 पर चलता है, Windows और Linux दोनों का समर्थन करता है, और इसके लिए किसी अतिरिक्त PowerShell मॉड्यूल, अतिरिक्त इंस्टॉलेशन, या Microsoft Graph API सहमति की आवश्यकता नहीं है।
यह उपकरण विशेषाधिकार प्राप्त ऑब्जेक्ट्स, संभावित जोखिम भरे असाइनमेंट और Conditional Access गलत कॉन्फ़िगरेशन को उजागर करने में मदद करता है जिन्हें अक्सर अनदेखा कर दिया जाता है, जैसे:
निष्कर्षों को इंटरैक्टिव HTML रिपोर्ट में प्रस्तुत किया जाता है ताकि कुशल अन्वेषण और विश्लेषण का समर्थन किया जा सके।
| Type | Permission | Mandatory | Impact if missing |
|---|---|---|---|
| Entra ID Role | Global Reader | Yes | स्क्रिप्ट चलाना संभव नहीं |
| Azure Role | Reader: On every Management Group or Subscription | No | Azure IAM असाइनमेंट का मूल्यांकन नहीं कर सकते |
इसके अतिरिक्त, आपको उस डिवाइस से Microsoft Graph API और वैकल्पिक रूप से Azure ARM API के लिए प्रमाणित करने में सक्षम होना चाहिए जहाँ आप उपकरण चलाते हैं। सुनिश्चित करें कि Conditional Access Policies आपके प्रमाणीकरण को अवरुद्ध नहीं करती हैं।
आरंभ करने के लिए, रिपॉजिटरी को क्लोन करें और प्रोजेक्ट निर्देशिका में नेविगेट करें:```powershell git clone https://github.com/CompassSecurity/EntraFalcon cd EntraFalcon
नोट: स्क्रिप्ट चलाने के लिए आपको अस्थायी रूप से PowerShell execution policy बदलनी पड़ सकती है।
यह केवल विश्वसनीय स्क्रिप्ट के लिए करें!```
Set-ExecutionPolicy -ExecutionPolicy Unrestricted -Scope Process
EntraFalcon में Entra ID प्रमाणीकरण के लिए अंतर्निहित समर्थन शामिल है। प्रमाणीकरण प्रवाह चुनने के लिए -AuthFlow का उपयोग करें।
सामान्य मूल्यांकन के लिए, पूर्ण-कवरेज प्रवाहों में से एक का उपयोग करें:
| अनुशंसित प्रवाह | सर्वोत्तम किसके लिए | प्लेटफ़ॉर्म | कवरेज |
|---|---|---|---|
BroCi (डिफ़ॉल्ट) | इंटरैक्टिव Windows रन | Windows | पूर्ण |
BroCiManualCode | किसी अन्य ब्राउज़र में प्रमाणीकरण | Windows, Linux, macOS | पूर्ण |
BroCiToken | मौजूदा Azure Portal रीफ़्रेश टोकन | Windows, Linux, macOS | पूर्ण |
ServicePrincipal | ऑटोमेशन / CI | Windows, Linux, macOS | पूर्ण |
BroCi एक इंटरैक्टिव लॉगिन का उपयोग करता है। BroCiToken और ServicePrincipal किसी का भी उपयोग नहीं करते। फ़ॉलबैक उपयोगकर्ता प्रवाहों के लिए कई इंटरैक्टिव लॉगिन की आवश्यकता हो सकती है क्योंकि अलग-अलग संसाधन टोकन का अनुरोध किया जाता है।
पूर्व-सहमति प्राप्त प्रथम-पक्ष अनुप्रयोगों की कमी के कारण, फ़ॉलबैक प्रवाह पूर्ण गणना (PIM for Groups, Access Packages, Catalogs) नहीं कर सकते। इसलिए, वे वर्तमान में केवल फ़ॉलबैक विकल्प बने हुए हैं।
| प्रवाह | केवल तब उपयोग करें जब | प्लेटफ़ॉर्म | सीमाएँ |
|---|---|---|---|
AuthCode | लेगेसी संगतता आवश्यक हो | Windows | आंशिक कवरेज। कोई स्टैंडअलोन PIM for Groups, Access Packages, या Catalogs रिपोर्ट नहीं। |
DeviceCode | ब्राउज़र-आधारित प्रमाणीकरण संभव न हो | Windows, Linux, macOS | आंशिक कवरेज। कोई स्टैंडअलोन PIM for Groups, Access Packages, या Catalogs रिपोर्ट नहीं। कुछ Security Findings जाँचें कम गहराई के साथ चलती हैं। |
ManualCode | प्रमाणीकरण एक अलग ब्राउज़र सत्र के माध्यम से पूरा किया जाना चाहिए | Windows, Linux, macOS | आंशिक कवरेज। कोई स्टैंडअलोन PIM for Groups, Access Packages, या Catalogs रिपोर्ट नहीं। |
BroCi वैकल्पिक प्रथम-पक्ष अनुप्रयोगों का उपयोग करता है और केवल एक इंटरैक्टिव साइन-इन की आवश्यकता होती है।
यह तब उपयोगी है जब Azure Active Directory PowerShell क्लाइंट को असाइनमेंट की आवश्यकता होती है और उससे बचा जाना चाहिए।```powershell
.\run_EntraFalcon.ps1
स्पष्ट BroCi चयन:```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCi
.\run_EntraFalcon.ps1 -AuthFlow BroCiManualCode
1. स्क्रिप्ट प्रमाणीकरण URL को क्लिपबोर्ड पर कॉपी करती है।
2. URL को ब्राउज़र में पेस्ट करें (वैकल्पिक रूप से SSO समर्थन के लिए किसी अन्य डिवाइस पर)।
3. ब्राउज़र डेवलपर टूल्स खोलें और Network टैब में `Preserve log` सक्षम करें।
4. प्रमाणीकरण पूरा करें।
5. नेटवर्क लॉग में `code=1.` खोजें और कोड वाला रिक्वेस्ट URL क्लिपबोर्ड पर कॉपी करें।
6. जारी रखने के लिए Enter दबाएँ; स्क्रिप्ट क्लिपबोर्ड से कोड पढ़ती है और टोकन अधिग्रहण पूरा करती है।
#### अनुशंसित: टोकन के साथ BroCi
यदि एक वैध Azure Portal रीफ्रेश टोकन पहले से उपलब्ध है (client c44b4083-3bb0-49c1-b47d-974e53cbdf3c), तो इसे सीधे उपयोग किया जा सकता है।
उदाहरण: ब्राउज़र से रीफ्रेश टोकन प्राप्त करना
1. ब्राउज़र डेवलपर टूल्स खोलें और Network टैब में Preserve log सक्षम करें।
2. https://entra.microsoft.com पर प्रमाणीकरण करें।
3. नेटवर्क लॉग में `brk_client_id=c44b4083-3bb0-49c1-b47d-974e53cbdf3c` खोजें और प्रतिक्रिया से रीफ्रेश टोकन निकालें।```powershell
.\run_EntraFalcon.ps1 -AuthFlow BroCiToken -BroCiToken "1.XXXXXXXXXXX"
OAuth2 client credentials grant का उपयोग करके एक पंजीकृत एप्लिकेशन के रूप में प्रमाणित करता है — किसी उपयोगकर्ता इंटरैक्शन की आवश्यकता नहीं है।
बार-बार स्वचालित निष्पादन के लिए उपयोगी।
Application-प्रकार की Graph API अनुमतियों के साथ एक कस्टम Entra ऐप पंजीकरण की आवश्यकता होती है (नीचे देखें)।