Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
DetectPacket-CVE-2017-8464 — استغلال الثغرات وتنفيذ الوقاية من الثغرات | Kitploit
أدوات/GitHubGitHub/trg-1999/detectpacket-cve-2017-8464
التقاط وتحليل الحزمالتحليل الثابتتحليل الثغرات الأمنيةالاستغلالالتحقيق الجنائي الرقميأمن الشبكاتتحليل البرمجيات الخبيثةكشف التسللالتعلم والتعليم
GitHubtrg-1999/detectpacket-cve-2017-8464

DetectPacket-CVE-2017-8464

استغلال الثغرات وتنفيذ الوقاية من الثغرات

2144منذ 4 سنواتلم تتم المراجعة بعد
عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

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

بناء تطبيق كشف الثغرة CVE-2017-8464

المصدر (اضغط هنا)

المحتوى:

الجزء 1: نظرة عامة على CVE-2017-8464

  1. مفهوم ملف LNK
  2. إنشاء نظام مصاب بـ CVE-2017-8464
  3. أدوات هجوم الثغرة CVE-2017-8464

الجزء 2: استخدام أداة Metasploit لاستغلال CVE-2017-8464

2.1. نموذج استغلال CVE-2017-8464

2.2. تنفيذ استغلال CVE-2017-8464

الجزء 3: بناء أداة كشف CVE-2017-8464 باستخدام لغة Python

3.1. تحليل التوقيع (Signature) لـ CVE-2017-8464 بناءً على الحزمة الشبكية الملتقطة

3.2. دالة معالجة كشف استغلال CVE-2017-8464 بناءً على تحليل توقيع الحزمة الشبكية

الخلاصة

**

الجزء 1: نظرة عامة على CVE-2017-8464

  1. مفهوم ملف LNK

LNK هو ملفات النظام - اختصار Windows، بصيغة Binary تم تطويرها بواسطة Microsoft.

الشكل 1: أيقونة الاختصار على Windows

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

يستغل هذا الثغرة الموجودة في Microsoft Windows والتي تسمح للمهاجم بتنفيذ كود عن بُعد إذا تم عرض أيقونة اختصار تم إنشاؤه بطريقة خاصة.

الشكل 2: إنشاء اختصار يدوي يقوم بتنزيل وتشغيل كود الهجوم عبر ملف .LNK

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

  1. إنشاء نظام مصاب بـ CVE-2017-8464

الأنظمة المتأثرة بثغرة CVE-2017-8464 هي Windows Shell في Microsoft Windows Server 2008 SP2 و R2 SP1، وWindows 7 SP1، وWindows 8، وWindows 8.1، وWindows Server 2012 Gold و R2، وWindows RT 8.1، وWindows 10 Gold, 1511, 1607, 1703، وWindows Server 2016، والتي تسمح للمستخدمين المحليين أو المهاجمين عن بُعد بتنفيذ كود عشوائي عبر ملف .LNK تم إنشاؤه يدويًا ولم يتم معالجته بشكل صحيح أثناء عرض الأيقونة في Windows Explorer أو أي تطبيق آخر يقوم بتحليل أيقونة الاختصار. تُعرف أيضًا باسم "ثغرة تنفيذ الكود عن بُعد عبر LNK".

يعمل التحديث الأمني على إصلاح الثغرة عن طريق تصحيح التحقق من مرجع أيقونة الاختصار بشكل صحيح. أصدرت Microsoft Windows تحديثًا لهذه الثغرة في يونيو 2017. لا تؤثر هذه الثغرة على إصدارات Windows XP والإصدارات الأقدم.

  1. أدوات هجوم الثغرة CVE-2017-8464

Metasploit

Metasploit Framework هي بيئة لاختبار وهجوم واستغلال أخطاء الخدمات باستخدام واجهة سطر الأوامر. هذه الأداة متوفرة على Kali Linux إصدار VMware.

الشكل 3: أداة Metasploit

Armitage

أداة بواجهة رسومية مبنية على مشروع Metasploit.

الشكل 4: أداة Armitage.

الجزء 2: استخدام أداة Metasploit لاستغلال CVE-2017-8464

2.1. نموذج استغلال CVE-2017-8464

الجهاز الضحية – Windows 7 Pro

