السلام عليكم
بدون مقدمات
شرح اكتشاف استغلال ثغرات البفر اوفر فلو على انظمة الاندرويد
اولا :
انا الان متصل بالهاتف عن طريق ssh
rooted phone طبعا
نشوف نظام التشغيل + الصلاحيات
ثانيا :
نقوم بتعطيل الحمايات ASLR DEP
لان الشرح من المستوى الاول
ثالثا :
اهم شي في كتابة استغلالات البوفر هو debug و افضل برنامج gdb
سنقوم بتنصيب gdb server على الهاتف و نتصل به من الجهاز عن طريق gdb client
اول شئ نجرب ننزل gdb server في المسار /system/bin
لم تفلح
نشوف السبب
المسار ro يعني للقراءة فقط لا يمكن الكتابة عليه
لذلك راه نعيد تركيب system ليكون صالح للكتابة عليه
كما في الصورة
ركبنا system للكتابة و القراءة حملنا gdb server + تصريحه 755 ثم اعدنا system للقراءة فقط
نجرب ونشوف
البرنامج شغال تمام
الشغل الذي فوق هو في الهاتف انا منتصل بيه عن طريق ssh
الان نشوف جزء الوينداوز
برنامج gdb client بسيط تجدونه في المرفقات لما ارفعه
الان لدينا الملف المصاب /data/buffer على الهاتف طبعا
نجرب نشغله
كما هو واضح في الصورة البرنامج مصاب وهناك عدد محدد لحدوث البفر
الان نقوم بربط البرنامجين مع بعض الذي في الهاتف و الذي يشتغل على وندوز
نقوم بتشغيل الملف و تفعيل الديبغنج على بورت معين للهاتف الجوال
نحدد في gdb client الجهاز المراد عمل ديبغنج له مع البورت الذي هو افتراضيا 8888 كما وضعنا سابقا
ونحدد
target remot ipadresse
ثم نضغط c يعني continue اي متابعة تشغيل الملف
كما تلاحظون في الصورة r11
0x4141414141
يعني وجود ثغرة
buffer over flow
طريقة معرفة الطول مش راح اتطرق اليها لانها نفسها في كل الانظمة
الان بعد جلب الطول نطبق نفس ما سبق
الان نقوم بقراء الستاك ونشوف الادريس
طبيعة الاستغلال النهائي راح يكون
اي اننا نحدد مساحة node ثم نكتب الشل كود ثم عند حدوث البفر نرجع الادريس الى اي مكان في node حتي يصل للشل كود و يتنفذ بنجاح
ثمت بختار شل كود اتصال عكسي عن طريق بورت معين والنتيجة
سلام
عذرا على الشرح العشوائي فالوقت اصبح عزيز جدا