Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ThePhish — ThePhish: أداة تحليل تلقائي لرسائل البريد الإلكتروني التصيدية | Kitploit
أدوات/GitHubGitHub/emalderson/thephish
إدارة مؤشرات الاختراق (IOC)أدوات التصيدالتصيد الاحتياليتحليل البرمجيات الخبيثةالتحاليل الرقمية الجنائيةاستخبارات التهديداتالاستجابة للحوادثأمان البريد الإلكتروني
GitHubemalderson/thephish

ThePhish

ThePhish: أداة تحليل تلقائي لرسائل البريد الإلكتروني التصيدية

عرض المستودع
1.4k19824منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

ThePhish

ThePhish هي أداة تحليل آلي لرسائل البريد الإلكتروني التصيدية تعتمد على TheHive و Cortex و MISP. وهي تطبيق ويب مكتوب بلغة Python 3 ويستند إلى Flask، يقوم بأتمتة عملية التحليل بأكملها بدءًا من استخراج المؤشرات (observables) من عنوان الرسالة ومحتواها وصولاً إلى صياغة حكم نهائي في معظم الحالات. بالإضافة إلى ذلك، فإنه يسمح للمحلل بالتدخل في عملية التحليل والحصول على تفاصيل إضافية حول البريد الإلكتروني الذي يتم تحليله إذا لزم الأمر. للتفاعل مع TheHive و Cortex، يستخدم TheHive4py و Cortex4py، وهما عميلا Python API اللذان يسمحان باستخدام REST APIs المتاحة من TheHive و Cortex على التوالي.

OS made-with-python Docker Maintenance GitHub Documentation

جدول المحتويات

  • نظرة عامة
  • مثال استخدام ThePhish
    • يرسل المستخدم بريدًا إلكترونيًا إلى ThePhish
    • يقوم المحلل بتحليل البريد الإلكتروني
  • التنفيذ
  • التثبيت
    • التثبيت باستخدام Docker و Docker Compose
    • التثبيت من الصفر
  • تكوين المحللات (analyzers)
    • تكوين مستويات المحللات
    • المحللات المختبرة
    • تفعيل محلل MISP
    • تفعيل محلل Yara
  • تفعيل مستجيب Mailer
  • استخدام القائمة البيضاء
  • المساهمة في TheHive4py
  • المساهمة في Cortex-Analyzers
  • الترخيص
  • المنشورات الأكاديمية
  • من يتحدث عن ThePhish
  • مستودعات GitHub التي تذكر ThePhish
  • الإسناد

نظرة عامة

يوضح الرسم البياني التالي كيفية عمل ThePhish على مستوى عالٍ:

  1. يبدأ المهاجم حملة تصيد ويرسل بريدًا إلكترونيًا تصيديًا إلى مستخدم.
  2. يمكن للمستخدم الذي يتلقى هذا البريد الإلكتروني إرساله كمرفق إلى صندوق البريد الذي يستخدمه ThePhish.
  3. يتفاعل المحلل مع ThePhish ويختار البريد الإلكتروني لتحليله.
  4. يقوم ThePhish باستخراج جميع المؤشرات (observables) من البريد الإلكتروني وينشئ حالة (case) على TheHive. يتم تحليل المؤشرات بفضل Cortex ومحللاته.
  5. يحسب ThePhish حكمًا (verdict) بناءً على أحكام المحللات.
  6. إذا كان الحكم نهائيًا، تُغلق الحالة ويُبلغ المستخدم. بالإضافة إلى ذلك، إذا كان البريد الإلكتروني ضارًا، يتم تصدير الحالة إلى MISP.
  7. إذا لم يكن الحكم نهائيًا، يلزم تدخل المحلل. يجب عليه مراجعة الحالة على TheHive مع النتائج التي قدمتها المحللات المختلفة لصياغة حكم، ثم يمكنه إرسال الإشعار إلى المستخدم، وتصدير الحالة إلى MISP اختياريًا، وإغلاق الحالة.

مثال استخدام ThePhish

يهدف هذا المثال إلى توضيح كيف يمكن للمستخدم إرسال بريد إلكتروني إلى ThePhish لتحليله، وكيف يمكن للمحلل تحليل هذا البريد الإلكتروني فعليًا باستخدام ThePhish.

يرسل المستخدم بريدًا إلكترونيًا إلى ThePhish

يمكن للمستخدم إرسال بريد إلكتروني إلى عنوان البريد الإلكتروني الذي يستخدمه ThePhish لجلب رسائل البريد الإلكتروني لتحليلها. يجب إعادة توجيه البريد الإلكتروني كمرفق بتنسيق EML لمنع تلوث عنوان البريد الإلكتروني. في هذه الحالة، عميل البريد المستخدم هو Mozilla Thunderbird وعنوان البريد المستخدم هو عنوان Gmail.

يقوم المحلل بتحليل البريد الإلكتروني

ينتقل المحلل إلى صفحة الويب الخاصة بـ ThePhish وينقر على زر "قائمة رسائل البريد الإلكتروني" للحصول على قائمة رسائل البريد الإلكتروني لتحليلها.

