
OSINT Omnibus (إصدار تجريبي)
يُعرف Omnibus بأنه مجلد يحتوي على العديد من الروايات أو العناصر الأخرى المنشورة سابقًا بشكل منفصل، وهذا هو بالضبط ما يهدف إليه مشروع InQuest Omnibus لجمع المعلومات الاستخباراتية مفتوحة المصدر، والبحث، وإدارة القطع الأثرية.
من خلال توفير تطبيق سطر أوامر تفاعلي سهل الاستخدام، يمكن للمستخدمين إنشاء جلسات للتحقيق في مختلف القطع الأثرية مثل عناوين IP، أسماء النطاقات، عناوين البريد الإلكتروني، أسماء المستخدمين، تجزئات الملفات، عناوين البيتكوين، والمزيد مع استمرارنا في التوسع.
استلهم هذا المشروع من العمالقة الذين سبقوه مثل SpiderFoot وHarpoon وDataSploit. الشكر الجزيل لهؤلاء المؤلفين الرائعين لمساهمتهم في عالم المصادر المفتوحة.
التطبيق كُتب بلغة Python 2.7 وتم اختباره بنجاح على بيئات OSX وUbuntu 16.04.
هذه نسخة بيتا من التطبيق النهائي، وبالتالي قد توجد بعض الأخطاء أو الغرابة أثناء الاستخدام. في الغالب، يعمل Omnibus بشكل كامل ويمكن استخدامه لبدء التحقيق في المصادر المفتوحة فورًا.
تم بناء Omnibus بطريقة معيارية تسمح بإضافة وحدات مصدر بيانات OSINT ووحدات الاستيراد/التصدير بسهولة. يتم تضمين كل وحدة حسب الفئة في دليل واحد، وبإضافة بضعة أسطر من التعليمات البرمجية، يمكن أن تكون وحدتك التالية!
مع استمرار نمو الويكي، سيكون لدينا أمثلة كاملة حول كيفية كتابة إضافات مخصصة.
إذا صادفت أي أخطاء أو مشكلات أخرى، يرجى إنشاء Issue و/أو Pull Request. كما نرحب بدعم المجتمع في إنشاء المزيد من الوحدات وتوسيع حالات استخدام Omnibus. الفروع وطلبات السحب للميزات الجديدة مرحب بها أكثر!
يعمل ملف README هذا كنظرة عامة سريعة على Omnibus وميزاته. التوثيق الكامل متاح في مجلد 'docs' في هذا المستودع.
قبل أن نبدأ، سنحتاج إلى تغطية بعض المصطلحات التي يستخدمها Omnibus.
new أو عن طريق اكتشافها من خلال تنفيذ الوحدةبدء تشغيل Omnibus للتحقيق هو أمر بسيط مثل استنساخ مستودع GitHub هذا، وتثبيت متطلبات Python باستخدام pip install -r requirements.txt وتشغيل python omnibus-cli.py.
شيل أومنبس - بدء التشغيل الرئيسي

