CVE-2024-38063 — ثغرة حزمة IPv6 في Windows (تحليل وإثبات مفهوم)
-red)
تحليل تقني وإثبات مفهوم (PoC) للثغرة CVE-2024-38063، وهي ثغرة حرجة لتنفيذ التعليمات عن بُعد (RCE) في حزمة IPv6 في Windows (tcpip.sys). اكتُشفت هذه المشكلة بواسطة KunLun Lab، وهي ثغرة zero-click، أي يمكن تفعيلها عبر حزم مُصمَّمة خصيصًا دون أي تفاعل من المستخدم.
السياق الأكاديمي: مشروع نهائي لمقرر «أساسيات أمن الشبكات».
عرض توضيحي
جدول المحتويات
نظرة عامة
يحتوي هذا المستودع على:
- تحليل مُنظَّم للثغرة،
- عرض توضيحي لإثبات المفهوم باستخدام Scapy،
- وتوثيق كامل للمقرر وتعليمات المختبر.
ملخص تقني
تكمن المشكلة الأساسية في integer underflow داخل tcpip.sys أثناء تحليل IPv6 Extension Headers ضمن حركة مرور مُجزَّأة.
- خلل منطقي: يفشل التحقق من طول الترويسة أثناء الحساب.
- تلف الذاكرة: يؤدي الـ underflow إلى تجاوز سعة المخزن المؤقت وكتابات غير آمنة في الذاكرة.
- التأثير: احتمال حدوث BSOD وRCE في ظروف محددة.
محتويات المستودع
- CVE-2024-38063 Analysis.pdf — شرائح تغطي الخلفية والسبب الجذري وطرق التخفيف.
- CVE-2024-38063.py — سكربت إثبات مفهوم مبني على Scapy (يوضح سلوك الانهيار).
- WriteUP.pdf — تقرير كامل، ومتطلبات المختبر، وملاحظات التنفيذ.
إعداد المختبر
لإعادة إنتاج البيئة في مختبر تعليمي مُتحكَّم به:
- الضحية: Windows 10/11 قبل تحديث أغسطس 2024 / 24H2، مع تفعيل IPv6.
- المهاجم: جهاز Linux افتراضي مع Python 3 وScapy.
- الشبكة: اتصال IPv6 بين الجهازين على نفس قطاع الشبكة.
منطق إثبات المفهوم (على مستوى عالٍ)
يقوم إثبات المفهوم ببناء سلسلة من الحزم لتفعيل الـ underflow:
- Destination Options بنوع خيار غير معروف لدفع مسارات معالجة الأخطاء.
- Fragment 1 لبدء التجزئة وتوفير الحمولة.
- Fragment 2 لإنهاء السلسلة.
يكرر السكربت هذه الدفعات مع تغيير Hop Limit لزيادة احتمال الوصول إلى مسار التحليل المُعرَّض للثغرة.
الاستخدام
- حدد عنوان IPv6 الهدف.
- حدّث
ip_addr وiface في CVE-2024-38063.py.
- شغّل السكربت من جهاز المهاجم:
pip install scapy
pip install getmac
python3 CVE-2024-38063.py
إذا كان الهدف عرضة للثغرة، فعادةً ما تحدث شاشة الموت الزرقاء (BSOD) خلال 30–60 ثانية أثناء معالجة النواة للترويسات المشوّهة.
التخفيف
- تطبيق تحديثات الأمان: تصحيح Microsoft (13 أغسطس 2024).
- تعطيل IPv6 حيث لا يكون التصحيح ممكنًا.
- التصفية عبر الجدار الناري: حظر حزم IPv6 المجزّأة عند المحيط.
ما تعلمته
- بنية ترويسة IPv6: تعمّقت في فهم تسلسل الترويسة التالية (Hop-by-Hop وDestination Options وFragmentation)، وكيف يؤدي تعقيد الترويسات المتداخلة إلى توسيع سطح الهجوم الشبكي.
- التقاط الحزم على مستوى النواة (
tcpip.sys): راقبت معالجة الحزم في الحلقة 0 (Ring 0) بشكل مباشر. ولأن إعادة تجميع التجزئة والتحليل يحدثان في عمق برنامج تشغيل الشبكة قبل الوصول إلى مقابس وضع المستخدم، فإن العيوب في هذه الطبقة تتجاوز ضوابط البرمجيات على مستوى المضيف وتمكّن من الاستغلال دون نقر (zero-click).
- آلية الثغرة الجذرية: حلّلت كيف يؤدي الطرح الناقص (integer underflow) في حساب طول الترويسة إلى إفساد إزاحات المؤشر، محوّلًا عيبًا حسابيًا إلى كتابات في ذاكرة النواة خارج الحدود (out-of-bounds) وحالات ذعر في النظام (BSOD).
- بناء حزم مخصصة باستخدام Scapy: اكتسبت خبرة عملية في إنشاء حزم غير متوافقة مع RFC، وحقن وحدات TLV (Type-Length-Value) مشوّهة في Destination Option، وتسلسل الأجزاء لإجبار معالجة الأخطاء في الحالات الحدّية داخل نواة الهدف.
إخلاء المسؤولية
هذا المشروع لأغراض تعليمية وبحثية فقط. يُعد الاختبار أو الوصول غير المصرّح به إلى أنظمة لا تملكها أو لا تملك إذنًا صريحًا بتقييمها غير قانوني. ولا يتحمل المؤلفون أي مسؤولية عن سوء الاستخدام.