عندما ينقر المحلل على زر "تحليل" الخاص بالبريد الإلكتروني المحدد، يبدأ التحليل ويظهر تقدمه على واجهة الويب.

في هذه الأثناء، يقوم ThePhish باستخراج المؤشرات (عناوين URL، النطاقات، عناوين IP، عناوين البريد الإلكتروني، المرفقات وتجزئة تلك المرفقات) من البريد الإلكتروني ثم يتفاعل مع TheHive لإنشاء الحالة.

يتم إنشاء ثلاث مهام داخل الحالة.

بعد ذلك، يبدأ ThePhish في إضافة المؤشرات المستخرجة إلى الحالة.

في هذه المرحلة، يتم إخطار المستخدم عبر البريد الإلكتروني بأن التحليل قد بدأ بفضل مستجيب Mailer.

يسمح وصف المهمة الأولى لمستجيب Mailer بإرسال الإشعار عبر البريد الإلكتروني.

بعد إغلاق المهمة الأولى، تبدأ المهمة الثانية ويتم تشغيل المحللات على المؤشرات. يظهر تقدم التحليل على واجهة الويب أثناء تشغيل المحللات.

يمكن أيضًا عرض تقدم التحليل على TheHive، بفضل البث المباشر الخاص به.

بمجرد انتهاء جميع المحللات من تنفيذها، تُغلق المهمة الثانية وتُبدأ المهمة الثالثة، ثم يحسب ThePhish الحكم. نظرًا لأن الحكم هو "ضار"، يتم وضع علامة على جميع المؤشرات التي تبين أنها ضارة كمؤشرات خطر (IoC). في هذه الحالة، يتم وضع علامة على مؤشر واحد فقط كمؤشر خطر.

ثم يتم تصدير الحالة إلى MISP كحدث (event)، مع سمة واحدة تمثل المؤشر المذكور أعلاه.

بعد ذلك، يرسل ThePhish الحكم عبر البريد الإلكتروني إلى المستخدم بفضل مستجيب Mailer.

أخيرًا، يتم إغلاق كل من المهمة والحالة. يسمح وصف المهمة الثالثة لمستجيب Mailer بإرسال الحكم عبر البريد الإلكتروني. علاوة على ذلك، تم إغلاق الحالة بعد خمس دقائق وتم حلها على أنها "إيجابية حقيقية" مع "لا تأثير"، مما يعني أنه تم اكتشاف الهجوم قبل أن يتمكن من إحداث أي ضرر.

بمجرد إغلاق الحالة، يصبح الحكم متاحًا للمحلل على واجهة الويب مع سجل كامل لتقدم التحليل.

في هذه المرحلة، يمكن للمحلل العودة وتحليل بريد إلكتروني آخر. كانت الحالة الموضحة أعلاه متعلقة ببريد إلكتروني تصيدي، ولكن يمكن ملاحظة سير عمل مشابه عندما يتم تصنيف البريد الإلكتروني الذي تم تحليله على أنه "آمن". في الواقع، تُغلق الحالة ويُرسل الحكم عبر البريد الإلكتروني إلى المستخدم.

ثم يتم عرض الحكم أيضًا للمحلل على واجهة الويب.

من ناحية أخرى، عندما يتم تصنيف بريد إلكتروني على أنه "مشبوه"، يتم عرض الحكم فقط للمحلل على واجهة الويب.

في هذه المرحلة، يحتاج المحلل إلى استخدام الأزرار الموجودة على الجانب الأيسر من الصفحة لاستخدام TheHive و Cortex و MISP لإجراء مزيد من التحليل. وذلك لأن التحليل لم يكتمل بعد، وبالتالي يتم إخطار المستخدم فقط بأن تحليل البريد الإلكتروني الذي أرسله إلى ThePhish قد بدأ. في الواقع، لم يتم إغلاق المهمة الأخيرة والحالة بعد حيث يحتاج المحلل نفسه إلى إغلاقها بمجرد صياغة حكم نهائي.

يمكن للمحلل عرض تقارير جميع المحللات على TheHive و Cortex، وإذا تبين أن ذلك غير كافٍ، فيمكنه أيضًا تنزيل ملف EML الخاص بالبريد الإلكتروني وتحليله يدويًا.

عندما ينهي المحلل التحليل، يمكنه ملء نص البريد الإلكتروني لإرساله إلى المستخدم في وصف المهمة الأخيرة، وتشغيل مستجيب Mailer، وتصدير الحالة إلى MISP إذا كان الحكم "ضارًا" عن طريق النقر على زر "تصدير"، ثم إغلاق الحالة.

التنفيذ

ThePhish هو تطبيق ويب مكتوب بلغة Python 3. يتم تنفيذ خادم الويب باستخدام Flask، بينما يتم تنفيذ جزء الواجهة الأمامية من التطبيق، وهو الصفحة الديناميكية المكتوبة بلغة HTML و CSS و JavaScript، باستخدام Bootstrap. بصرف النظر عن وحدة خادم الويب، يتكون منطق الواجهة الخلفية للتطبيق من ثلاث وحدات Python تغلف منطق التطبيق نفسه وفئة Python تُستخدم لدعم وظيفة التسجيل عبر بروتوكول WebSocket. إذا كنت تريد رؤية تمثيل بياني لمنطق التطبيق، انقر هنا. علاوة على ذلك، هناك العديد من ملفات التكوين التي تستخدمها الوحدات المذكورة أعلاه والتي تخدم أغراضًا متنوعة.