الشكل 5: إصدار نظام تشغيل الضحية

الشكل 6: عنوان IP للجهاز الضحية

جهاز المهاجم – Kali linux – باستخدام أداة Metasploit.

الشكل 7: عنوان IP لجهاز المهاجم

شبكة التشغيل هي VMnet8 الشبكة الفرعية 192.168.169.0

2.2. تنفيذ استغلال CVE-2017-8464

  • إنشاء payloads reverse_tcp والاستماع لاتصالات TCP إلى جهاز Kali.
  • مع LHOST كعنوان استماع من جهاز المهاجمين.

الشكل 8: إنشاء payloads والاستماع لاتصال TCP إلى جهاز المهاجم

  • إنشاء ملف اختصار يحتوي على ثغرة CVE-2017-8464 لتشغيل payloads reverse_tcp المضمنة تلقائيًا.

الشكل 9: إنشاء ملف .lnk يقوم تلقائيًا بتشغيل البرنامج الضار

الشكل 10: معلومات إعداد Payloads

  • تشغيل الأمر exploit لإنشاء الاختصارات التي تحتوي على الثغرة وتشير إلى ملف payload.
  • بالتحديد كما في المعلومات الموضحة أعلاه، سيكون هناك ملف payload هو FlashPlayerCPApp.cpl وملف اختصار يحتوي على الثغرة يقوم بتشغيل ملف payload تلقائيًا.
  • بعد إنشاء جميع الملفات اللازمة، سيتم حفظها في المجلد /root/.msf4/local/ على جهاز المهاجم، ثم يقوم المهاجم بنسخ جميع الملفات في ذلك المجلد إلى أي USB.

الشكل 11: إنشاء ملف .lnk مع البرنامج الضار

الشكل 12: نسخ جميع البرامج الضارة إلى USB

  • بعد إيهام الضحية بتوصيل USB بجهاز الكمبيوتر الخاص به. لا يحتاج الضحية إلى النقر على أي تطبيق في USB، لكن الثغرة من ملف .lnk (ملف الاختصار) قامت تلقائيًا بتشغيل payload البرنامج الضار لتنفيذ الثغرة لتشغيل كود عن بُعد.

الشكل 13: الضحية يقوم بتوصيل USB الذي يحتوي على ملف .lnk المعيب مع البرنامج الضار

  • بالعودة إلى جهاز المهاجم، نرى أن جهاز الضحية قد اتصل بجهاز المهاجم. في هذه اللحظة، يكون المهاجم قد نجح في الاستغلال بناءً على CVE-2017-8464 وتنفيذ البرنامج الضار عن بُعد على جهاز الضحية.

الشكل 14: المهاجمون نجحوا في الاستغلال والاختراق لجهاز الضحية

**

الجزء 3: بناء أداة كشف CVE-2017-8464 باستخدام لغة Python

3.1. تحليل التوقيع (Signature) لـ CVE-2017-8464 بناءً على الحزمة الشبكية الملتقطة

  • عند تنفيذ الهجوم مع التقاط الحزم، نلاحظ أنه عند تشغيل ملف .lnk تلقائيًا، يقوم جهاز الضحية بعمل اتصال TCP إلى عنوان جهاز المهاجم الذي تم تعيينه في payloads.

الشكل 15: حزمة هجوم على ثغرة CVE-2017-8464 تم التقاطها

  • حزمة مع علامة PSH تسمح بالإرسال المباشر إلى جهاز الضحية بدلاً من وضعه في الذاكرة المؤقتة.

الشكل 16: حزمة مع علامة PSH بعد نجاح اتصال TCP إلى المهاجم

  • بعد ذلك، حزمة مع علامة مشبوهة "MZ" تشير إلى أن هذا قد يكون ملف PE ضار يتم إرساله إلى جهاز الضحية.

الشكل 17: علامة مشبوهة في الحزمة الملتقطة أرسلها المهاجم إلى الضحية.

تنسيق ملف PE (Portable Executable File Format): هو تنسيق ملف خاص بـ Win32. جميع الملفات القابلة للتنفيذ على Win32 مثل: *.EXE, *.DLL (32 bit), *.COM, *.NET, *.CPL,… كلها بصيغة PE؛ باستثناء ملفات VxDs و *.DLL (16 bit).

