
استغلال الثغرات وتنفيذ الوقاية من الثغرات
بناء تطبيق كشف الثغرة CVE-2017-8464
المحتوى:
الجزء 1: نظرة عامة على CVE-2017-8464
مفهوم ملف LNK إنشاء نظام مصاب بـ CVE-2017-8464 أدوات هجوم الثغرة 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
LNK هو ملفات النظام - اختصار Windows، بصيغة Binary تم تطويرها بواسطة Microsoft.

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

الشكل 2: إنشاء اختصار يدوي يقوم بتنزيل وتشغيل كود الهجوم عبر ملف .LNK
المكون المعرض للهجوم مرتبط بمكدس الشبكة. غالبًا ما يُطلق على هذه الثغرة اسم "قابلة للاستغلال عن بُعد" ويمكن اعتبارها هجومًا يمكن استغلاله على مستوى البروتوكول أو عبر عدة قفزات شبكية (مثل عبر موجه واحد أو أكثر).
الأنظمة المتأثرة بثغرة 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 والإصدارات الأقدم.
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

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

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

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

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

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

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

الشكل 14: المهاجمون نجحوا في الاستغلال والاختراق لجهاز الضحية
**
الجزء 3: بناء أداة كشف CVE-2017-8464 باستخدام لغة Python
3.1. تحليل التوقيع (Signature) لـ CVE-2017-8464 بناءً على الحزمة الشبكية الملتقطة

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

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

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

الشكل 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 في الحزمة الملتقطة

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

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

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

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

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

الشكل 28: حلقة التقاط حركة الشبكة وفحص البرامج الضارة
*إجراء اختبار عمل البرنامج من خلال تنفيذ الاستغلال.

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

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

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

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

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