
(System Center) Configuration Manager (SCCM/CM) SMB शेयरों पर संग्रहीत रोचक फ़ाइलें ढूँढें
CMLoot को System Center Configuration Manager (SCCM/CM) SMB शेयर्स पर संग्रहीत दिलचस्प फाइलों को आसानी से ढूंढने के लिए बनाया गया था। ये शेयर्स विंडोज एंटरप्राइज वातावरण में विंडोज क्लाइंट्स को सॉफ्टवेयर वितरित करने के लिए उपयोग किए जाते हैं और इनमें पासवर्ड, प्रमाणपत्र (pfx) आदि वाली स्क्रिप्ट्स/कॉन्फ़िगरेशन फाइलें हो सकती हैं। अधिकांश SCCM डिप्लॉयमेंट्स को सभी उपयोगकर्ताओं को शेयर्स पर फाइलें पढ़ने की अनुमति देने के लिए कॉन्फ़िगर किया गया है, कभी-कभी यह कंप्यूटर खातों तक सीमित होता है।
SCCM/CM की कंटेंट लाइब्रेरी में एक "जटिल" (कष्टप्रद) फ़ाइल संरचना है जिसे CMLoot आपके लिए सुलझाएगा: https://techcommunity.microsoft.com/t5/configuration-manager-archive/understanding-the-configuration-manager-content-library/ba-p/273349
मूल रूप से DataLib फ़ोल्डर में .INI फ़ाइलें होती हैं, .INI फ़ाइलों का नाम मूल फ़ाइलनाम + .INI होता है। .INI फ़ाइल में फ़ाइल का हैश होता है, और फ़ाइल स्वयं FileLib में <फ़ोल्डर नाम: हैश के पहले 4 अक्षर>\fullhash प्रारूप में संग्रहीत होती है।
CM में पैकेजों पर एक्सेस नियंत्रण लागू करना संभव है। हालांकि यह केवल फ़ाइल डिस्क्रिप्टर (DataLib) के लिए फ़ोल्डर की सुरक्षा करता है, वास्तविक फ़ाइल की नहीं। CMLoot इन्वेंट्री के दौरान किसी भी पैकेज को जिस तक वह पहुंच नहीं सकता (Access denied), फ़ाइल _noaccess.txt में रिकॉर्ड करेगा। Invoke-CMLootHunt फिर इस फ़ाइल का उपयोग करके उन वास्तविक फ़ाइलों की गणना कर सकता है जिनकी सुरक्षा एक्सेस नियंत्रण करने का प्रयास कर रहा है।
Windows Defender for Endpoint (EDR) या अन्य सुरक्षा तंत्र ट्रिगर हो सकते हैं क्योंकि स्क्रिप्ट SMB पर बहुत सारी फ़ाइलों को पार्स करती है।
CM सर्वरों को Active Directory में खोज कर या System Center इंस्टॉल वाले वर्कस्टेशन पर इस रजिस्ट्री कुंजी को प्राप्त करके खोजें:
(Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\SMS\DP -Name ManagementPoints).ManagementPoints
एक से अधिक CM सर्वर तैनात हो सकते हैं और उनमें अलग-अलग फ़ाइलें हो सकती हैं, इसलिए सुनिश्चित करें कि आप उन सभी को ढूंढ लें।
फिर आपको एक इन्वेंट्री फ़ाइल बनाने की आवश्यकता है जो केवल एक टेक्स्ट फ़ाइल है जिसमें फ़ाइल डिस्क्रिप्टर (.INI) के संदर्भ होते हैं। निम्नलिखित कमांड SCCM सर्वर पर सभी .INI फ़ाइलों को पार्स करके उपलब्ध फ़ाइलों की एक सूची तैयार करेगा।
PS> Invoke-CMLootInventory -SCCMHost sccm01.domain.local -Outfile sccmfiles.txt
फिर ऊपर बनाई गई इन्वेंट्री फ़ाइल का उपयोग करके रुचि की फ़ाइलें डाउनलोड करें:
GridView का उपयोग करके फ़ाइलें चुनें (बड़ी इन्वेंट्री फ़ाइलों के साथ प्रभावशीलता भिन्न हो सकती है):
PS> Invoke-CMLootDownload -InventoryFile .\sccmfiles.txt -GridSelect
एक एकल फ़ाइल डाउनलोड करें, इन्वेंट्री टेक्स्ट में एक पंक्ति को कॉपी करके:
PS> Invoke-CMLootDownload -SingleFile \\sccm\SCCMContentLib$\DataLib\SC100001.1\x86\MigApp.xml
एक निश्चित फ़ाइल एक्सटेंशन वाली सभी फ़ाइलें डाउनलोड करें:
PS> Invoke-CMLootDownload -InventoryFile .\sccmfiles.txt -Extension ps1
फ़ाइलें डिफ़ॉल्ट रूप से उस फ़ोल्डर में CMLootOut पर डाउनलोड होंगी जिससे आप स्क्रिप्ट निष्पादित करते हैं, इसे -OutFolder पैरामीटर से बदला जा सकता है। फ़ाइलें (folder: filext)\(हैश के पहले 4 अक्षर>_original filename) प्रारूप में सहेजी जाती हैं।
CMLootInventory द्वारा अप्राप्य पाई गई फ़ाइलों की खोज करें:
Invoke-CMLootHunt -SCCMHost sccm -NoAccessFile sccmfiles_noaccess.txt
एक साथ कई MSI फ़ाइलें निकालें:
Invoke-CMLootExtract -Path .\CMLootOut\msi
इन्वेंट्री चलाएं, उपलब्ध फ़ाइलों को स्कैन करें:

GridSelect का उपयोग करके फ़ाइलें चुनें:

सभी एक्सटेंशन डाउनलोड करें:

खोजें "अप्राप्य" फ़ाइलें और MSI निकालें:

Tomas Rzepka / WithSecure