
حدد الثغرات من الملف الثنائي حيث يطابق النمط CVE-1337-Days
اختر الأخطاء من الثنائي حيث يكون النمط مشابهًا لـ CVE-1337-Days
الملخص
مراجعة الكود الثابتة هي طريقة فعّالة لاكتشاف متغيرات الثغرات وبدائيات الاستغلال، لكن هناك مهمتين من أكثر المهام تحديًا في التحليل الثابت: الاستخراج الفعّال لأنماط الكود من كميات ضخمة من الأخطاء المتنوعة، والبحث الفعّال عن أنماط الكود عبر عدد كبير من الوحدات المختلفة، خاصةً بالنسبة للبرمجيات مغلقة المصدر مثل ويندوز.
يناقش هذا العرض ممارساتنا وتجاربنا بشأن هاتين التحديين. وهو يغطي بشكل أساسي كيفية استخراجنا لأربعة أنماط كود فريدة لأنواع مختلفة من الثغرات وبدائيات الاستغلال، وكيفية استخدامنا لها للعثور تلقائيًا على الثغرات وبدائيات الاستغلال في ويندوز بمساعدة أداة البحث الجديدة لدينا عن أنماط الكود الثنائي: Leviathan.
في هذا العرض، نركّز على أربعة أنماط فريدة للعثور على ثغرات اختطاف الملفات الكلاسيكية، وثغرات تلف الذاكرة في نقاط إعادة التحليل (reparse point)، وثغرات منطق الكتابة فوق قوائم ACL، وبدائيات رشّ التجمع (pool spray) لاستغلال RDP على ويندوز. على وجه التحديد، في جزء نمط الكتابة فوق قوائم ACL، نُظهر كيفية العثور على ثغرة منطقية مثيرة من فئة 0-day في Hyper-V، وهي مستمدة من الثغرة التي استخدمناها في Pwn2Own 2021؛ فقد رُفضت في البداية من قبل Microsoft، لكنها اعتُبرت في النهاية ضمن نطاق التصحيح، بل وأصبحت مؤهلة لبرنامج المكافآت بعد أن قدّمنا ناقل هجوم جديد. سنكشف القصة الكاملة وراء ذلك. ومن الجدير بالذكر أيضًا أنه في جزء نمط بدائيات رشّ التجمع، نُظهر كيفية العثور على ثلاث بدائيات رشّ تجمع فريدة وعالمية لاستغلال RDP. إذ يمكن استخدامها في ثغرة RDP المعروفة BlueKeep(CVE-2019-0708)، وهي مختلفة عن جميع تقنيات الاستغلال العامة الأخرى. جميع التفاصيل، بما في ذلك تعريف نموذج الثغرة، واستخراج نمط الثغرة، وبناء استعلام الكود، ومراجعة النتائج، بالإضافة إلى إنشاء PoC في كل حالة، موضحة بالكامل.
علاوة على ذلك، نقدّم أيضًا أداة جديدة للغة استعلام الكود مصممة للعثور تلقائيًا على الثغرات وبدائيات الاستغلال باستخدام أنماط الكود في الثنائيات. مدعومة بواجهات برمجة Hexray ctree الخاصة بـ IDA Pro وببدائيات البحث الأساسية عن أنماط الكود المبنية عليها، فهي لا تتضمن فقط ميزات مثل تتبع التلوث وتتبع مسارات الكود عبر الثنائيات، بل تحتوي أيضًا على واجهة استعلام SQL لتسهيل العملية بأكملها. اختر أخطاءك وبدائياتك من الثنائي حيثما تشاء!