
Microsoft Configuration Manager के लिए एक BloodHound collector
SCCMHound Microsoft Configuration Manager (MCM) के लिए एक C# BloodHound कलेक्टर है। यदि आप Configuration Manager के उपयोगकर्ताओं और कंप्यूटरों से BloodHound सत्र जानकारी एकत्र करने का तरीका खोज रहे हैं, तो यही वह टूल है जिसकी आपको आवश्यकता है!
एकत्रित डेटा को किसी अन्य कलेक्टर के डेटा (SharpHound, SOAPHound, आदि) के साथ आयात करने की अत्यधिक अनुशंसा की जाती है। इससे कोई फर्क नहीं पड़ता कि इसे किसी अन्य डेटासेट से पहले या बाद में आयात किया गया है। इसके परिणामस्वरूप लक्ष्य संगठन के Active Directory संबंधों का एक व्यापक अवलोकन प्राप्त होता है, जो Configuration Manager से एकत्रित जानकारी द्वारा पूरक होता है।
SCCMHound एक ओपन सोर्स प्रोजेक्ट है, न कि CrowdStrike उत्पाद। इस प्रकार, इसके साथ कोई औपचारिक समर्थन नहीं आता, चाहे वह व्यक्त हो या निहित।
SCCMHound Windows 10 संस्करण 1607 और उससे ऊपर के साथ संगतता सुनिश्चित करने के लिए .NET 4.6.2 को लक्षित करता है।
उपयोगकर्ता और कंप्यूटर जानकारी को क्वेरी करने के लिए पर्याप्त पहुँच वाला एक MCM व्यवस्थापक खाता आवश्यक है। संग्रह विधि के आधार पर, CMPivot क्वेरी निष्पादित करने की क्षमता भी आवश्यक है। इस टूल का परीक्षण MCM "Full Administrator" भूमिका वाले उपयोगकर्ता के साथ किया गया है।
सर्वर और साइट कोड MCM कंसोल से, या SharpSCCM जैसे किसी अन्य टूल का उपयोग करके प्राप्त किया जा सकता है।

सबसे पहले, आपको रिपॉजिटरी को क्लोन करना होगा। --recursive निर्दिष्ट किया जाना चाहिए क्योंकि SCCMHound SharpHoundCommon को सबमॉड्यूल के रूप में उपयोग करता है।
e.g. git clone [email protected]:CrowdStrike/sccmhound.git --recursive
एक बार आपके पास स्थानीय प्रति आ जाए, तो Visual Studio में SCCMHound.sln खोलें और कंपाइल करें!
डिफ़ॉल्ट संग्रह विधि का उपयोग करने के लिए, बस एक सर्वर और sitecode तर्क प्रदान करें। SCCMHound MCM से प्रमाणित करने के लिए उस निष्पादन संदर्भ का उपयोग करेगा जिससे इसे आह्वान किया गया है। उदाहरण के लिए:
SCCMHound.exe --server <server> --sitecode <sitecode>
SCCMHound को किसी अन्य उपयोगकर्ता के संदर्भ से या डोमेन से जुड़ी न होने वाली मशीन से निष्पादित करने के लिए, -u (--username), -p (--password), और -d (--domain) तर्क आवश्यक हैं। उदाहरण के लिए:
SCCMHound.exe --server <server> --sitecode <sitecode> -u <username> -p <password> -d <domain>
वैकल्पिक रूप से, SCCMHound को आह्वान करने से पहले runas /netonly का उपयोग किया जा सकता है:
runas /netonly /user:[email protected] cmd.exe
cd C:\path\to\SCCMHound
SCCMHound.exe --server <server> --sitecode <sitecode>
याद है जब BloodHound सत्र डेटा एकत्र करना आसान था? खैर...

सुंदर क्रेडेंशियल चोरी और lateral movement ग्राफ़!!!

