كيف تعمل الـRemote buffer overflow exploits المكتوبة بلغات مثل البايثون إذا لم يكن runtime خاصتها موجود في الجهاز المُستهدف؟


التعليقات

اسألك نفسك (نفس السؤال لكن بعيد عن الاستغلال)

كيف يعمل اي برنامج عن بعد

وكرر السؤال مره اخرى بطريقة مختلفه

ماهي اسباب ثغرات البفر او الطفح

واربط المفاهيم ببعضها تتضح لك الصورة

هههه يبدو انك لم تتجه لهذا المجال بالكامل

ثغرة البفر سببها ان المكان المحجوز داخل الذاكره يستقبل 4 بايت كمثال ولم يتم حماية المدخل

يقوم الهكر بارسال 10 بايت فيصبح هناك كراش بالبرنامج والبايتات الزائدة تطفح لمكان اخر بالذاكره لذلك سميت الطفح

فيقوم بكتابة شل كود ويوجه ال EIP لمكان او رقم الايدي داخل الذاكره لتشغيل الخطوة التاليه

فيتم توجيهها الى الشل كود

الريموت يقوم بارسال البايتات والشل كود والمستقبل هو بورت البرنامج الاخر داخل جهاز الضحية

كتواصل عادي

ومن ثم يقوم بتنفيذ الشل كود داخل جهاز الضحية اياً كانت وظيفة الشل كود فهو مرسل كبايتات الى البرنامج المستقبل

اتمنى وضحت الصورة لو قليلا

لان المساله اكثر تعقيدا

ويلزمك معرفة التعامل مع الذاكره ومعرفة بعض المفاهيم

stack

CPU

Memory

ESP, EBP , EIP

الى اخره من امور تخص الذاكره وكيفية التعامل معها من داخل المنقح

لكن كيف تعمل هذه اكواد الاستغلال إذا لم يكن runtime موجود في الجهاز المُستهدف؟

لانه الاستغلال لا علاقة له بالغة التي كتب فيها الاستغلال

ممكن ان تكتب الاستغلال بأي لغة او حتى تنفيذه يدوياً دون برمجة، لكن الشل كود هو تعليمات للمعالج ونظام التشغيل نفسه (مثلاً شل كود لاستهداف برنامج على ويندوز يختلف عن آخر لاستهداف برنامج على لينوكس)، وليست اكواد بايثون، البايثون فقط لايصال هذا الشل كود الى المكان المطلوب

المهم ان تتصل بلبرنامج المستهدف وتنفذ ما شرحه المستخدم المجهول

كفكرة عامة لا تحتاج الى دراسة السي والهندسة العكسية فقط من اجل اخذ فكرة عامة !

فقط افهم المبدأ العام وآلية عمل هذه الثغرات وكيف تقوم باستغلالها

الامر مختلف لو كنت تريد اكتشاف هذه الثغرات بنفسك طبعاً ..


برمجة

المواضيع والنقاشات المتعلقة بالبرمجة بشكل عام او لغات البرمجة التي لايوجد لها مجتمعات فرعية.

24.6 ألف متابع