عندما ينتقل المحلل إلى عنوان URL الأساسي للتطبيق، يتم تحميل صفحة الويب الخاصة بـ ThePhish ويتم إنشاء اتصال ثنائي الاتجاه مع الخادم. يتم ذلك باستخدام مكتبة JavaScript Socket.IO في صفحة الويب التي تتيح التواصل في الوقت الفعلي وثنائي الاتجاه والقائم على الأحداث بين المتصفح والخادم. يتم إنشاء هذا الاتصال باستخدام اتصال WebSocket كلما أمكن، وسيستخدم الاستقصاء الطويل HTTP كبديل. لكي يعمل هذا، يستخدم تطبيق الخادم مكتبة Python Flask-SocketIO، التي توفر تكامل Socket.IO لتطبيقات Flask. ثم يتم استخدام هذا الاتصال بواسطة ThePhish لعرض تقدم التحليل على واجهة الويب.

في كل مرة يقوم فيها المحلل بإجراء على واجهة الويب، يتم إرسال طلب AJAX إلى الخادم، وهو طلب HTTP غير متزامن يسمح بتبادل البيانات مع الخادم في الخلفية وتحديث الصفحة دون إعادة تحميلها. يتيح ذلك للمحلل عرض قائمة رسائل البريد الإلكتروني لتحليلها وكذلك بدء التحليل.

يتفاعل ThePhish مع TheHive و Cortex بفضل TheHive4py و Cortex4py. علاوة على ذلك، يتفاعل مع خادم IMAP لاسترداد رسائل البريد الإلكتروني لتحليلها.

التثبيت

التثبيت باستخدام Docker و Docker Compose

نظرًا لأن تثبيت وتكوين خدمات TheHive و Cortex و MISP من الصفر لبيئة إنتاج قد لا يكون مباشرًا للغاية، يوفر TheHive Project صور Docker وقوالب Docker Compose هنا لتسهيل عملية التثبيت. من أجل البساطة، القوالب المقدمة مبسطة، دون توفير خيارات التكوين الكاملة لكل صورة Docker.

إذا كنت ترغب فقط في تجربة ThePhish أو تريد تشغيله في أسرع وقت ممكن، يمكنك استخدام قالب Docker المقدم في مجلد docker، وهو إصدار معدل من أحد قوالب Docker المقدمة من TheHive Project والذي يسمح أيضًا بإنشاء حاوية ThePhish. لتثبيت ThePhish باستخدام Docker و Docker Compose، يرجى الرجوع إلى هذا الدليل. أوصي بشدة بتثبيته بهذه الطريقة على الأقل في المرة الأولى التي تستخدمه فيها حتى تتمكن من تعلم الأساسيات وكيفية تكوينه بتكوين بسيط يجب أن يعمل من المحاولة الأولى. في الواقع، يوفر الدليل المرتبط سابقًا أيضًا إجراءً خطوة بخطوة لتكوين مثيلات TheHive و Cortex و MISP.

التثبيت من الصفر

يشير هذا الدليل إلى تثبيت ThePhish فقط، والذي يتطلب:

  • مثيل قيد التشغيل من TheHive
  • مثيل قيد التشغيل من Cortex
  • مثيل قيد التشغيل من MISP
  • عنوان بريد إلكتروني يمكن للمستخدمين استخدامه لإرسال رسائل البريد الإلكتروني إلى ThePhish
  • نظام تشغيل قائم على Linux مع تثبيت Python 3.8+

من أجل تثبيت وتكوين ودمج مثيلات TheHive و Cortex و MISP، يرجى الرجوع إلى وثائقها الرسمية:

  • وثائق TheHive
  • وثائق Cortex
  • وثائق MISP

يُنصح بأن يكون عنوان البريد الإلكتروني الذي يجلب منه ThePhish رسائل البريد الإلكتروني لتحليلها عنوان Gmail لأنه الأكثر اختبارًا مع ThePhish. من الأفضل أن يكون الحساب حديث الإنشاء، بغرض استخدامه فقط بواسطة ThePhish. يتم شرح إجراء تنشيط كلمة مرور التطبيق (app password) المطلوبة من قبل ThePhish للاتصال بصندوق البريد وجلب رسائل البريد الإلكتروني هنا.

تم اختبار إجراء التثبيت هذا على جهاز افتراضي يعمل بنظام Ubuntu 20.04.3 LTS مع تثبيت Python 3.8 والإصدارات من TheHive و Cortex و MISP الموضحة في ملف docker-compose.yml هذا.