PE_File_Struct.png

الشكل 18: هيكل ملف PE.

DOS MZ Header

تبدأ جميع ملفات PE برأس DOS MZ بسيط. يحتل أول 64 بايت. تُستخدم هذه المنطقة في حالة تشغيل البرنامج على DOS.

e_magic: توقيع ملف PE، القيمة: 4Dh, 5Ah (الأحرف "MZ"، اسم مؤسس MS-DOS: Mark Zbikowsky). تميز هذه القيمة رأس DOS صالح وتسمح بالتنفيذ التالي.

الشكل 19: توقيع ملف PE في الحزمة الملتقطة

e_lfanew: هو DWORD في نهاية رأس DOS، وهو حقل يحتوي على إزاحة PE Header بالنسبة لبداية الملف.

DOS STUB

DOS Stub هو مجرد برنامج DOS EXE صغير يعرض رسالة خطأ، وهو جزء للتوافق مع Windows 16-bit.

الشكل 20: معلومات في حزمة DOS STUB الملتقطة من المهاجم المرسلة إلى الضحية

PE Header

PE Header هو في الواقع هيكل IMAGE_NT_HEADERS الذي يحتوي على المعلومات اللازمة لعملية loader لتحميل الملف إلى الذاكرة.

Signature: هو DWORD يبدأ PE Header ويحتوي على توقيع PE: 50h, 45h, 00h, 00

الشكل 21: معلومات من e_lfanew تشير إلى جزء Signature من PE header.

SECTION TABLE

Section Table هو المكون التالي بعد PE Header، ويتضمن مصفوفة من هياكل IMAGE_SECTION_HEADER.

الشكل 22: محتوى جزء Section table في الحزمة الملتقطة

  • الحزم التالية ستكون أجزاء بيانات من SECTION لملف PE.
  • من هنا، نأخذ فقط جزء HEADER من هيكل ملف PE الضار هذا ونقوم بتجزئته باستخدام دالة MD5 ليكون توقيعًا لكشف البرنامج الضار لهذا الملف. بالتحديد، سنأخذ 1024 بايت من البيانات في الحزمة التي نكتشفها، والتي تتضمن جزء HEADER. وسيتم حفظ المعلومات المتعلقة بالبرنامج الضار في ملف CSV كمجموعة بيانات لكشف البرامج الضارة.

الشكل 23: حفظ التوقيع والمعلومات المتعلقة بالبرنامج الضار في ملف CSV

3.2. دالة معالجة كشف استغلال CVE-2017-8464 بناءً على تحليل توقيع الحزمة الشبكية

  • الدالة ستأخذ معلومات البروتوكولات ذات الصلة في frame_info، إذا كان هناك حقل data، فستأخذ البروتوكول القريب من حقل data.

الشكل 24: دالة أخذ معلومات بروتوكول الحزمة

  • Get_info ستأخذ المعلومات المهمة المشابهة لحقل info في Wireshark.

الشكل 25: دالة أخذ معلومات حقل info للحزمة

  • بالنسبة لدالة التحويل من ملف pcap إلى csv: أولاً، ستستخدم pyshark لتحميل ملف التقاط مؤقت (temp.pcap). ثم تأخذ المعلومات المشابهة لحقل المعلومات في Wireshark لكتابتها في ملف CSV مؤقت. في هذه الدالة، تأخذ فقط الحزم التي تحتوي على طبقة IP&IPV6 فما فوق.
  • بعد التحويل إلى ملف CSV مؤقت، ستقوم بإنشاء نسخة إلى مجلد packet إذا كانت هناك حاجة للتوثيق لاحقًا.

الشكل 26: دالة تحويل الحزم من Pcap إلى ملف CSV

  • أولاً، ستقوم دالة detectRemoteCode بقراءة المعلومات في ملف النموذج الذي يحتوي على التوقيعات (md5) التي تم جمعها وتحليلها مسبقًا. سيتم حفظ التوقيعات مجمعة في هذا الملف النموذجي. ثم تفتح ملف CSV الذي يحتوي على البيانات المؤقتة الملتقطة من حركة الشبكة وتأخذ بيانات data في بروتوكول TCP بحجم 1024 بايت (ما يعادل 2048 حرفًا سداسيًا عشريًا) وتقوم بفك تشفيرها ثم تتحقق إذا كانت تبدأ بالأحرف "MZ". إذا بدأت، تقوم بتجزئتها ومقارنتها مع التوقيعات التي تم التحقق منها مسبقًا. إذا تطابقت، ستقوم بالتحذير وتسجيل ذلك في السجل، على غرار التحليل الثابت (Static Analysis) الذي تقوم به أدوات مكافحة الفيروسات عادةً.

