
جامع BloodHound لـ Microsoft Configuration Manager
SCCMHound هي أداة تجميع بصيغة C# لتقنية BloodHound خاصة بـ Microsoft Configuration Manager (MCM). إذا كنت تبحث عن طريقة لجمع معلومات جلسات BloodHound من مستخدمي وأجهزة Configuration Manager، فهذه هي الأداة المناسبة لك!
يُوصى بشدة باستيراد البيانات المجموعة مع بيانات جامع آخر (SharpHound, SOAPHound, وغيرها). لا يهم سواء تم الاستيراد قبل أو بعد مجموعة بيانات أخرى. ينتج عن ذلك نظرة شاملة واسعة لعلاقات Active Directory الخاصة بالمؤسسة المستهدفة، معززة بمعلومات تم جمعها من Configuration Manager.
SCCMHound هو مشروع مفتوح المصدر، وليس منتجًا من CrowdStrike. وبالتالي، لا يحمل أي دعم رسمي، صريحًا أو ضمنيًا.
يستهدف SCCMHound إطار .NET 4.6.2 لضمان التوافق مع إصدارات Windows 10 الإصدار 1607 وما فوق.
مطلوب حساب مسؤول MCM مع صلاحية وصول كافية للاستعلام عن معلومات المستخدمين والأجهزة. اعتمادًا على طريقة التجميع، يُشترط أيضًا القدرة على تنفيذ استعلامات CMPivot. تم اختبار هذه الأداة مع مستخدم مُعيّن بدور MCM "Full Administrator".
يمكن استرجاع الخادم ورمز الموقع من وحدة تحكم MCM، أو باستخدام أداة أخرى مثل SharpSCCM.

أولاً، ستحتاج إلى استنساخ المستودع. يجب تحديد --recursive لأن SCCMHound تستخدم SharpHoundCommon كوحدة فرعية.
مثال: git clone [email protected]:CrowdStrike/sccmhound.git --recursive
بمجرد حصولك على نسخة محلية، افتح SCCMHound.sln في Visual Studio وقم بالتجميع!
لاستخدام طريقة التجميع الافتراضية، ما عليك سوى توفير وسيطي الخادم ورمز الموقع. ستستخدم 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>
بدلاً من ذلك، يمكن استخدام runas /netonly قبل استدعاء SCCMHound:
runas /netonly /user:[email protected] cmd.exe
cd C:\path\to\SCCMHound
SCCMHound.exe --server <server> --sitecode <sitecode>
تذكر عندما كان جمع بيانات جلسات BloodHound أمرًا سهلاً؟ حسنًا...

رسوم بيانية جميلة لسرقة بيانات الاعتماد والحركة الجانبية!!!

