
أداة استخبارات التهديدات والاستجابة منخفضة التكلفة (صفر) لمواجهة نطاقات التصيد
تم تطوير أداة Jeopardize لتوفير قدرات أساسية للاستخبارات والاستجابة للتهديدات ضد نطاقات التصيد بأقل تكلفة ممكنة. إنها تكتشف نطاقات التصيد المسجلة (التزوير الإملائي، التجانس الرسومي، إلخ)، وتحللها وتخصص درجة خطر لكل منها. بعد ذلك، تقوم بإرسال بيانات اعتماد تبدو صالحة إلى نماذج تسجيل الدخول في مواقع التصيد تلك.
لماذا؟ تخيل هذا السيناريو: المهاجم يسجل نطاق تصيد، acmebnak.com (تزوير إملائي لـ acmebank)، ينسخ نموذج تسجيل الدخول الأصلي لـ acmebank.com هناك ويعلن عن هذا النطاق عبر تغريدات مدفوعة. من المحتمل أن يتم وضع علامة على هذا الإعلان والنطاق كتصيد في اليوم التالي ولكن المهاجم قد سرق بالفعل بيانات اعتماد من المستخدمين. إزالته بعد ذلك لن يساعد المستخدمين المتأثرين. توفر Jeopardize حلاً استباقيًا لهذه المشكلة. إنها تعرض نموذج التصيد للخطر ببيانات اعتماد تبدو صالحة لإرباك المهاجم. سيمنح هذا المؤسسات بعض الوقت لاتخاذ الاحتياطات.
ATTACKER+-----advertises+
| +---------------+
| | |
+--------v-------+ +----------------+ | |
|twitter.com/ads | |acmebnak.com | | 549233/ahs72 +------>FAKE
+----------------+ +----------------+ | |
| | | | | 398273/pass1 +------>FAKE
| AcmeBank +-->+ username: +-------+ |
| Tax Refunds | | password: | | 393823/sm283 +------>LEGIT
| | | | | |
+--------^-------+ +----------------+ | 394837/azerb +------>FAKE
| ^ | |
VICTIM USER+-----clicks-+ |sends | |
|fake creds +---------------+
+
JEOPARDIZE
تقوم Jeopardize بتوليد مجموعات كلمات مختلفة مع نطاق معين. (dnstwist يساعد هنا) على سبيل المثال، إذا كان النطاق المعطى هو acmebank.com، فستكون المجموعات acmebnak، acmeban، amcebank إلخ. إذا كان نطاقك له اسم قصير أو عام (مثل: aa.com)، فلن تساعدك هذه الأداة. إنها تعمل بشكل أفضل مع الأسماء الفريدة.
تمتلك Jeopardize طريقتين مختلفتين للكشف لتحديد النطاقات المسجلة:
Brute: تقوم Jeopardize بدمج الكلمات المولدة (acmebnak، amcebank إلخ) مع جميع نطاقات المستوى الأعلى (com،net،xyz,live إلخ) وتقوم باستعلام whois لجميعها. الإيجابيات: لا يتطلب أي مفتاح API، مجاني تمامًا. / السلبيات: يستغرق الكثير من الوقت.
Daily: باستخدام مفتاح API لـ Zonefiles.io، تقوم Jeopardize بجمع جميع النطاقات المسجلة في آخر 24 ساعة وتبحث فيها عن الكلمات المولدة (acmebnak، amcebank إلخ). الإيجابيات: سريعة، يمكن استخدامها كاستخبارات تهديد يومية بسهولة. السلبيات: تتطلب مفتاح API لـ Zonefiles.io (الإصدار الاحترافي)
النطاقات المكتشفة مشبوهة بالفعل. لكن هناك عوامل تزيد من احتمالية كونها نطاق تصيد. أيضًا، نحتاج إلى تحليل ما إذا كانت هناك صفحة تصيد مثبتة على ذلك النطاق حتى نتمكن من اتخاذ إجراءات ضدها. تفحص Jeopardize العناصر التالية للنطاقات المسجلة:
إذا كانت درجة التصيد عالية وكان الموقع يحتوي على نموذج تسجيل دخول، ستقوم Jeopardize بملئه تلقائيًا بقائمة أسماء المستخدمين/كلمات المرور المقدمة.
تحفظ معلومات نطاقات التصيد المكتشفة في ملف XML. على سبيل المثال:
<domain>
<address>acmebnak.com</address>
<name_servers>ns1.cloudflare.com ns2.cloudflare.com</name_servers>
<mx_servers> </mx_servers>
<date_flag>True</date_flag>
<alexa_flag>False</alexa_flag>
<webserver_flag>True</webserver_flag>
<certificate_flag>False</certificate_flag>
<form_flag>True</form_flag>
<phishing_score>85</phishing_score>
</domain>
تتطلب Jeopardize Python3 للعمل وتم اختبارها على macOS و Ubuntu 18.04 وأنظمة Linux المبنية على Debian. أولاً، قم باستنساخ المستودع:
git clone https://github.com/utkusen/jeopardize.git
انتقل إلى داخل المجلد
cd jeopardize
قم بتثبيت المكتبات المطلوبة
pip3 install -r requirements.txt
تحتاج أيضًا إلى تثبيت chromedriver لـ selenium (مطلوب لملء النماذج. إذا لم تستخدمه، لا حاجة للتثبيت)
على Ubuntu: قم بتشغيل sudo apt install chromium-chromedriver
على Kali (قائم على Debian): قم بتشغيل pip3 install chromedriver-binary
على macOS: قم بتشغيل brew cask install chromedriver
إذا كنت ترغب في دمج API لـ Zonefiles.io، افتح jeopardize.py باستخدام محرر نصوص، واستبدل ZONEFILES_API_KEY = "" بمفتاحك الخاص.
أنت جاهز!
ملاحظة لمستخدمي macOS: يبدو أن macOS يقيد تعدد الخيوط كآلية أمان. تحتاج إلى تشغيل الأمر التالي قبل تشغيل الأداة: export OBJC_DISABLE_INITIALIZE_FORK_SAFETY=YES لمزيد من المعلومات حول هذه المشكلة، يرجى التحقق هنا
تحتاج إلى تقديم نطاقك لفحص التصيد باستخدام معامل --domain. تحتاج أيضًا إلى تقديم --type (brute، daily، incremental) كطريقة كشف النطاقات المسجلة.
مثال على الأمر: python3 jeopardize.py --domain facebook.com --type brute
ما يفعله؟: يجمع مجموعات كلمات facebook (fcabook، facebkook إلخ) مع جميع نطاقات المستوى الأعلى (com،net،org،xyz) ويقوم باستعلام whois لجميعها. سيتم حفظ النتائج في ملف facebook.com.xml. هذا لا يملأ نماذج تسجيل الدخول للنطاقات المكتشفة.
مثال على الأمر: python3 jeopardize.py --domain facebook.com --type daily
ما يفعله؟: يجمع جميع النطاقات المسجلة في آخر 24 ساعة باستخدام API لـ Zonefiles.io ويبحث فيها عن الكلمات المولدة (fcabook، facebkook إلخ)
مثال على الأمر: python3 jeopardize.py --domain facebook.com --type incremental
ما يفعله؟: يأخذ ملف XML تم إنشاؤه مسبقًا (facebook.com.xml)، يجمع النطاقات فيه ويحدث بياناتها، ويقوم أيضًا بفحص يومي منتظم.
إذا كنت ترغب في ملء نماذج تسجيل الدخول لنطاقات التصيد المكتشفة، قدم قائمة أسماء مستخدمين باستخدام معامل -U وقائمة كلمات مرور باستخدام معامل -P
مثال على الأمر: python3 jeopardize.py --domain facebook.com --type daily -U user.txt -P pass.txt
إذا كنت ترغب في تفعيل وضع الإسهاب، أضف معامل -v في نهاية الأمر.