للإشارة البصرية لواجهة سطر الأوامر، كما هو موضح أعلاه، تظهر وحدة تحكم Omnibus بعد بدء جلسة جديدة، وتمت إضافة قطعتين أثريتين إلى الجلسة، ويتم عرض قائمة المساعدة help.
يجب عليك تعيين أي مفاتيح API ترغب في استخدامها داخل الوحدات في ملف omnibus/etc/apikeys.json.
هذا الملف هو مستند JSON يحتوي على أماكن شغل لجميع الخدمات التي تتطلب مفاتيح API، ويتم الوصول إليه بواسطة Omnibus على أساس كل وحدة لاسترداد مفتاح API المحدد الذي تحتاجه الوحدة للتنفيذ.
تجدر الإشارة إلى أن معظم الخدمات التي تتطلب مفاتيح API لديها حسابات ومفاتيح API مجانية. قد تحتوي بعض الحسابات المجانية على حدود موارد أقل، لكن هذا لم يكن مشكلة خلال التحقيقات اليومية الصغيرة أو اختبار التطبيق.
نصيحة مفيدة: استخدم الأمر cat apikeys لعرض المفاتيح التي قمت بتخزينها بالفعل.
إذا كانت الوحدات تفشل أو لا تعيد نتائج، تحقق هنا أولاً للتأكد من حفظ مفتاح API الخاص بك بشكل صحيح.
عند تشغيل واجهة سطر الأوامر لأول مرة، ستستقبلك قائمة مساعدة تحتوي على بعض المعلومات الأساسية.
يحاول Omnibus استخدام أوامر تحاكي بعض أوامر Linux الشائعة للألفة وسهولة الاستخدام. على سبيل المثال، الأمر cat لعرض معلومات عن قطعة أثرية، rm لإزالة قطعة أثرية من قاعدة البيانات، ls لعرض القطع الأثرية في الجلسة الحالية، ودعم إعادة توجيه الإخراج لأي أمر باستخدام الحرف >.
كمثال على إعادة توجيه الإخراج، إذا كنت ترغب في استرداد تفاصيل قطعة أثرية مسماة "inquest.net" وحفظها في ملف JSON على القرص المحلي، يمكنك ببساطة تشغيل الأمر:
cat inquest.net > inquest-report.json وسيكون هناك!
هذه الميزة تعمل أيضًا مع مسارات الملفات الكاملة بدلاً من المسارات النسبية.
الأوامر عالية المستوى المستخدمة في Omnibus غالبًا هي:
session
new <اسم القطعة الأثرية>
modules
open <مسار الملف>
ls
rm
wipe
cat <اسم القطعة الأثرية | معرف الجلسة>
<اسم الوحدة> <اسم القطعة الأثرية | معرف الجلسة>
<اسم الآلة> <اسم القطعة الأثرية | معرف الجلسة>
إذا كنت بحاجة إلى مرجع سريع حول الأوامر المختلفة المتاحة لمناطق مختلفة من التطبيق، فهناك قوائم مساعدة فرعية لهذا الغرض بالضبط. استخدام هذه الأوامر سيعرض فقط الأوامر المتاحة ذات الصلة بمنطقة معينة:
general
artifacts
sessions
modules
تبدأ معظم تحقيقات الأمن السيبراني بمؤشر تقني واحد أو أكثر، مثل عنوان IP أو تجزئة ملف أو عنوان بريد إلكتروني. بعد البحث والتحليل، تبدأ العلاقات في التكون ويمكنك التنقل عبر نقاط البيانات المترابطة. تسمى نقاط البيانات هذه بالقطع الأثرية داخل Omnibus وتمثل أي عنصر ترغب في التحقيق فيه.
يمكن أن تكون القطع الأثرية من الأنواع التالية:
الأمر "new" متبوعًا بقطعة أثرية سينشئ تلك القطعة الأثرية داخل جلسة Omnibus الخاصة بك ويخزن سجلًا للقطعة الأثرية في MongoDB. يحمل هذا السجل اسم القطعة الأثرية ونوعها ونوعها الفرعي ونتائج الوحدة ومصدرها وملاحظاتها وعلاماتها ومعلومات الأبناء (حسب الحاجة) ووقت الإنشاء. في كل مرة تقوم فيها بتشغيل وحدة ضد قطعة أثرية تم إنشاؤها أو تخزينها، سيتم تحديث مستند قاعدة البيانات ليعكس المعلومات المكتشفة حديثًا.
لإنشاء قطعة أثرية جديدة وإضافتها إلى MongoDB للتتبع، قم بتشغيل الأمر new <اسم القطعة الأثرية>. على سبيل المثال، للبدء في التحقيق في النطاق inquest.net، يمكنك تشغيل new inquest.net.
سيحدد Omnibus تلقائيًا نوع القطعة الأثرية ويضمن تنفيذ الوحدات من ذلك النوع فقط ضد القطعة الأثرية. إذا حاولت تشغيل قطعة أثرية ضد وحدة لا يمكنها دعم نوع القطعة الأثرية، سيتم إعلامك برسالة تحذير تسرد الأنواع المقبولة.
عند إنشاء وحدة، قد يتم العثور على قطع أثرية جديدة أثناء عملية الاكتشاف. على سبيل المثال، قد يجد تشغيل الأمر "dnsresolve" عناوين IPv4 جديدة لم يرها Omnibus من قبل. إذا كان الأمر كذلك، يتم إنشاء تلك القطع الأثرية المكتشفة حديثًا تلقائيًا كقطع أثرية جديدة في Omnibus وربطها بوالدتها بحقل إضافي يسمى "source" لتحديد الوحدة التي تم العثور عليها منها. في هذا المثال، سيكون مصدر القطع الأثرية المنشأة حديثًا هو "dnsresolve".
يمكن إزالة القطع الأثرية من قاعدة البيانات باستخدام الأمر "rm". إذا لم تعد بحاجة إلى قطعة أثرية، ما عليك سوى تشغيل أمر الحذف وتحديد اسم القطعة الأثرية أو معرف الجلسة إذا كان لديها واحد.
يستخدم Omnibus ميزة تسمى "الجلسات". الجلسات هي ذاكرات مؤقتة يتم إنشاؤها عبر Redis في كل مرة تبدأ فيها جلسة واجهة سطر أوامر. في كل مرة تنشئ فيها قطعة أثرية، يتم إضافة اسم تلك القطعة الأثرية إلى الجلسة مع مفتاح رقمي يسهل الاسترجاع والبحث والإجراء ضد القطعة الأثرية ذات الصلة.
على سبيل المثال، إذا كانت جلستك تحتوي على عنصر واحد هو "inquest.net"، بدلاً من الحاجة إلى تنفيذ virustotal inquest.net يمكنك أيضًا تشغيل virustotal 1 وستحصل على نفس النتائج. في الواقع، يعمل هذا مع أي وحدة أو أمر يستخدم اسم قطعة أثرية كوسيطة أولى.
التفاعل مع معرفات الجلسات بدلاً من أسماء القطع الأثرية

