لقد تم إهمال هذا المشروع لصالح SHARPHOUND3. البيانات التي تم جمعها باستخدام هذه الطريقة لن تعمل مع BloodHound 3.0
SharpHound - إعادة كتابة أداة BloodHound Ingestor بلغة C#
احصل على SharpHound
أحدث إصدار من SharpHound سيكون دائمًا في مستودع BloodHound هنا
تعليمات الترجمة (Compile)
تمت كتابة Sharphound باستخدام ميزات C# 7.0. لترجمة هذا المشروع بسهولة، استخدم Visual Studio 2017.
إذا كنت ترغب في الترجمة على إصدارات أقدم من Visual Studio، يمكنك تثبيت حزمة nuget Microsoft.Net.Compilers.
سيؤدي بناء المشروع إلى إنشاء ملف تنفيذي بالإضافة إلى سكربت PowerShell يغلّف الملف التنفيذي. جميع التبعيات مدمجة في الثنائي.
المتطلبات
تم تصميم Sharphound لاستهداف .Net 3.5. يجب تشغيل Sharphound من سياق مستخدم نطاق (domain user)، إما مباشرة عبر تسجيل الدخول أو عبر طريقة أخرى مثل RUNAS.
مزيد من المعلومات
الاستخدام
خيارات التعداد
- CollectionMethod - طريقة التعداد المستخدمة. تقبل هذه المعلمة قائمة مفصولة بفواصل. لها القيم المحتملة التالية (الافتراضي: Default):
- Default - تنفيذ جمع عضوية المجموعات، جمع ثقة النطاق، جمع المسؤولين المحليين، وجمع الجلسات
- Group - تنفيذ جمع عضوية المجموعات
- LocalAdmin - تنفيذ جمع المسؤولين المحليين
- RDP - تنفيذ جمع مستخدمي سطح المكتب البعيد
- DCOM - تنفيذ جمع مستخدمي COM الموزع
- GPOLocalGroup - تنفيذ جمع المسؤولين المحليين باستخدام كائنات نهج المجموعة
- Session - تنفيذ جمع الجلسات
- ComputerOnly - تنفيذ جمع المسؤولين المحليين و RDP و DCOM والجلسات
- LoggedOn - تنفيذ جمع الجلسات المميزة (يتطلب حقوق مسؤول على الأنظمة المستهدفة)
- Trusts - تنفيذ تعداد ثقات النطاق
- ACL - تنفيذ جمع قوائم التحكم بالوصول
- Container - تنفيذ جمع الحاويات
- DcOnly - تنفيذ الجمع باستخدام LDAP فقط. يشمل Group و Trusts و ACL و ObjectProps و Container و GPOLocalGroup.
- All - تنفيذ جميع طرق الجمع باستثناء GPOLocalGroup و LoggedOn
- SearchForest - البحث في جميع نطاقات الغابة بدلاً من النطاق الحالي فقط
- Domain - البحث في نطاق معين. يستخدم نطاقك الحالي إذا كانت القيمة فارغة (الافتراضي: null)
- Stealth - تنفيذ طرق جمع خفية. جميع خيارات التخفي أحادية الخيط.
- SkipGCDeconfliction - تخطي حل تعارض الكتالوج العام أثناء تعداد الجلسات. يمكن أن يؤدي هذا إلى تسريع التعداد، لكنه قد يؤدي إلى عدم دقة محتملة في البيانات.
- ExcludeDc - يستثني وحدات تحكم النطاق من التعداد (يتجنب علامات Microsoft ATA :) )
- ComputerFile - تحديد ملف لتحميل أسماء/عناوين IP للأجهزة منه
- OU - تحديد الوحدة التنظيمية المراد تعدادها
خيارات الاتصال
- DomainController - تحديد وحدة تحكم النطاق المراد الاتصال بها (الافتراضي: null)
- LdapPort - تحديد المنفذ الذي يعمل عليه LDAP (الافتراضي: 0)
- SecureLdap - الاتصال بـ Active Directory باستخدام LDAP الآمن بدلاً من LDAP العادي. سيتم الاتصال بالمنفذ 636 افتراضيًا.
- IgnoreLdapCert - يتجاهل شهادة SSL الخاصة بـ LDAP. استخدمه إذا كانت هناك شهادة موقعة ذاتيًا على سبيل المثال
- LDAPUser - اسم المستخدم للاتصال بـ LDAP. يتطلب أيضًا معلمة LDAPPassword (الافتراضي: null)
- LDAPPass - كلمة مرور المستخدم للاتصال بـ LDAP. يتطلب أيضًا معلمة LDAPUser (الافتراضي: null)
- DisableKerbSigning - تعطيل تشفير LDAP. غير موصى به.
خيارات الأداء
- Threads - تحديد عدد الخيوط المستخدمة (الافتراضي: 10)
- PingTimeout - تحديد مهلة طلبات ping بالمللي ثانية (الافتراضي: 250)
- SkipPing - يوجه Sharphound لتخطي طلبات ping للتحقق من أن الأنظمة تعمل
- LoopDelay - عدد الثواني بين حلقات الجلسات (الافتراضي: 300)
- MaxLoopTime - مقدار الوقت لمواصلة حلقات الجلسات. الصيغة هي 0d0h0m0s. القيمة null تعني التكرار لمدة ساعتين. (الافتراضي: 2h)
- Throttle - يضيف تأخيرًا بعد كل طلب إلى جهاز كمبيوتر. القيمة بالمللي ثانية (الافتراضي: 0)
- Jitter - يضيف نسبة تذبذب (jitter) إلى Throttle. (الافتراضي: 0)
خيارات الإخراج
- JSONFolder - المجلد الذي يتم تخزين ملفات JSON فيه (الافتراضي: .)
- JSONPrefix - بادئة لإضافتها إلى ملفات JSON الخاصة بك (الافتراضي: "")
- NoZip - لا تضغط ملفات JSON في ملف zip. يترك ملفات JSON على القرص. (الافتراضي: false)
- EncryptZip - إضافة كلمة مرور مولدة عشوائيًا إلى ملف zip.
- ZipFileName - تحديد اسم ملف zip
- RandomFilenames - عشوائية أسماء ملفات الإخراج
- PrettyJson - إخراج JSON بمسافات بادئة على أسطر متعددة لتحسين قابلية القراءة. المقابل هو زيادة حجم الملف.
خيارات التخزين المؤقت
- CacheFile - اسم ملف ذاكرة التخزين المؤقت لـ Sharphound. (الافتراضي: .bin)
- NoSaveCache - لا تحفظ ملف ذاكرة التخزين المؤقت على القرص. بدون هذه العلامة، سيتم إنشاء .bin على القرص
- Invalidate - إبطال ملف ذاكرة التخزين المؤقت وإنشاء ذاكرة تخزين مؤقت جديدة
خيارات متنوعة
- StatusInterval - الفاصل الزمني لعرض التقدم أثناء التعداد بالمللي ثانية (الافتراضي: 30000)
- Verbose - تفعيل الإخراج المفصل