
اجمع اجمع اجمع

جاكداو هنا لجمع كل المعلومات في مجالك، وتخزينها في قاعدة بيانات SQL، وعرض رسوم بيانية جميلة توضح كيفية تفاعل كائنات مجالك مع بعضها البعض وكيف يمكن لمهاجم محتمل استغلال هذه التفاعلات. كما يأتي مع ميزة مفيدة لمساعدتك في مشروع كسر كلمات المرور عن طريق تخزين/البحث/الإبلاغ عن التجزئات/كلمات المرور/المستخدمين.
dbinitenum. يمكن القيام بذلك تلقائيًا على Windows بالنقر المزدوج على الملف التنفيذي، أو كتابة jackdaw.exe auto.nest للحصول على واجهة الويب. بشكل افتراضي، يتم تقديمها تحت http://127.0.0.1:5000/nest وهناك واجهة برمجة تطبيقات موثقة بـ SWAGGER تحت http://127.0.0.1:5000/ui.Generate graph cache مرة واحدة فقط للحصول على معلومات الحواف في ملف ذاكرة تخزين مؤقت. قد يستغرق ذلك بعض الوقت لكن في سطر الأوامر سترى شريط تقدم.graph view لكن لا تنسَ تحديد رقم ذاكرة التخزين المؤقت الصحيح في الأعلى يسارًا.سيتم تحديث هذا القسم بانتظام بناءً على ملاحظات المستخدمين.
لا توجد نصيحة هنا، فبينما يمكن إجراء بعض التحسينات في الكود، لا يوجد شيء يمكن لمستخدم عادي فعله.
يجب توليد ملف ذاكرة التخزين المؤقت لبيانات الرسم البياني لكل رسم بياني مرة واحدة (ومرة واحدة فقط)، وقد يستغرق ذلك بعض الوقت باستخدام أداة sqlalchemy الافتراضية.
يمكن تحسين الأداء والسرعة بشكل كبير (أكثر من 50 ضعفًا في السرعة و20 ضعفًا أقل في الذاكرة) إذا استخدمت خلفية sqlite AND وضعت أداة سطر الأوامر "sqlite3" في PATH. أوصي بذلك لكل مستخدم.
هنا يأتي الجزء الأكبر من المقايضة. التنفيذ المبكر لجاكداو استخدم وحدة networkx كخلفية للرسم البياني لأنها مكتوبة بالكامل بلغة Python. لكن هذا جاء بتكلفة كبيرة جدًا في الذاكرة والسرعة. لكي يكون جاكداو خالصًا بلغة Python، لا يزال هذا الخيار موجودًا، لكن استخدام خلفية igraph هو الافتراضي الآن.
ملاحظة: igraph هي مكتبة C++ مع روابط Python. تحتوي على حزم مجمعة مسبقًا لنظام Windows ومعظم توزيعات Linux الرئيسية، لكن إذا استخدمت جاكداو على شيء آخر (أنظمة مدمجة/هواتف محمولة/متصفحات ويب)، فستحتاج إما إلى العودة إلى networkx أو المعاناة مع وقت التجميع الطويل.
لا حاجة لتهيئة قاعدة البيانات مسبقًا، سيتم ذلك تلقائيًا.
باستخدام الملف الثنائي الموزع يمكنك فقط النقر المزدوج على jackdaw.exe
باستخدام كـ script بايثون jackdaw auto
jackdaw --sql sqlite:///<المسار الكامل هنا>/test.db dbinit
في أنظمة LINUX، <المسار الكامل هنا> يتضمن أول / لذا سيكون لديك //// أربعة (4) شرطات قبل اسم الملف. لا تنزعج.
jackdaw --sql sqlite:///test.db enum 'ldap+sspi-ntlm://<المجال>\<نائب>@10.10.10.2' 'smb+sspi-ntlm://<المجال>\<نائب>@10.10.10.2'
كلمة المرور هي Passw0rd!
jackdaw --sql sqlite:///test.db enum 'ldap+ntlm-password://TEST\victim:[email protected]' 'smb+ntlm-password://TEST\victim:[email protected]'
كلمة المرور هي Passw0rd!
jackdaw --sql sqlite:///test.db ldap 'ldap+ntlm-password://TEST\victim:[email protected]'
jackdaw --sql sqlite:///<المسار الكامل إلى قاعدة البيانات> nest
افتح http://127.0.0.1:5000/ui للوصول إلى API
يرجى الاطلاع على قسم Building the UI أدناه لتعلم كيفية بناء واجهة المستخدم. بمجرد بنائها:
افتح http://127.0.0.1:5000/nest لواجهة الرسم البياني (تعرض الرسم البياني، لكنها بعيدة عن العمل)
مرحلة تعداد LDAP تكتسب بيانات حول معلومات AD، المستخدم، الجهاز، الوحدة التنظيمية، كائنات المجموعة والتي سيتم تمثيلها كعقدة في الرسم البياني، وكجدول منفصل في قاعدة البيانات. بالإضافة إلى ذلك، سيتم تحليل موصّف الأمان لجميع الكائنات المذكورة أعلاه وإضافة قوائم التحكم في الوصول (ACLs) لـ DACL إلى قاعدة البيانات. هذا، إلى جانب معلومات العضوية، سيتم تمثيله كحواف في الرسم البياني. بالإضافة إلى ذلك، يمكن إجراء استعلامات SQL مخصصة على أي من أنواع البيانات المذكورة أعلاه عند الحاجة.
مرحلة تعداد SMB تكتسب بيانات حول المشاركات، المجموعات المحلية، الجلسات، بيانات NTLM عبر الاتصال بكل جهاز في المجال (الذي يتم الحصول عليه عبر LDAP)
وحدة Kerberos تقوم بـ kerberoasting و aspreproasting تلقائيًا
يسمح الإطار للمستخدمين برفع تفريغات ذاكرة LSASS لتخزين بيانات الاعتماد وتوسيع جدول معلومات الجلسة. سيتم استخدام كلاهما كحواف إضافية في الرسم البياني (كلمة مرور مشتركة وجلسة على التوالي). كما يستخدم الإطار هذه المعلومات لإنشاء تقرير كلمة مرور حول بيانات الاعتماد الضعيفة/المشتركة/المكسورة.
يسمح الإطار للمستخدمين برفع ملفات DCSYNC الخاصة بـ impacket لتخزين بيانات الاعتماد. سيتم استخدام هذا كحواف إضافية في الرسم البياني (كلمة مرور مشتركة). كما يستخدم الإطار هذه المعلومات لإنشاء تقرير كلمة مرور حول بيانات الاعتماد الضعيفة/المشتركة/المكسورة.
يسمح الإطار بتمديد قاعدة البيانات المتاحة يدويًا في كل جانب. مثال: عند اكتشاف معلومات جلسة المستخدم على جهاز معين (خارج التعداد التلقائي)، هناك إمكانية لرفع هذه الجلسات يدويًا، مما سيؤدي إلى ملء قاعدة البيانات وكذلك رسم الرسم البياني الناتج
يمكن للإطار توليد رسم بياني باستخدام المعلومات المتاحة في قاعدة البيانات ورسمه عبر واجهة الويب (nest). علاوة على ذلك، يمكن استدعاء توليد الرسم البياني وحسابات المسارات برمجيًا، إما باستخدام API الويب (نقطة نهاية /ui) أو وظائف كائن الرسم البياني.
يمكن للإطار تحديد التكوينات الخاطئة الشائعة في AD دون توليد رسم بياني. حاليًا فقط عبر API الويب.
يتضمن كشف الحالات الشاذة للمستخدم كشف أذونات UAC غير الآمنة وقيم وصف المستخدم الواسعة. من المتوقع أن تنمو هذه المجموعة من الميزات في المستقبل مع تنفيذ ميزات جديدة.
يتضمن كشف الحالات الشاذة للجهاز كشف أذونات UAC غير الآمنة، توقيع SMB غير إلزامي، إصدار نظام تشغيل قديم، الأجهزة خارج المجال. من المتوقع أن تنمو هذه المجموعة من الميزات في المستقبل مع تنفيذ ميزات جديدة.
الإطار لا يقوم بأي كسر، فقط تنظيم التجزئات ونتائج الكسر
حاليًا التركيز الرئيسي على نتائج dcsync الخاصة بـ impacket و aiosmb! تجزئات NT و LM فقط!
العملية النموذجية كالتالي:
ملاحظة من المؤلف: تم تنفيذ هذه الميزة لكل من المهاجمين والمدافعين. شخصيًا لا أرى قيمة مضافة كبيرة على أي من الجانبين، لأنه عند الحصول على تجزئة NT لمستخدم، فهي بنفس جودة كلمة المرور... ومع ذلك، تقوم المزيد والمزيد من الشركات بإجراء تمارين قوة كلمة المرور، وهذه الميزة ستساعدهم. بالنسبة للمهاجمين: إنها مجرد استعراض في هذه المرحلة، لكن تفضل. ربما تخيف الإدارة للحصول على نقاط إضافية.
هذا المشروع في مرحلة تجريبية! هذا يعني عدة أشياء:
يستخدم جاكداو وحدة ORM الخاصة بـ SQLAlchemy، مما يمنحك خيار استخدام أي خلفية قاعدة بيانات SQL تريد. تتم الاختبارات بشكل رئيسي على SQLite لأسباب واضحة. لن يتم استخدام أوامر خاصة بخلفية معينة في هذا المشروع تحد من استخدامك.
هذا مطلوب فقط إذا قمت بالتثبيت عبر GIT و/أو قمت بتغيير شيء في كود واجهة المستخدم
واجهة المستخدم مكتوبة بـ React. قبل الاستخدام/التثبيت الأول، يجب بناؤها. لهذا، ستحتاج إلى تثبيت nodejs و npm. ثم:
jackdaw/nest/site/nuinpm installnpm run buildبمجرد الانتهاء مما سبق، واجهة المستخدم جاهزة للاستخدام.
"إذا رأيت أبعد، فذلك لأنني وقفت على أكتاف العمالقة."
فريق BloodHound
@dirkjanm (https://github.com/dirkjanm/)
Zsolt Imre (https://github.com/keymandll)
يرجى الاطلاع على قسم الشكر في وحدات aiosmb و msldap