कृपया दयालु रहें जबकि अनुरक्षक/अनुरक्षकगण एकत्रित डेटा स्रोतों का विस्तार करते हैं और किसी भी बग को ठीक करते हैं :)
ठीक है, ठीक है... यह सभी संग्रह विधियों को आह्वान करेगा (CMPivot संग्रह विधियों सहित):
SCCMHound.exe --server <server> --sitecode <sitecode> -c All
--server Required. SCCM server hostname/IP address.
--sitecode Required. SCCM sitecode.
-c, --collectionmethods (Default: Default) (LocalAdmins, CurrentSessions, All)
--loop (Default: false) Enable loop collection.
--loopduration (Default: 00:30:00) Loop Duration.
--loopsleep (Default: 60) Sleep time between loops in seconds.
--hc (Default: false) Health check. Simply tests authentication and exits.
-u, --username SCCM administrator username.
-p, --password SCCM administrator password.
-d, --domain SCCM administrator domain.
-v, --verbose (Default: false) Print verbose information to help with troubleshooting.
--help Display this help screen.
--version Display version information.
डिफ़ॉल्ट संग्रह विधि (कोई -c तर्क निर्दिष्ट/आवश्यक नहीं) निर्दिष्ट MCM साइट सर्वर के लिए केवल WMI कनेक्शन का उपयोग करके एक BloodHound डेटासेट बनाती है। यह संग्रह विधि एकत्र करेगी:
यह संग्रह विधि MCM में प्रत्येक Computer ऑब्जेक्ट के लिए वर्तमान में लॉग ऑन उपयोगकर्ता की जानकारी एकत्र करती है। इसकी सीमा यह है कि यह केवल MCM द्वारा रिपोर्ट किए गए लॉग ऑन उपयोगकर्ता को एकत्र करती है, चाहे कई उपयोगकर्ता प्रमाणित हों या न हों।
SCCMHound केवल उपयोगकर्ताओं के लिए समूह सदस्यता को स्वचालित रूप से आबाद करता है। ConfigMgr में Group ऑब्जेक्ट में चाइल्ड ग्रुप या पैरेंट ग्रुप जानकारी नहीं होती प्रतीत होती है, इसलिए BloodHound में समूह केवल User सदस्य दिखाएँगे। इसके लिए आगे जाँच की आवश्यकता है और यदि किसी अन्य डेटासेट (SharpHound, SOAPHound, आदि) के साथ आयात किया जाता है तो यह कोई समस्या नहीं है।
इस संग्रह विधि का उपयोग करके अधिक सत्र कवरेज प्राप्त करने के लिए, --loop तर्क का उपयोग नियमित रूप से सत्र जानकारी एकत्र करने के लिए किया जा सकता है।
यह संग्रह विधि (-c LocalAdmins) "Default" संग्रह विधि के व्यवहार को निष्पादित करती है, और प्रत्येक MCM-प्रबंधित कंप्यूटर के लिए स्थानीय Administrators समूह की सामग्री एकत्र करने हेतु "All Systems" संग्रह को भी क्वेरी करती है।
नोट (1): यह संग्रह विधि केवल उन डिवाइसों को क्वेरी करती है जो ऑनलाइन हैं। बेहतर कवरेज प्राप्त करने के लिए इसका उपयोग --loop तर्क के साथ किया जा सकता है।
नोट (2): यह संग्रह विधि सभी सदस्यों पर क्वेरी निष्पादित करने के लिए CMPivot का उपयोग करती है।
यह संग्रह विधि (-c CurrentSessions) "Default" संग्रह विधि के व्यवहार को निष्पादित करती है, और प्रत्येक MCM-प्रबंधित कंप्यूटर के लिए वास्तविक समय सत्र जानकारी एकत्र करने हेतु "All Systems" संग्रह को भी क्वेरी करती है।
यह संग्रह विधि केवल उन डिवाइसों को क्वेरी करती है जो वर्तमान में ऑनलाइन हैं। बेहतर कवरेज पाने के लिए इसका उपयोग --loop तर्क के साथ किया जा सकता है।
नोट (1): यह संग्रह विधि केवल उन डिवाइसों को क्वेरी करती है जो ऑनलाइन हैं। बेहतर कवरेज प्राप्त करने के लिए इसका उपयोग --loop तर्क के साथ किया जा सकता है।
नोट (2): यह संग्रह विधि सभी सदस्यों पर क्वेरी निष्पादित करने के लिए CMPivot का उपयोग करती है।
सभी संग्रह विधियों को एक साथ चलाने के लिए, संग्रह विधि के लिए बस All (-c All) निर्दिष्ट करें
CMPivot कैसे काम करता है, इसकी बेहतर समझ पाने के लिए मैं निम्नलिखित Microsoft दस्तावेज़ को पढ़ने की अनुशंसा करूँगा: https://learn.microsoft.com/en-us/mem/configmgr/core/servers/manage/cmpivot
tl;dr - CMPivot संग्रह विधियों का परीक्षण Microsoft द्वारा 50,000 क्लाइंट्स तक वाले वातावरणों में किया गया है, जिन्होंने नेटवर्क पर <50MB ट्रैफ़िक उत्पन्न किया। SCCMHound की संग्रह विधियों का परीक्षण ~1000 मशीनों वाले वातावरणों में किया गया है, जिनमें कोई पहचानी गई समस्या या सेवा में गिरावट नहीं पाई गई।
बड़े वातावरणों में इन संग्रह विधियों के बारे में कोई भी प्रतिक्रिया रिपोर्ट करने में संकोच न करें ताकि इसे यहाँ शामिल किया जा सके।
उत्कृष्ट सत्र और स्थानीय Administrator कवरेज के अतिरिक्त, SCCMHound एकत्रित ऑब्जेक्ट्स को अतिरिक्त गुणों से आबाद करता है। इन्हें Bloodhound में "Node Info" टैब में देखा जा सकता है, जिनके आगे "sccm" जुड़ा होता है। उदाहरण के लिए sccmADSiteName।
एकत्रित गुणों में शामिल हैं:
customqueries.json Cypher क्वेरी प्रदान करता है जिन्हें आयातित SCCMHound डेटासेट के साथ निष्पादित किया जा सकता है। SCCMHound में अतिरिक्त कार्यक्षमता जोड़े जाने पर इसे विस्तारित किया जाएगा।
इसका उपयोग करने के लिए, बस customqueries.json को ~/.config/bloodhound/customqueries.json पर कॉपी करें और BloodHound को पुनः प्रारंभ करें। क्वेरी तब BloodHound के "Analysis" टैब के अंतर्गत दिखाई देंगी।