خلال الأسابيع الماضية شكلت ثغرة Stage Fright جدل عالمي كبير جداً حولها , حيث تمكنك هذه الثغرة من إختراق الأجهزة التي تعمل بنظام Android من خلال رسالة MMS فقط ! حيث قام الباحث الأمني Joshua J. Drake بإكتشاف هذه الثغرة داخل المكتبات المخصصة لمعالجة الوسائط المتعددة في أنظمة Android , حيث فور وصول رسالة وسائط متعددة إلى النظام يحدث هنالك خلل في إستقبالها ينتج عنها buffer overflow إستطاع Joshua إستغلالاه بكل عبقرية 😀 حيث أنني فور ما قمت بالإطلاع على الإستغلال ذهلت حقاً من كيفية كتابة الإستغلال الخاصة بالثغرة ومدى الإبداع الذي قام به فعلاً.

وفي هذا المقال سوف نشرح إن شاء الله كيفية إستغلال هذه الثغرة بادئاً بتحميلها وأخيراً إلى وصول سطر أوامر حقيقي على جهاز الهدف يمكننا بالتحكم به فقط من خلال إرسال ملف mp4 مصاب إلى رقم هاتف الهدف.

قبل أن نبدأ بالطبع أنا وشركة iSecur1ty عموماً ومجتمع iSecur1ty خصوصاً لا نحرض على إستغلال هذه الثغرة بأمور غير مشروعة ونخلي مسؤوليتنا الكاملة في حال إستخدام المعلومات بشكل خاطئ.

للأسف و أثناء كتابة المقال حدثت بعض المشاكل في التعامل مع شبكة MMS لدينا , ولم أتمكن من إرسال الملف بالشكل السليم وتطبيق عملي حقيقي للثغرة كما ذكرت نظراً لبعض المشاكل المؤقتة الحالية بشكبة الهاتف بالعموم في المنطقة لدي , وفور حلها سوف أقوم بتحديث المقال وشرح وصول الإتصال العكسي لدينا , ولم نريد عمل إتصال وهمي من جهاز الهدف نظراً للأمانة العلمية في نقل المعلومة 🙂

دعونا الأن نبدأ بعملية تحميل الثغرة , وهي موجوده على هذا الرابط , سوف نقوم بتحميلها وسحبها من خلال wget وتغير إسمها إلى mp4.py لكي تعمل بالشكل المطلوب معنا :

wget_stagefright

كما نشاهد قمنا بحفظ الثغرة داخل مجلد opt بإسم mp4.py , الأن سوف نقوم بإستعراض سريع للثغرة وسوف أقوم بإستخدام nano لقرأة الملف :

code_stagefright

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

ومن الجدير بالذكر أنه للان لا يوجد أي Metasploit Module يقوم بالتعامل مع هذه الثغرة حتى الأن.

سوف نقوم الأن بتشغيل ملف الثغرة لنلاحظ ما هي الأمور المتاحه لنا :

help_mp4

يوجد العديد من الخيارات الخاصة بهذه الثغرة , ما يهمنا حقاً هو خيار CBHOST , CBPORT وهما الهوست والبورت الذي سوف يتم التوصل بشكل عكسي بهم لفتح سطر أوامر مع النظام , وطبعاً سوف أقوم بالتنفيذ على جهاز متوصل بالشبكة المحلية بي فقط لإتمام الإتصال العكسي مع جهازي.

لا يهم إن كان الجهاز الهدف داخل شبكتك أم لا ولكن انا هنا قمت بالتنفيذ على شبكتي لكي أقوم بالتوصل بجهاز اللابتوب الخاص بي.

حسناً سوف أقوم بإدخال الخيارات الخاصة ب CBPORT , CBHOST من خلال سطر الأوامر كما هو موضح بالصورة التالية :

run_mp4_save

كما نشاهد تم تكوين الملف وقمت بحفظه بإسم my_file.mp4 , هذا الملف سوف أقوم بإرساله إلى الهدف على أمل أن يقوم بالإتصال بي دون أي حاجه لتدخل الهدف , ولكن قبل ذلك سوف نقوم بتلقي الإتصال عبر المنفذ 8888 لكي نستقبل الإتصال القادم من الجهاز وسوف أقوم بالطبع بإستخدام أداة nc لتلقي الإتصال كما هو موضح :