يرجى التحلي باللطف بينما يقوم القائمون على الصيانة بتوسيع مصادر البيانات المجمعة وإصلاح أي أخطاء :)
حسنًا، حسنًا... هذا سيستدعي جميع طرق التجميع (بما في ذلك طرق تجميع CMPivot):
SCCMHound.exe --server <server> --sitecode <sitecode> -c All
--server مطلوب. اسم مضيف خادم SCCM أو عنوان IP الخاص به.
--sitecode مطلوب. رمز موقع SCCM.
-c, --collectionmethods (الافتراضي: Default) (LocalAdmins, CurrentSessions, All)
--loop (الافتراضي: false) تفعيل التجميع الدوري.
--loopduration (الافتراضي: 00:30:00) مدة الدورة.
--loopsleep (الافتراضي: 60) زمن النوم بين الدورات بالثواني.
--hc (الافتراضي: false) فحص الصحة. يختبر المصادقة فقط ثم يخرج.
-u, --username اسم مستخدم مسؤول SCCM.
-p, --password كلمة مرور مسؤول SCCM.
-d, --domain مجال مسؤول SCCM.
-v, --verbose (الافتراضي: false) طباعة معلومات تفصيلية للمساعدة في استكشاف الأخطاء وإصلاحها.
--help عرض شاشة المساعدة هذه.
--version عرض معلومات الإصدار.
طريقة التجميع الافتراضية (بدون تحديد/الحاجة إلى وسيط -c) تُنشئ مجموعة بيانات BloodHound باستخدام اتصالات WMI فقط مع خادم موقع MCM المحدد. ستقوم طريقة التجميع هذه بجمع:
تجمع طريقة التجميع هذه معلومات المستخدم الذي سجّل الدخول حاليًا لكل كائن جهاز في MCM. هذا له قيد يتمثل في جمع المستخدم المُبلَّغ عنه من MCM فقط باعتباره المسجّل دخوله، بغض النظر عما إذا كان هناك عدة مستخدمين مصادَق عليهم.
تقوم SCCMHound تلقائيًا بملء عضوية المجموعات للمستخدمين فقط. لا يبدو أن كائنات المجموعات في ConfigMgr تحتوي على معلومات مجموعة فرعية أو مجموعة رئيسية، لذا ستُظهر المجموعات في BloodHound أعضاء من المستخدمين فقط. يتطلب هذا مزيدًا من التحقيق وليس مشكلة إذا تم الاستيراد مع مجموعة بيانات أخرى (SharpHound, SOAPHound, وغيرها).
للحصول على تغطية جلسات أكبر باستخدام طريقة التجميع هذه، يمكن استخدام الوسيط --loop لجمع معلومات الجلسات بشكل دوري.
تنفذ طريقة التجميع هذه (-c LocalAdmins) سلوك طريقة التجميع "Default"، وتستعلم أيضًا عن مجموعة "All Systems" لجمع محتويات مجموعة Administrators المحلية لكل جهاز مُدار بواسطة MCM.
ملاحظة (1): تستعلم طريقة التجميع هذه فقط عن الأجهزة المتصلة بالإنترنت. يمكن استخدامها مع الوسيط --loop للحصول على تغطية أفضل.
ملاحظة (2): تستخدم طريقة التجميع هذه CMPivot لتنفيذ الاستعلام على جميع الأعضاء.
تنفذ طريقة التجميع هذه (-c CurrentSessions) سلوك طريقة التجميع "Default"، وتستعلم أيضًا عن مجموعة "All Systems" لجمع معلومات الجلسات في الوقت الفعلي لكل جهاز مُدار بواسطة MCM.
تستعلم طريقة التجميع هذه فقط عن الأجهزة المتصلة بالإنترنت حاليًا. يمكن استخدامها مع الوسيط --loop للحصول على تغطية أفضل.
ملاحظة (1): تستعلم طريقة التجميع هذه فقط عن الأجهزة المتصلة بالإنترنت. يمكن استخدامها مع الوسيط --loop للحصول على تغطية أفضل.
ملاحظة (2): تستخدم طريقة التجميع هذه CMPivot لتنفيذ الاستعلام على جميع الأعضاء.
لتشغيل جميع طرق التجميع دفعة واحدة، ما عليك سوى تحديد All (-c All) كطريقة تجميع.
أوصي بقراءة وثائق Microsoft التالية لفهم أفضل لكيفية عمل CMPivot: https://learn.microsoft.com/en-us/mem/configmgr/core/servers/manage/cmpivot
باختصار - تم اختبار طرق تجميع CMPivot بواسطة Microsoft في بيئات تحتوي على ما يصل إلى 50,000 عميل مما أدى إلى توليد حركة مرور أقل من 50MB عبر الشبكة. تم اختبار طرق تجميع SCCMHound في بيئات تضم حوالي 1000 جهاز دون تحديد أي مشاكل أو تدهور في الخدمة.
لا تتردد في الإبلاغ عن أي ملاحظات حول طرق التجميع هذه في البيئات الكبيرة حتى يمكن تضمينها هنا.
بالإضافة إلى التغطية الممتازة للجلسات ومسؤولي النظام المحليين، تملأ SCCMHound الكائنات المجمعة بخصائص إضافية. يمكن ملاحظتها في علامة التبويب "Node Info" في BloodHound، مسبوقة بـ "sccm". على سبيل المثال sccmADSiteName.
تشمل الخصائص المجمعة:
يوفر customqueries.json استعلامات Cypher يمكن تنفيذها مع مجموعة بيانات SCCMHound مستوردة. سيتم توسيع هذا مع إضافة وظائف إضافية إلى SCCMHound.
لاستخدام هذا، ما عليك سوى نسخ customqueries.json إلى ~/.config/bloodhound/customqueries.json وإعادة تشغيل BloodHound. ستظهر الاستعلامات بعد ذلك ضمن علامة تبويب "Analysis" في BloodHound.