الشكل 27: دالة فحص البرامج الضارة على حركة الشبكة

  • بعد وجود الدوال الرئيسية، يأتي الكود الذي يقوم بمراقبة حركة الشبكة من السطر 88 إلى 109 وهو نهاية البرنامج.
  • السطر الأول يتحقق من وجود المجلد، وإذا لم يكن موجودًا ينشئه.
  • بعد ذلك، حلقة لا نهائية حتى يقوم المستخدم بمقاطعة البرنامج باستخدام Ctrl+C.
  • في بداية الحلقة، يتم استخدام pyshark لالتقاط الحزم، مع واجهة بطاقة الشبكة التي نريد جمعها والاستماع إليها، وملف الإخراج سيكون temp.pcap.
  • سيتم التقاط الحزم لمدة 6 ثوانٍ، ثم تشغيل دالة التحويل من pcap إلى CSV.
  • بعد الحصول على ملف CSV، سيتم تشغيل دالة فحص الثغرة CVE-2017-8464. سيقوم بتنفيذ هذه العمليات بانتظام حتى يقوم المستخدم بإنهاء البرنامج.

الشكل 28: حلقة التقاط حركة الشبكة وفحص البرامج الضارة

*إجراء اختبار عمل البرنامج من خلال تنفيذ الاستغلال.

  • تشغيل برنامج المراقبة على جهاز Windows 10 (جهاز حقيقي) لمراقبة منطقة الشبكة التي سنقوم فيها بتنفيذ الهجوم مرة أخرى كما في الجزء 2 أعلاه.

الشكل 29: بدء تشغيل برنامج المراقبة على الجهاز الحقيقي

  • العودة إلى الجهازين الافتراضيين وتنفيذ عمليات الهجوم مرة أخرى كما في الجزء 2. نلاحظ أن حركة الشبكة التي تم التقاطها قد تم تحليلها واكتشاف أن المهاجم ينفذ LNK Remote code كما هو موضح في الشكل أدناه.
  • أخيرًا، لإنهاء عملية المسح على المنفذ الشبكي، فقط اضغط على Ctrl+C لإنهاء تشغيل البرنامج.

الشكل 30: اكتشاف وتحذير عند الاستماع لحركة الشبكة

  • بعد مسح كل تهديد في مجلد برنامج المراقبة، سنرى مجلد packet الذي يحتوي على الملفات المحولة إلى csv بعد التقاط الحزم باستخدام pyshark، وملف log.txt الذي يسجل الأنشطة التي تم اكتشافها عند تشغيل برنامج المراقبة.
  • بالإضافة إلى ذلك، يتم إنشاء ملفين مؤقتين يستخدمهما البرنامج للقراءة والتحليل والتحويل. يتغير هذان الملفان باستمرار، لذلك سيتم حفظ الحزم المحولة في مجلد packet.
  • أما ملف sample-detect.csv كما ذكرنا سابقًا فهو مكان تخزين التوقيعات التي قمنا بتحليلها لخدمة البرنامج في اكتشاف التهديدات بطريقة التحليل الثابت (Static Analysis) التي تستخدمها أدوات مكافحة الفيروسات عادةً.

الشكل 31: مجلد برنامج المراقبة CVE-2017-8464

الشكل 32: مجلد packet مع الملفات المسجلة للحزم بعد كل عملية تحويل عند التقاط الحزم

  • ثم التحقق من ملف log.txt لمراجعة الأنشطة ومعرفة ما إذا تم اكتشاف أي شيء. تم أيضًا تسجيل اكتشافات الهجمات المستندة إلى CVE-2017-8464 في السجل مع الوقت المحدد وIP المرفق كما هو موضح في الإشعار عند تشغيل البرنامج.

الشكل 33: جميع التحذيرات محفوظة في السجل

الخلاصة

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

تنزيل الأداة