nc_listen

حسناً , سوف أستخدم جهازي بعملية إرسال ملف mp4 لرقم محدد تابع لي بعد ما أقوم بنقل الملف إلى الجهازي , و

الأن سوف نقوم بإرسال الملف من خلال جهازي عبر MMS إلى الجهاز الهدف , وسوف نرى النتائج بشكل فوري إن شاء الله 🙂

في الغالب تحددك بعض الأجهزة بحجم معين لرسائل MMS  بحجم صغير ولن تستوعب حجم الملف النتاج وهو 2MB لذلك سوف نتخطى هذه المشكلة

كيف سوف نتخظى مشكلة الحجم ؟ الحل بسيط جداً هنالك تطبيقات طرف ثالث تساعدك على التحكم بحجم رسائل MMS من طرف الجهاز  وانا إستخدمت تطبيق chompSMS في عملية تعديل الحجم من خلال فتح التطبيق بعد تثبيته وتغير إعدادات رسائل الوسائط من Settings – SMS&MMS settings – MMS settings  – Send Size Limit كما يلي :

limit_mms

الأن سوف نقوم بإرسال الملف إلى الهدف كما في الصورة التالية  وإنتظار النتيجة :

send_mp4

كما يمكنكم إستخدام برامج مثل textra ورفع الحد الأعلى لرسالة MMS

طبعاً عند To نقوم بوضع رقم الهاتف ولكني قمت بوضعه بعد تصوير الشاشة 😀 , يجب أن ننتظر قليلاً لغاية وصول الملف ومن ثم تشغيله على الجهاز بشكل أوتوماتيكي من قبل النظام.

وكما ذكرت مسبقاً وجود بعض المشاكل المؤقتة في شبكة الهاتف بالعموم لذلك لن أتمكن من إرسال الملف والتطبيق بشكل عملي عليه.

أثبتت هذه الثغرة خصوصاً والثغرات التي ظهرت بأخر فترة عموماً أن نظام Android كباقي الأنظمة الأخرى يمكن أن يكون يصاب بثغرات قاتلة فيه تؤدي إلى مشاكل كبيرة للمستخدم.

كيف يمكنني حماية نفسي من ثغرة Stage Fright ؟

في البداية يجب عليك أن تقوم بالتأكد من وجود الثغرة لديك , وتستطيع تحميل تطبيق Stage Fright detector من Google Play وهذه صورة للتطبيق :

SFDT1 SFDT2

طبعاً هذا التطبيق يقوم بالتحقق من وجود الثغرة بجهازك وإعطائك النتائج وبعض المصادر كذلك.

الأن بعد التأكد من وجود الثغرة لديك , ننصحك بتعطيل خاصة التشغيل التلقائي لرسائل MMS , أو  يمكنك تشغيل الرسائل من خلال برمجية طرف ثالث تساعدك على تعطيل تشغيل رسائل MMS بكل بساطة.

هذه بعض المصادر المفيده التي يمكنكم الإعتماد عليها في مراجعة الثغرة بشكل أكبر  و أوسع :

1- إعلان نشر الإستغلال للعلن وذكر مراحل الإستغلال.

2- فيديو يوضح عملية الإستغلال والحصول على الإتصال العكسي.

4- محاضرة الباحث Joshua في مؤتمر Black Hat.

3- بيان إطلاق أداة Stage Fright Detector tool.

أنصحكم بشدة بمشاهدة محاضرة Joshua في مؤتمر Black Hat لأنها بالفعل تحتوي على معلومات رائعة وأمور من الجيد أن تكون على معرفة ودراية بها.

إلى هنا يكون إنتهى المقال , وإن شاء الله سوف نخبركم بأي تحديثات سوف نصدرها عليه بشكل مباشر , ونتمنى من أي شخص قام بتجربة الثغرة أن يقوم بإعطائنا النتائج الخاصة بها , وما هي التعليمات الكاملة التي إتبعها لمشاركتها معكم أيضاً.