
केवल-पढ़ने के लिए PowerShell मॉड्यूल जो Azure AD में UNC2452 और अन्य खतरा अभिनेता कलाकृतियों का पता लगाने, संघीय डोमेन, सेवा प्रिंसिपल, एप्लिकेशन और मेलबॉक्स अनुमतियों का ऑडिट करने के लिए है, ताकि समझौता के संकेतकों की पहचान की जा सके।
इस रिपॉजिटरी में एक PowerShell मॉड्यूल है जो UNC2452 और अन्य खतरा अभिनेताओं की गतिविधि के संकेतक हो सकने वाले कलाकृतियों का पता लगाने के लिए है। कुछ संकेतक "उच्च-विश्वसनीयता" वाले समझौता संकेतक हैं, जबकि अन्य कलाकृतियाँ तथाकथित "दोहरे-उपयोग" वाली हैं। दोहरे-उपयोग वाली कलाकृतियाँ खतरा अभिनेता की गतिविधि से संबंधित हो सकती हैं, लेकिन वैध कार्यक्षमता से भी संबंधित हो सकती हैं। इनके लिए विश्लेषण और सत्यापन आवश्यक होगा। UNC2452 द्वारा उपयोग की जाने वाली तकनीकों के विस्तृत विवरण के लिए हमारा ब्लॉग देखें।
यह टूल केवल-पढ़ने के लिए है। यह Microsoft 365 वातावरण में कोई बदलाव नहीं करता है।
संक्षेप में, यह मॉड्यूल निम्नलिखित करेगा:
यह निम्नलिखित नहीं करेगा:
समुदाय की प्रतिक्रिया के साथ, यह उपकरण IOCs का पता लगाने में और अधिक व्यापक हो सकता है। कृपया यदि आपको समस्याएँ, विचार या प्रतिक्रिया है तो issue खोलें, PR सबमिट करें, या लेखकों से संपर्क करें।
यह मॉड्यूल Azure AD में फेडरेटेड डोमेन को देखने और ऑडिट करने के लिए MS Online PowerShell का उपयोग करता है। सभी फेडरेटेड डोमेन को federated domains.csv फ़ाइल में आउटपुट किया जाएगा।
any.sts को जारीकर्ता URI के रूप में कॉन्फ़िगर किए गए हैं। यह Azure AD बैकडोर टूल के उपयोग का संकेत है। फोरेंसिक जाँच करने पर विचार करें कि परिवर्तन कैसे किए गए और समझौते के किसी अन्य सबूत की पहचान करें।!! Evidence of AAD backdoor found. Consider performing a detailed forensic investigation Domain name: foobar.com Domain federation name: Federation issuer URI: http://any.sts/16B45E3B
:bangbang: स्क्रिप्ट ने एक ऐसे डोमेन की पहचान की है जो एक issuer URI के साथ फ़ेडरेटेड है जो [Azure AD Backdoor](https://github.com/Gerenios/AADInternals/blob/master/FederatedIdentityTools.ps1) का संकेतक है। बैकडोर डिफ़ॉल्ट रूप से issuer URI को hxxp://any.sts पर सेट करता है। यह निर्धारित करने के लिए फॉरेंसिक जांच करने पर विचार करें कि परिवर्तन कैसे किए गए और समझौते के किसी भी अन्य सबूत की पहचान करें।```
!! A token signing certificate has a validity period of more than 365 days.
This may be evidence of a signing certificate not generated by AD FS.
Domain name: foobar.com
Federation issuer uri: http://sts.foobar.com
Signing cert not valid before: 1/1/2020 00:00:00
Signing cert not valid after: 12/31/2025 23:59:59
:चेतावनी: स्क्रिप्ट ने एक संघीय डोमेन की पहचान की है जिसमें एक टोकन-हस्ताक्षर प्रमाणपत्र है जो मानक 365 दिनों से अधिक समय तक वैध है। अपने प्रशासकों से परामर्श करें कि क्या टोकन-हस्ताक्षर प्रमाणपत्र मैन्युअल रूप से प्रबंधित है और क्या इसकी बताई गई वैधता अवधि अपेक्षित है। यदि यह अपेक्षित नहीं है, तो फोरेंसिक जांच करने पर विचार करें।
यह मॉड्यूल Azure AD PowerShell का उपयोग करके Azure AD में सेवा प्रिंसिपल की खोज और ऑडिट करता है।
!! Identified first-party (Microsoft published) Service Principals with added credentials. Only in rare cases should a first-party Service Principal have an added credential. Verify that the added credential has a legitimate use case and consider further investigation if not
Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx App ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx Display Name : Office 365 Exchange Online Key Credentials :
CustomKeyIdentifier : EndDate : 12/9/2017 2:10:29 AM KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx StartDate : 12/9/2015 1:40:30 AM Type : AsymmetricX509Cert Usage : Verify Value :
:warning: स्क्रिप्ट ने एक प्रथम-पक्ष (Microsoft) सेवा प्रिंसिपल की पहचान की है जिसमें अतिरिक्त क्रेडेंशियल जोड़े गए हैं। प्रथम-पक्ष सेवा प्रिंसिपल में दुर्लभ मामलों को छोड़कर क्रेडेंशियल नहीं जोड़े जाने चाहिए। जो वातावरण हाइब्रिड-मोड में हैं या पहले थे, उनमें Exchange Online, Skype for Business और AAD Password Protection Proxy Service Principals में क्रेडेंशियल जोड़े जा सकते हैं। यह आपके वातावरण में UNC2452 गतिविधि का एक अवशेष भी हो सकता है। क्रेडेंशियल की वैधता सुनिश्चित करने के लिए अपने प्रशासकों से परामर्श करें और ऑडिट लॉग खोजें। आप Azure AD साइन-इन ब्लेड में "Service Principal Sign-Ins" टैब का उपयोग करके इस सेवा प्रिंसिपल का उपयोग करके अपने टेनेंट में प्रमाणीकरण खोज सकते हैं।```
!! Identified Service Principals with high-risk API permissions and added credentials.
Verify that the added credential has a legitimate use case and consider further investigation if not
Object ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
App ID : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
Display Name : TestingApp
Key Credentials :
CustomKeyIdentifier :
EndDate : 1/7/2025 12:00:00 AM
KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
StartDate : 1/7/2021 12:00:00 AM
Type : Symmetric
Usage : Verify
Value :
Password Credentials :
Risky Permissions : Domain.ReadWrite.All
:चेतावनी: स्क्रिप्ट ने उच्च-जोखिम वाले API अनुमतियों और जोड़े गए क्रेडेंशियल्स वाला एक Service Principal पहचाना है। यह अपेक्षित हो सकता है, क्योंकि कुछ तृतीय-पक्ष या कस्टम-निर्मित एप्लिकेशन को कार्य करने के लिए जोड़े गए क्रेडेंशियल्स की आवश्यकता होती है। यह आपके परिवेश में UNC2452 गतिविधि का एक अवशेष भी हो सकता है। क्रेडेंशियल को वैध सत्यापित करने के लिए अपने प्रशासकों से परामर्श करें और ऑडिट लॉग खोजें। आप इस Service Principal का उपयोग करके अपने टेनेंट में प्रमाणीकरण खोजने के लिए Azure AD Sign-Ins ब्लेड में "Service Principal Sign-Ins" टैब का भी उपयोग कर सकते हैं।
यह मॉड्यूल Azure AD PowerShell का उपयोग करके Azure AD में Applications को खोजने और ऑडिट करने के लिए करता है।
!! High-privileged Application with credentials found. Validate that the application needs these permissions. Validate that the credentials added to the application are associated with a legitimate use case.
ObjectID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx AppID: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx DisplayName: Acme Test App KeyCredentials: PasswordCredentials:
CustomKeyIdentifier : EndDate : 12/22/2021 4:01:52 PM KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx StartDate : 12/22/2020 4:01:52 PM Value :
CustomKeyIdentifier : EndDate : 12/21/2021 6:32:54 PM KeyId : xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx StartDate : 12/21/2020 6:33:16 PM Value :
Risky Permissions: Mail.Read (Read mail in all mailboxes) Directory.Read.All (Read all data in the organization directory)
:⚠️: स्क्रिप्ट ने उच्च-जोखिम API अनुमतियों और जोड़े गए क्रेडेंशियल्स वाले एक एप्लिकेशन की पहचान की है। यह अपेक्षित हो सकता है, क्योंकि कुछ तृतीय-पक्ष या कस्टम-निर्मित एप्लिकेशन को कार्य करने के लिए अतिरिक्त क्रेडेंशियल्स की आवश्यकता होती है। यह आपके वातावरण में UNC2452 गतिविधि का एक अवशेष भी हो सकता है। क्रेडेंशियल वैध है यह सत्यापित करने के लिए अपने प्रशासकों से परामर्श करें और ऑडिट लॉग खोजें।
### क्लाउड समाधान प्रदाता कार्यक्रम (Invoke-MandiantGetCSPInformation)
यह मॉड्यूल जाँचता है कि क्या टेनेंट किसी CSP या भागीदार द्वारा प्रबंधित है, और क्या प्रत्यायोजित प्रशासन सक्षम है। प्रत्यायोजित प्रशासन CSP को एक वैश्विक व्यवस्थापक के समान विशेषाधिकारों के साथ ग्राहक टेनेंट तक पहुँचने की अनुमति देता है। हालाँकि CSP कार्यक्रम भागीदार के टेनेंट पर मजबूत सुरक्षा नियंत्रण लागू करता है, एक खतरा अभिनेता जो CSP को समझौता करता है, वह ग्राहक वातावरण तक पहुँच सकता है। संगठनों को सत्यापित करना चाहिए कि क्या उनके भागीदार को प्रत्यायोजित प्रशासक विशेषाधिकारों की आवश्यकता है और यदि नहीं, तो इसे हटा दें। यदि भागीदार को प्रत्यायोजित प्रशासक पहुँच बनाए रखनी है, तो उनकी पहुँच को प्रतिबंधित करने के लिए सशर्त पहुँच नीतियों को लागू करने पर विचार करें।
संगठन [Admin Center](https://admin.microsoft.com) पर जाकर और बाएँ मेनू बार में `Settings` -> `Partner Relationships` पर नेविगेट करके भागीदार संबंधों की जाँच और प्रबंधन कर सकते हैं।
### मेलबॉक्स फ़ोल्डर अनुमतियाँ (Get-MandiantMailboxFolderPermissions)
यह मॉड्यूल संदिग्ध फ़ोल्डर अनुमतियों की उपस्थिति के लिए टेनेंट में सभी मेलबॉक्स का ऑडिट करता है। विशेष रूप से, यह मॉड्यूल प्रत्येक मेलबॉक्स में "Top of Information Store" और "Inbox" फ़ोल्डरों की जाँच करेगा और "Default" और "Anonymous" उपयोगकर्ताओं को सौंपी गई अनुमतियों की जाँच करेगा। "None" के अलावा कोई भी मान मेलबॉक्स को विश्लेषण के लिए चिह्नित करेगा। सामान्य तौर पर, Default और Anonymous उपयोगकर्ताओं के पास उपयोगकर्ता इनबॉक्स पर अनुमतियाँ नहीं होनी चाहिए क्योंकि यह किसी भी उपयोगकर्ता को उनकी सामग्री पढ़ने की अनुमति देगा। कुछ संगठनों को इस अनुमति वाले साझा मेलबॉक्स मिल सकते हैं, लेकिन यह अनुशंसित अभ्यास नहीं है।
### एप्लिकेशन प्रतिरूपण (Get-MandiantApplicationImpersonationHolders)
यह मॉड्यूल उन उपयोगकर्ताओं और समूहों की सूची आउटपुट करता है जिनके पास ApplicationImpersonation भूमिका है। इस कमांड के आउटपुट में कोई भी उपयोगकर्ता या समूह का सदस्य प्रतिरूपण का उपयोग करके टेनेंट में किसी अन्य उपयोगकर्ता के मेलबॉक्स तक पहुँच सकता है। संगठनों को इस कमांड के आउटपुट का ऑडिट करना चाहिए ताकि यह सुनिश्चित हो सके कि केवल अपेक्षित उपयोगकर्ता और समूह शामिल हैं, और जहाँ संभव हो दायरे को और प्रतिबंधित करें।
### Purview ऑडिट (पूर्व में उन्नत ऑडिटिंग) (Invoke-MandiantCheckAuditing)
यह मॉड्यूल टेनेंट में उन सभी लाइसेंस प्राप्त उपयोगकर्ताओं की गणना करेगा जो Purview ऑडिट मेल आइटम एक्सेस किए गए के लिए लाइसेंस प्राप्त हैं। यह एक CSV रिपोर्ट तैयार करेगा जो दस्तावेज करेगी कि क्या सुविधा एक पात्र मेलबॉक्स पर सक्षम की गई है या नहीं। संगठनों को उन मेलबॉक्स पर फ़िल्टर करना चाहिए जो मेल आइटम एक्सेस किए गए के लिए पात्र हैं लेकिन सुविधा अक्षम है और सत्यापित करना चाहिए कि यह जानबूझकर है।
### एकीकृत ऑडिट लॉग (Get-MandiantUnc2452AuditLogs)
यह मॉड्यूल एकीकृत ऑडिट लॉग खोजने के लिए एक सहायक स्क्रिप्ट है। एकीकृत ऑडिट लॉग खोजने में कई तकनीकी चेतावनियाँ हैं जिन्हें अनदेखा करना आसान हो सकता है। यह मॉड्यूल इन चेतावनियों को नेविगेट करने और कुछ सामान्य त्रुटियों को संभालने के लिए सर्वोत्तम प्रथाओं को लागू करके खोज प्रक्रिया को सरल बनाने में मदद कर सकता है।
डिफ़ॉल्ट रूप से, मॉड्यूल उन लॉग प्रविष्टियों की खोज करेगा जो UNC2452 तकनीकों को रिकॉर्ड कर सकती हैं। लॉग रिकॉर्ड वैध प्रशासक गतिविधि को भी कैप्चर कर सकते हैं, और सत्यापित करने की आवश्यकता होगी।
* **एप्लिकेशन अपडेट करें** - ऐप पंजीकरण अपडेट करने के लिए किए गए कार्यों को रिकॉर्ड करता है।
* **डोमेन प्रमाणीकरण सेट करें** - रिकॉर्ड करता है जब किसी डोमेन के लिए प्रमाणीकरण सेटिंग्स बदली जाती हैं, जिसमें फेडरेशन रियल्म ऑब्जेक्ट्स का निर्माण शामिल है। ये घटनाएँ किसी वातावरण में शायद ही कभी होनी चाहिए और एक खतरा अभिनेता द्वारा AAD बैकडोर कॉन्फ़िगर करने का संकेत दे सकती हैं।
* **फेडरेशन सेटिंग्स सेट करें** - रिकॉर्ड करता है जब किसी डोमेन के लिए फेडरेशन रियल्म ऑब्जेक्ट संशोधित किया जाता है। ये घटनाएँ किसी वातावरण में शायद ही कभी होनी चाहिए और एक खतरा अभिनेता द्वारा गोल्डन SAML हमले को निष्पादित करने की तैयारी का संकेत दे सकती हैं।
* **एप्लिकेशन प्रमाणपत्र और रहस्य अपडेट करें** - रिकॉर्ड करता है जब किसी ऐप पंजीकरण में कोई रहस्य या प्रमाणपत्र जोड़ा जाता है।
* **PowerShell मेलबॉक्स लॉगिन** - मेलबॉक्स लॉगिन संचालन रिकॉर्ड करता है जहाँ क्लाइंट एप्लिकेशन PowerShell था।
* **सेवा प्रिंसिपल अपडेट करें** - रिकॉर्ड करता है जब किसी मौजूदा सेवा प्रिंसिपल में अपडेट किए जाते हैं।
* **सेवा प्रिंसिपल क्रेडेंशियल्स जोड़ें** - रिकॉर्ड करता है जब किसी सेवा प्रिंसिपल में कोई रहस्य या प्रमाणपत्र जोड़ा जाता है।
* **ऐप भूमिका असाइनमेंट जोड़ें** - रिकॉर्ड करता है जब कोई ऐप भूमिका (एप्लिकेशन अनुमति) जोड़ी जाती है।
* **उपयोगकर्ता के लिए ऐप भूमिका असाइनमेंट** - रिकॉर्ड करता है जब किसी उपयोगकर्ता को कोई ऐप भूमिका सौंपी जाती है।
* **PowerShell प्रमाणीकरण** - रिकॉर्ड करता है जब कोई उपयोगकर्ता PowerShell क्लाइंट का उपयोग करके Azure AD में प्रमाणित करता है।
* **नए प्रबंधन भूमिका असाइनमेंट** - रिकॉर्ड करता है जब नए प्रबंधन भूमिका असाइनमेंट बनाए जाते हैं। यह नए ApplicationImpersonation अनुदानों की पहचान करने में उपयोगी हो सकता है।
## उपयोग
### आवश्यक मॉड्यूल
PowerShell मॉड्यूल को तीन Microsoft 365 PowerShell मॉड्यूल की स्थापना की आवश्यकता है।
* AzureAD
* MSOnline
* ExchangeOnlineManagement
* Microsoft.Graph
मॉड्यूल स्थापित करने के लिए:
1. एक PowerShell विंडो को स्थानीय व्यवस्थापक के रूप में खोलें (राइट-क्लिक करें फिर व्यवस्थापक के रूप में चलाएँ चुनें)
2. कमांड `Install-Module <MODULE NAME HERE>` चलाएँ और संकेतों का पालन करें
### आवश्यक उपयोगकर्ता अनुमतियाँ
PowerShell मॉड्यूल को विशिष्ट विशेषाधिकारों वाले Microsoft 365 खाते से चलाया जाना चाहिए।
* Azure AD पोर्टल में `Global Administrator` या `Global Reader` भूमिका
* एक्सचेंज नियंत्रण पैनल में `View-Only Audit Logs`
* `User.Read.All` और `Directory.Read.All` दायरे। `Global Reader` भूमिका धारकों के पास इन दायरों का स्वचालित रूप से उपयोग करने की क्षमता होनी चाहिए।
एक खाते को एक्सचेंज नियंत्रण पैनल में `View-Only Audit Logs` देने के लिए:
1. https://outlook.office365.com/ecp पर नेविगेट करें और एक वैश्विक व्यवस्थापक या एक्सचेंज व्यवस्थापक के रूप में लॉगिन करें (सटीक URL भिन्न हो सकता है यदि आप वैकल्पिक क्लाउड में हैं)
2. डैशबोर्ड में `admin roles` पर क्लिक करें, या बाईं ओर `roles` टैब का विस्तार करें और यदि आप नए UI में हैं तो `admin roles` पर क्लिक करें
3. `+` चिह्न पर क्लिक करके या `add new role group` पर क्लिक करके एक नई व्यवस्थापक भूमिका बनाएँ
4. अपनी भूमिका को एक नाम और डिफ़ॉल्ट लेखन-दायरा दें
5. भूमिका में `View-Only Audit Logs` अनुमति जोड़ें
6. उपयोगकर्ता को भूमिका में जोड़ें
**नोट** इस भूमिका को लागू होने में एक घंटे तक का समय लग सकता है।
### उपकरण चलाना
1. इस उपकरण को ZIP के रूप में डाउनलोड करें और इसे अनज़िप करें, या रिपॉज़िटरी को अपने सिस्टम पर क्लोन करें
2. एक PowerShell विंडो खोलें
3. इस मॉड्यूल के स्थान पर निर्देशिकाएँ बदलें `cd C:\path\to\the\module`
4. इस मॉड्यूल को आयात करें `Import-Module .\MandiantAzureADInvestigator.psd1` आपको यह आउटपुट प्राप्त होना चाहिए```
Mandiant Azure AD Investigator
Focusing on UNC2452 Investigations
PS C:\Users\admin\Desktop\mandiant>
Connect-MandiantAzureEnvironment -UserPrincipalName <your username here> चलाकर Azure AD से कनेक्ट करें। आपको एक लॉगिन प्रॉम्प्ट और PowerShell विंडो में आउटपुट प्राप्त होना चाहिए जो कनेक्शन स्थापित होने का संकेत देता है। नोट: यदि आपको समस्याएँ आती हैं तो आपको Set-ExecutionPolicy -ExecutionPolicy RemoteSigned चलाकर अपनी निष्पादन नीति बदलनी पड़ सकती है। इसके लिए व्यवस्थापक विशेषाधिकारों की आवश्यकता हो सकती है।```The module allows access to all existing remote PowerShell (V1) cmdlets in addition to the 9 new, faster, and more reliable cmdlets.
|--------------------------------------------------------------------------| | Old Cmdlets | New/Reliable/Faster Cmdlets | |--------------------------------------------------------------------------| | Get-CASMailbox | Get-EXOCASMailbox | | Get-Mailbox | Get-EXOMailbox | | Get-MailboxFolderPermission | Get-EXOMailboxFolderPermission | | Get-MailboxFolderStatistics | Get-EXOMailboxFolderStatistics | | Get-MailboxPermission | Get-EXOMailboxPermission | | Get-MailboxStatistics | Get-EXOMailboxStatistics | | Get-MobileDeviceStatistics | Get-EXOMobileDeviceStatistics | | Get-Recipient | Get-EXORecipient | | Get-RecipientPermission | Get-EXORecipientPermission | |--------------------------------------------------------------------------|
To get additional information, run: Get-Help Connect-ExchangeOnline or check https://aka.ms/exops-docs
Account Environment TenantId TenantDomain
[email protected] AzureCloud xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx test.onm...
5. सभी जांचें चलाएँ `Invoke-MandiantAllChecks -OutputPath <path\to\output\files>`। आप विशिष्ट cmdlet का उपयोग करके अलग-अलग जांचें भी चला सकते हैं।
6. स्क्रीन पर और लिखित CSV फ़ाइलों में आउटपुट की समीक्षा करें।
## आगे पढ़ें
Mandiant से UNC2452 के संबंध में अतिरिक्त जानकारी के लिए, कृपया देखें:
* [Highly Evasive Attacker Leverages SolarWinds Supply chain to Compromise Multiple Global Victims with SUNBURST Backdoor](https://www.mandiant.com/resources/evasive-attacker-leverages-solarwinds-supply-chain-compromises-with-sunburst-backdoor)
* [Remediation and Hardening Strategies for Microsoft 365 to Defend Against UNC2452](https://www.mandiant.com/resources/remediation-and-hardening-strategies-for-microsoft-365-to-defend-against-unc2452)
UNC2452 की प्रतिक्रिया सुरक्षा उद्योग में एक महत्वपूर्ण प्रयास रहा है और ये ब्लॉग अतिरिक्त योगदानों का भारी उल्लेख करते हैं जो इस उपकरण के उपयोगकर्ताओं के लिए मूल्यवान होंगे। हम अपने वातावरण में गतिविधि को सबसे अच्छी तरह समझने के लिए इन पोस्टों से जुड़ी सामग्री पढ़ने की अनुशंसा करते हैं। हमेशा की तरह, Mandiant टीम अनुवर्ती प्रश्नों का उत्तर देने या जांच में और सहायता करने के लिए उपलब्ध है [यहाँ हमसे संपर्क करके](https://www.mandiant.com/report-incident)।