بمجرد تكوين TheHive و Cortex و MISP والاستماع على عنوان URL معين، ويكون عنوان البريد الإلكتروني جاهزًا للاستخدام، يمكنك تثبيت وتكوين ThePhish.

  1. استنساخ المستودع

    root@kitploit:~
    $ git clone https://github.com/emalderson/ThePhish.git
    
  2. إنشاء بيئة افتراضية Python وتفعيلها (هي ممارسة جيدة ولكنها ليست مطلوبة)

    root@kitploit:~
    $ cd ThePhish/app
    $ sudo apt install python3-venv
    $ python3 -m venv venv
    $ source venv/bin/activate
    
  3. تثبيت المتطلبات

    root@kitploit:~
    $ pip install -r requirements.txt
    
  4. إضافة الدالة run_responder() إلى ملف api.py الخاص بـ TheHive4py

    من أجل إرسال رسائل البريد الإلكتروني إلى المستخدم، يستخدم ThePhish مستجيب Mailer. نظرًا لأن ThePhish يستخدم TheHive4py للتفاعل مع TheHive، هناك حاجة إلى دالة تسمح بتشغيل مستجيب بواسطة معرفه. لسوء الحظ، هذه الدالة ليست جزءًا من TheHive4py حتى الآن، ولكن تم تقديم طلب سحب لإضافتها إلى TheHive4py (#219). أثناء انتظار إضافتها، يجب إضافتها يدويًا باستخدام الأمر التالي لكي يعمل ThePhish بشكل صحيح (استبدل إصدار Python في الأمر إذا كنت تستخدم إصدارًا مختلفًا من Python):

    root@kitploit:~
    $ (cat << _EOF_
    
    
        def run_responder(self, responder_id, object_type, object_id):
            req = self.url + "/api/connector/cortex/action"
            try:
                data = json.dumps({ "responderId": responder_id, "objectType": object_type, "objectId": object_id})
                return requests.post(req, headers={"Content-Type": "application/json"}, data=data, proxies=self.proxies, auth=self.auth, verify=self.cert)
            except requests.exceptions.RequestException as e:
                raise TheHiveException("Responder run error: {}".format(e))
    _EOF_
    ) | tee -a venv/lib/python3.8/site-packages/thehive4py/api.py > /dev/null
    

تكوين المحللات

يمكن لـ ThePhish تشغيل محلل أو مستجيب فقط إذا كان ممكّنًا ومُهيأً بشكل صحيح على Cortex. يشرح هذا الجزء من الوثائق كيفية تمكينها، بينما يسرد هذا الجزء المحللات والمستجيبين المتاحين مع معلمات التهيئة الخاصة بهم. تجدر الإشارة إلى أنه على الرغم من أن العديد من المحللات مجانية الاستخدام، إلا أن بعضها يتطلب وصولًا خاصًا والبعض الآخر يستلزم اشتراك خدمة صالحًا أو ترخيص منتج.

تكوين مستويات المحللات

يقوم كل محلل بإخراج تقرير بتنسيق JSON يحتوي على مستوى ضار للملاحظة يمكن أن يكون واحدًا من "info" أو "safe" أو "suspicious" أو "malicious". ومع ذلك، على الرغم من أن هيكل التقرير يتبع عادةً اصطلاحًا، إلا أن هذا الاصطلاح لا يُحترم دائمًا. علاوة على ذلك، بعد تحليل كود العديد من المحللات والعديد من الاختبارات، تم اكتشاف أن بعض المحللات تحتوي على أخطاء. لهذا السبب، تم استخدام بعض التعديلات والحلول البديلة إما للحصول على مستويات الضرر التي توفرها هذه المحللات على أي حال أو لمنع تعطل التطبيق بسبب تلك الأخطاء.

علاوة على ذلك، لا تمثل هذه المستويات دائمًا مستوى الضرر الحقيقي للملاحظة. نظرًا لأن هذا يعتمد على كيفية برمجة المحللات نفسها، يأتي ThePhish مع ملف تهيئة آخر يسمى analyzers_level_conf.json، والذي يمكن من خلاله إنشاء تعيين بين مستويات الضرر الفعلية التي يوفرها أي محلل والمستويات التي يقررها المحلل. إلى جانب ذلك، يسمح هذا الملف للمحلل باختيار أنواع الملاحظات التي يجب تطبيق هذه التعديلات عليها. يجب أن يتبع الملف الهيكل الموضح في المثال هنا، باستخدام الاسم الدقيق للمحللات المراد تهيئتها مع المستوى المطلوب على اليمين. إذا لم يتم إدراج محلل في هذا الملف، فإن مستويات الضرر التي يوفرها تترك كما هي. يجب أن يتبع الملف الهيكل الموضح في المثال التالي، باستخدام الاسم الدقيق للمحللات المراد تهيئتها مع المستوى المطلوب على اليمين. إذا لم يتم إدراج محلل في هذا الملف، فإن مستويات الضرر التي يوفرها تترك كما هي.```json { "DomainMailSPFDMARC_Analyzer_1_1" : { "dataType" : ["url", "ip", "domain", "mail"], "levelMapping" : { "malicious" : "suspicious", "suspicious" : "suspicious", "safe" : "safe", "info" : "info" } }, "MISP_2_1" : { "dataType" : ["url", "ip", "domain", "mail"], "levelMapping" : { "malicious" : "malicious", "suspicious" : "malicious", "safe" : "safe", "info" : "info" } } }

root@kitploit:~
في هذا المثال، يتم رفع مستوى "مشبوه" لمحلل *MISP_2_1* إلى "خبيث" لأنه يشير إلى أن بعض العناصر القابلة للمراقبة في البريد الإلكتروني الذي يتم تحليله حالياً قد شوهدت بالفعل في بريد إلكتروني تم تحليله سابقاً وكان حكمه "خبيث". وعلى العكس، يتم خفض مستوى "خبيث" لمحلل *DomainMailSPFDMARC_Analyzer_1_1* إلى "مشبوه"، نظراً لأن العديد من النطاقات الشرعية لا تحتوي على سجلات DMARC وSPF مهيأة.

يمكنك إضافة أو إزالة المحللين في هذا الملف كما تشاء، لكنني أوصي بترك المحللين الموجودين بالفعل في الملف دون تغيير لأن تلك التعديلات كانت مدفوعة بالعديد من الاختبارات التي أجريت على الكثير من رسائل البريد الإلكتروني المختلفة.

### المحللون المختبرون
تم اختبار ThePhish مع المحللين التاليين:
- AbuseIPDB_1_0
- AnyRun_Sandbox_Analysis_1_0
- CyberCrime-Tracker_1_0
- Cyberprotect_ThreatScore_3_0
- *DomainMailSPFDMARC_Analyzer_1_1*
- DShield_lookup_1_0
- EmailRep_1_0
- FileInfo_8_0
- Fortiguard_URLCategory_2_1
- IPinfo_Details_1_0
- **IPVoid_1_0** 
- KasperskyThreatIntelligencePortal_1_0
- Maltiverse_Report_1_0
- *Malwares_GetReport_1_0* 
- *Malwares_Scan_1_0*
- MaxMind_GeoIP_4_0 
- MetaDefenderCloud_GetReport_1_0
- *MISP_2_1*
- NERD_1_0
- *Onyphe_Summary_1_0*
- OTXQuery_2_0
- PassiveTotal_Enrichment_2_0 
- *PassiveTotal_Malware_2_0* 
- PassiveTotal_Osint_2_0 
- PassiveTotal_Ssl_Certificate_Details_2_0 
- PassiveTotal_Ssl_Certificate_History_2_0 
- PassiveTotal_Unique_Resolutions_2_0 
- PassiveTotal_Whois_Details_2_0 
- PhishTank_CheckURL_2_1
- **Pulsedive_GetIndicator_1_0**
- *Robtex_Forward_PDNS_Query_1_0*
- *Robtex_IP_Query_1_0* 
- *Robtex_Reverse_PDNS_Query_1_0*
- Shodan_DNSResolve_1_0 
- **Shodan_Host_1_0** 
- **Shodan_Host_History_1_0**
- Shodan_InfoDomain_1_0 
- **SpamhausDBL_1_0**
- StopForumSpam_1_0
- *Threatcrowd_1_0*	
- UnshortenLink_1_2
- **URLhaus_2_0** 
- Urlscan_io_Scan_0_1_0 
- *Urlscan_io_Search_0_1_1* 
- VirusTotal_GetReport_3_1
- VirusTotal_Scan_3_1
- Yara_2_0

المحللون المميزون بخط *مائل* هم الذين تم تعديل مستوياتهم (ولكن يمكن تجاوزها، على الرغم من أنه لا يُنصح بذلك)، بينما المحللون المميزون بخط **عريض** هم الذين تتم معالجتهم مباشرة في كود ThePhish إما لأنهم لا يحترمون الاتفاقية الخاصة بهيكل التقرير، أو لأن لديهم أخطاء. علاوة على ذلك، تتم معالجة المحللين التاليين في كود ThePhish لاستخدامهم بأفضل طريقة ممكنة:

- **DomainMailSPFDMARC_Analyzer_1_1**: يتم تشغيله فقط على النطاقات التي يُفترض أنها قادرة على إرسال رسائل البريد الإلكتروني.
	
- **MISP_2_1**: يُستخدم للتكامل مع MISP.
   
- **UnshortenLink_1_2**: يتم تشغيله قبل أي محلل آخر على عنوان URL وذلك لإمكانية فك اختصار الرابط وإضافة الرابط المفكوك كعنصر قابل للمراقبة إضافي.
  
- **Yara_2_0**: هو المحلل الوحيد الذي يتم تشغيله على مرفق EML.


### تفعيل محلل *MISP*

من أجل دمج Cortex مع MISP، يجب عليك تفعيل محلل *MISP_2_1* وتكوينه بمفتاح المصادقة الخاص بالمستخدم الذي تم إنشاؤه على MISP والذي سيستخدمه Cortex للتفاعل مع MISP. هذا يعني أنه يجب إنشاء مؤسسة ومستخدم بدور `sync_user` في تلك المؤسسة على MISP مسبقاً (يمكنك تعلم كيفية القيام بذلك والحصول على مفتاح المصادقة [هنا (وثائق ThePhish، الموصى بها)](https://github.com/emalderson/ThePhish/tree/master/docker#configure-the-misp-container) أو [هنا (وثائق MISP)](https://www.circl.lu/doc/misp/administration/#users)).

### تفعيل محلل *Yara*

إذا كنت ترغب في استخدام محلل *Yara_2_0*، فيجب عليك إنشاء مجلد على الجهاز الذي يعمل عليه Cortex يحتوي على:

 - قواعد Yara، حيث تكون كل قاعدة ملفاً بامتداد `.yar`
 - ملف باسم `index.yar`، يحتوي على سطر لكل قاعدة Yara في ذلك المجلد يتوافق مع الصياغة التالية: `include "yara_rule_name.yar"`

ثم، يجب عليك تكوين مسار هذا المجلد على Cortex. على سبيل المثال، إذا قمت بإنشاء المجلد `yara_rules` في المسار `/opt/cortex`، فستحتاج إلى تكوين المسار `/opt/cortex/yara_rules` على Cortex (على الواجهة الإلكترونية).

## تفعيل المستجيب *Mailer*

من أجل إرسال رسائل البريد الإلكتروني إلى المستخدمين، يجب تفعيل المستجيب *Mailer* وتكوينه بشكل صحيح. الإجراء المستخدم لتفعيل مستجيب مماثل للإجراء المستخدم لتفعيل محلل. إذا كنت تستخدم عنوان Gmail، فهذه هي المعاملات الصحيحة التي يجب تعيينها:
- from: `<YourGmailEmailAddress>`
- smtp_host :`smtp.gmail.com`
- smtp_port: `587`
- smtp_user: `<YourGmailEmailAddress>`
- smtp_pwd: `<YourGmailEmailAddressAppPassword>`


## استخدام القائمة البيضاء

يسمح ThePhish بإنشاء قائمة بيضاء لتجنب تحليل العناصر القابلة للمراقبة التي قد تسبب نتائج إيجابية خاطئة أو التي يقرر المحلل أنه لا ينبغي أخذها في الاعتبار أثناء التحليل. تحتوي القائمة البيضاء على ملف يُسمى `whitelist.json` وتتكون من العديد من القوائم المختلفة لتوفير مرونة كبيرة من حيث أنواع العناصر القابلة للمراقبة للتطابق وأنماط التطابق. وهي تدعم أنماط التطابق التالية:

 - مطابقة السلسلة النصية التامة لعناوين البريد الإلكتروني، وعناوين IP، وعناوين URL، والنطاقات، وأسماء الملفات، وأنواع الملفات، وقيم التجزئة
 - مطابقة التعبيرات النمطية (Regex) لعناوين البريد الإلكتروني، وعناوين IP، وعناوين URL، والنطاقات، وأسماء الملفات
 - مطابقة التعبيرات النمطية للنطاقات الفرعية، وعناوين البريد الإلكتروني، وعناوين URL التي تحتوي على النطاقات المحددة


فيما يلي مثال توضيحي لملف `whitelist.json`.```json
{	
	"exactMatching": {
		"mail" : [],
		"ip" : [
			"127.0.0.1",
			"8.8.8.8",
			"8.8.4.4"
		],
		"url" : [],
		"domain" : [
			"adf.ly",
			"paypal.com"
		],
		"filename" : [],
		"filetype" : [
			"application/pdf"
		],
		"hash" : []
	},
	"domainsInSubdomains" : [
		"paypal.com"
	],
	"domainsInURLs" : [
		"paypal.com"
	],
	"domainsInEmails" : [
		"paypal.com"
	],
	"regexMatching" : {
		"mail" : [],
		"ip" : [
			"10\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}",
			"172\\.16\\.\\d{1,3}\\.\\d{1,3}",
			"192\\.168\\.\\d{1,3}\\.\\d{1,3}"
		],
		"url" : [],
		"domain" : [],
		"filename" : []
	}
}

بينما يتم استخدام الأجزاء المتعلقة بالمطابقة التامة والمطابقة بالتعبيرات العادية دون أي تعديل، تُستخدم الأجزاء المتبقية لإنشاء ثلاث قوائم إضافية من التعبيرات العادية. ليس مطلوبًا منك تصميم تعبيرات عادية معقدة لتفعيل هذه الميزات، بل تحتاج فقط إلى إضافة النطاقات إلى القوائم الصحيحة وسيقوم ThePhish بالباقي. على سبيل المثال، في المثال الموضح أعلاه، لا يتم تصفية النطاق "paypal.com" فحسب، بل يتم أيضًا تصفية أي نطاق فرعي وعنوان URL وعنوان بريد إلكتروني يحتوي على النطاق "paypal.com". تم تصميم هذه التعبيرات العادية لتجنب بعض السلوكيات غير المرغوب فيها، على سبيل المثال، تمنع النطاقات مثل "paypal.com.attacker.com" من الإدراج في القائمة البيضاء عن طريق الخطأ.

ملاحظة: إذا أضفت نطاقًا تحت "domainsInSubdomains"، فسيتم تصفية النطاق نفسه أيضًا. لذلك، فإن إضافة نفس النطاق إلى قائمة النطاقات تحت "exactMatching" ليس ضروريًا. يتم التمييز للحالات التي تحتاج فيها فقط إلى إدراج النطاق نفسه في القائمة البيضاء، وليس نطاقاته الفرعية. وبالتالي، في هذا المثال، فإن تضمين "paypal.com" في كلا القائمتين يعد غير ضروري.

ملف القائمة البيضاء المقدم في هذا المستودع مليء بالفعل ببعض العناصر المراقبة المدرجة في القائمة البيضاء، لكنه مجرد مثال، يمكنك (ويجب عليك) تحريره ليناسب احتياجاتك عن طريق إزالة العناصر أو إضافتها.

المساهمة في TheHive4py

يستخدم ThePhish ميزة رائعة من TheHive وهي إمكانية تصدير حالة إلى MISP كحدث. هذا يجعل من الممكن استخدام محلل MISP_2_1 للبحث عن تطابق بين عنصر مراقب في حالة وسمة من أحد تلك الأحداث على MISP. لسوء الحظ، خلال المراحل الأولى من تطوير ThePhish، لم تكن دالة تسمح بذلك عبر API بلغة Python متاحة في TheHive4py بعد. لهذا السبب، تم تقديم طلب سحب (#187) إلى TheHive4py لإضافة هذه الوظيفة. تم قبول طلب السحب وتمت إضافة الدالة export_to_misp() إلى الإصدار 1.8.0 من TheHive4py.

المساهمة في Cortex-Analyzers

يعتمد ThePhish بشكل كبير على المحللين الذين يوفرهم Cortex. لضمان استمرار عملهم كما هو مقصود، يتم تقديم طلبات سحب إلى المستودع الذي يحتوي عليهم. فيما يلي قائمة محدثة بهذه طلبات السحب:

  • إصلاح KasperskyTIP: الفئة البرتقالية التي كانت تُتجاهل سابقًا أصبحت الآن ضارة (#1270)
  • إصلاح PhishTank: إضافة رأس User-Agent لجعل واجهة برمجة تطبيقات PhishTank تعمل مرة أخرى (#1271)
  • إصلاح SpamHausDBL: استبدال دالة الاستعلام (غير العاملة) بدالة الحل (#1272)

الترخيص

ThePhish هو برنامج مفتوح المصدر ومجاني تم إصداره بموجب AGPL (رخصة أفيرو العمومية العامة).

المنشورات الأكاديمية

  • ITASEC 2022: المؤتمر الإيطالي حول الأمن السيبراني، 20-23 يونيو 2022، روما، إيطاليا
    • رابط إلى وقائع المؤتمر: https://ceur-ws.org/Vol-3260/
    • رابط إلى الورقة البحثية: https://ceur-ws.org/Vol-3260/paper6.pdf

من يتحدث عن ThePhish

  • SecSI - https://secsi.io/blog/thephish-an-automated-phishing-email-analysis-tool/
  • The Daily Swig - https://portswigger.net/daily-swig/thephish-the-most-complete-non-commercial-phishing-email-analysis-tool

مستودعات GitHub التي تذكر ThePhish

  • TheHive-Project/awesome
  • matiassingers/awesome-readme

الشكر والائتمان

بدأ هذا المشروع في عام 2020، وتم تقديم نسخة مبكرة وغير كاملة منه كعملي النهائي للتخرج في Cybersecurity HackAdemy التي نظمتها جامعة نابولي فيديريكو الثاني. لذلك، أود أن أشكر روبرتو تشيلتي على الفكرة الأولية وفريقي الذي تألف من gianpor وMrFelpon وxdinax، الذين ساعدوني في المراحل المبكرة من تطوير التطبيق من خلال النشر الأولي والاختبارات الأولى.

ثم قمت بإعادة تصميم الأداة بالكامل من حيث الوظائف والشعار وواجهة المستخدم، وأضفت دعم Docker وكتبت وثائق شاملة ليتم تقديمها كأطروحة التخرج لدرجة الماجستير في الهندسة الحاسوبية في عام 2021 في جامعة نابولي فيديريكو الثاني بإشراف سيمون بيترو رومانو (spromano).

كما أود أن أشكر كزافييه ميرتنز (xme) على تطويره IMAP2TheHive ونشره على GitHub، حيث كان الشرارة الأولية التي أدت إلى تطوير هذا المشروع والذي استلهم منه كود ThePhish.

تنزيل الأداة
  • التكوين

    ملف configuration.json هو ملف التكوين العام الذي يسمح بتعيين معلمات الاتصال بصندوق البريد وبمثيلات TheHive و Cortex و MISP. كما يسمح بتعيين معلمات متعلقة بالحالات التي سيتم إنشاؤها على TheHive.

    root@kitploit:~
    {
    	"imap" : {
    		"host" : "imap.gmail.com",
    		"port" : "993",
    		"user" : "",
    		"password" : "",
    		"folder" : "inbox"
    	},
    	"thehive" : {
    		"url" : "http://thehive:9000",
    		"apikey" : ""
    	},
    	"cortex" : {
    		"url" : "http://cortex:9001",
    		"apikey" : "",
    		"id" : "local"
    	},
    	"misp" : {
    		"id" : "MISP THP"
    	},
    	"case" : {
    		"tlp" : "2",
    		"pap" : "2",
    		"tags" : ["email", "ThePhish"]
    	}
    }
    
    • في جزء imap، إذا كنت تستخدم عنوان Gmail، تحتاج فقط إلى تعيين اسم المستخدم المستخدم للاتصال بخادم IMAP (وهو عنوان بريدك الإلكتروني) وكلمة مرور التطبيق.
    • في جزء thehive، يجب تعيين عنوان URL الذي يمكن الوصول من خلاله إلى مثيل TheHive وتعيين مفتاح API للمستخدم الذي تم إنشاؤه على TheHive والذي سيستخدمه ThePhish للتفاعل مع TheHive.
    • في جزء cortex، يجب تعيين عنوان URL الذي يمكن الوصول من خلاله إلى مثيل Cortex وتعيين مفتاح API للمستخدم الذي تم إنشاؤه على Cortex والذي سيستخدمه كل من ThePhish و TheHive للتفاعل مع Cortex. علاوة على ذلك، يجب تعيين المعرف الممنوح لمثيل Cortex.
    • في جزء misp، تحتاج فقط إلى تعيين المعرف الممنوح لمثيل MISP.
    • في جزء case، يمكنك تعيين مستويات TLP و PAP الافتراضية للحالات التي ينشئها ThePhish وكذلك العلامات التي سيتم تطبيقها عليها عند إنشائها.

    يمكنك تعلم كيفية إنشاء مؤسسة ومستخدم بدور org-admin في تلك المؤسسة على TheHive والحصول على مفتاح API الخاص به هنا (وثائق ThePhish، موصى بها) أو هنا (وثائق TheHive). وبالمثل، يمكنك تعلم كيفية إنشاء مؤسسة ومستخدم بأدوار read, analyze في تلك المؤسسة على Cortex والحصول على مفتاح API الخاص به هنا (وثائق ThePhish، موصى بها) أو هنا (وثائق Cortex).

    يجب أن تكون عناوين URL والمعرفات التي تم تعيينها في هذا الملف هي نفسها التي تم تعيينها في ملف تكوين TheHive المسمى application.conf، والذي يحتوي على جزء متعلق بـ Cortex وجزء متعلق بـ MISP. المعلمات التي يجب أن تبحث عنها هي name و url في كلا الجزأين، والتي تتوافق مع معرفات وعناوين URL لمثيلات Cortex و MISP. يمكن أيضًا العثور على المعرفات في نافذة حول على واجهة الويب الخاصة بـ TheHive. يظهر مثال حيث معرف Cortex هو السلسلة local ومعرف MISP هو السلسلة MISP THP في الشكل التالي:

    يتم استخدام ملف application.conf لدمج TheHive مع Cortex و MISP. يمكنك تعلم كيفية إعداد التكامل مع Cortex هنا (وثائق ThePhish، موصى بها) أو هنا (وثائق TheHive)، بينما بالنسبة للتكامل مع MISP يمكنك الذهاب هنا (وثائق ThePhish، موصى بها) أو هنا (وثائق TheHive).يجب أيضًا استبدال عناوين URL التي يمكن من خلالها الوصول إلى مثيلات TheHive وCortex وMISP في الملف templates/index.html حتى تتمكن الأزرار الموجودة في واجهة الويب من الوصول إليها. للقيام بذلك، استبدل آخر ثلاث href في هذا الجزء من الكود:

    root@kitploit:~
    <ul class="navbar-nav text-light" id="accordionSidebar">
        <li class="nav-item"><a class="nav-link active" href="/" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/logo_rounded.png" style="margin-top: 0px;margin-left: 0px;"></a></li>
        <li class="nav-item"><a class="nav-link" href="http://thehive:9000" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/thehive.png" style="margin-right: 0px;margin-left: 0px;"></a></li>
        <li class="nav-item"><a class="nav-link" href="http://cortex:9001" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/cortex.png" style="transform: translate(0px);"></a></li>
        <li class="nav-item"><a class="nav-link" href="https://misp" style="max-width: 114px;" target="_blank" rel="noopener noreferrer"><img class="img-fluid" data-bss-hover-animate="bounce" src="https://raw.githubusercontent.com/emalderson/thephish/static/assets/img/misp.png" style="transform: translate(0px);"></a></li>
    </ul>
    
  • تشغيل التطبيق

    root@kitploit:~
    $ python3 thephish_app.py
    

    الخادم الذي سيتم استخدامه لتشغيل التطبيق هو خادم WSGI المقدم من eventlet، حيث أنه مدرج في المتطلبات. وهو ضروري لكي يعمل بروتوكول WebSocket وتجنب العودة إلى الاستقصاء الطويل HTTP. بدون eventlet، سيتم استخدام خادم Flask WSGI الافتراضي (Werkzeug). إذا كنت ترغب في استخدام خادم WSGI آخر (مثل Gunicorn) أو استخدام وكيل عكسي (مثل NGINX)، فإن وثائق Flask-SocketIO تشرح كيفية القيام بذلك.

    الآن يجب أن يكون التطبيق قابلاً للوصول على http://localhost:8080.

    ⚠️ تحذير: إذا كنت تستخدم Mozilla Firefox لاستخدام ThePhish ولسبب ما ظهرت رسالة خطأ أثناء التحليل، فقد تجد الحل هنا.