الجلسات هنا للوصول السهل إلى القطع الأثرية وسيتم مسحها في كل مرة تخرج فيها من جلسة سطر الأوامر. إذا كنت ترغب في مسح الجلسة مبكرًا، قم بتشغيل الأمر "wipe" وستحصل على صفحة نظيفة.
يدعم Omnibus حاليًا قائمة الوحدات التالية. إذا كانت لديك اقتراحات لوحدات أو ترغب في كتابة واحدة خاصة بك، يرجى إنشاء طلب سحب (pull request).
أيضًا، داخل وحدة تحكم Omnibus، كتابة اسم الوحدة سيعرض معلومات المساعدة المرتبطة بتلك الوحدة.
الوحدات
الآلات هي طريقة بسيطة لتشغيل جميع الوحدات المتاحة لنوع قطعة أثرية ضد قطعة أثرية معينة. هذه طريقة سريعة إذا كنت ترغب في جمع أكبر قدر ممكن من المعلومات حول هدف باستخدام أمر واحد.
للقيام بذلك، ما عليك سوى تشغيل الأمر machine <اسم القطعة الأثرية|معرف الجلسة> وانتظر بضع دقائق حتى تنتهي الوحدات من التنفيذ.
التحذير الوحيد هو أن هذا قد يعيد حجمًا كبيرًا من البيانات والقطع الأثرية التابعة اعتمادًا على نوع القطعة الأثرية والنتائج لكل وحدة. لعلاج ذلك، نبحث عن طريقة لإزالة حقول محددة من القطعة الأثرية من مستند قاعدة البيانات المخزن لتسهيل على المستخدمين تقليم البيانات غير المرغوب فيها.
بعض الأوامر السريعة التي يجب تذكرها هي:
session - بدء ذاكرة مؤقتة للقطع الأثرية الجديدةcat <اسم القطعة الأثرية>|apikeys - طباعة جميلة لمستند قطعة أثرية أو عرض مفاتيح API المخزنةopen <مسار الملف> - تحميل قائمة ملف نصي من القطع الأثرية إلى Omnibus للتحقيقnew <اسم القطعة الأثرية> - إنشاء قطعة أثرية جديدة وإضافتها إلى MongoDB وجلستكfind <اسم القطعة الأثرية> - التحقق مما إذا كانت قطعة أثرية موجودة في قاعدة البيانات وعرض النتائجالتقارير هي إخراج JSON لمستند قاعدة البيانات الخاص بقطعة أثرية، وهي في الأساس نسخة ملف نصي من إخراج الأمر "cat". ولكن باستخدام الأمر report يمكنك تحديد قطعة أثرية ومسار ملف ترغب في حفظ الإخراج فيه:
omnibus >> report inquest.net /home/adam/intel/osint/reports/inq_report.jsonالأمر أعلاه يتجاوز دليل التقارير القياسي omnibus/reports. بشكل افتراضي، وإذا لم تحدد مسار تقرير، سيتم حفظ جميع التقارير في ذلك الموقع. أيضًا، إذا لم تحدد اسم ملف، سيستخدم التقرير التنسيق التالي:
[اسم_القطعة_الأثرية]_[طابع_زمني].jsonيمكن أيضًا حفظ إخراج الأوامر في ملفات نصية عشوائية باستخدام الحرف القياسي في Linux >.
على سبيل المثال، إذا كنت ترغب في تخزين إخراج بحث VirusTotal لمضيف في ملف يسمى "vt-lookup.json"، يمكنك ببساطة تنفيذ:
virustotal inquest.net > vt-lookup.jsonبشكل افتراضي، يتم حفظ ملفات الإخراج المعاد توجيهها في دليل العمل الحالي، وبالتالي "omnibus/"، ولكن إذا حددت مسارًا كاملاً مثل virustotal inquest.net > /home/adam/intel/cases/001/vt-lookup.json سيتم حفظ الإخراج بتنسيق JSON هناك.