ترك OnePlus تطبيق اختبار هندسي Qualcomm يعمل كباب خلفي لمنح الوصول إلى الجذر على OnePlus 3 و3T و5.
التحديث: أصدر OnePlus الرد الرسمي لهذه المسألة. سيقومون بإزالة وظيفة جذر ADB من EngineerMode في التحديث القادم.
لقد مر ما يزيد قليلاً عن شهر منذ اكتشاف قيام شركة OnePlus بجمع البيانات معلومات التعريف الشخصية للتحليلات. وسرعان ما عكست الشركة مسارها، وفي أحد التحديثات وعدت الشركة بأن تكون أكثر شفافية من خلال منح المستخدمين حق الوصول بوضوح خيار إلغاء الاشتراك في تحليلات OxygenOS. وعلى الرغم من أن هذه الكارثة قد تم حلها منذ ذلك الحين، إلا أن هناك أخرى تطل برأسها القبيح الليلة. مستخدم على تويتر يحمل الاسم "إليوت ألدرسون" (سمي على اسم الشخصية الرئيسية في المسلسل التلفزيوني الشهير Mr. Robot) اكتشف ذلك OnePlus ترك بطريق الخطأ تطبيق اختبار تشخيصي صنع بواسطة كوالكوم. بعد فك هذا التطبيق، اكتشف أنه يمكن أن يكون كذلك يتم استغلالها لمنح الوصول إلى الجذر، حيث تعمل بشكل فعال كباب خلفي.
يُطلق على التطبيق اسم "EngineerMode" وهو في الأساس تطبيق نظام من إنتاج شركة Qualcomm ويتم توفيرها لمصنعي المعدات الأصلية مثل OnePlus حتى يتمكن مصنعو المعدات الأصلية من اختبار جميع مكونات الأجهزة الخاصة بالجهاز بسهولة جهاز. تم تثبيت التطبيق مسبقًا على جميع أجهزة OnePlus 3 وOnePlus 3T وOnePlus 5 ويمكن الوصول إليه بسهولة من خلال أي مشغل نشاط حيث يتم تصدير جميع أنشطة التطبيق.
نحن في الواقع غطى وجود هذا التطبيق منذ عدة أشهرولكن في ذلك الوقت لم يكن لدينا أي فكرة عما يمكن استخدامه من أجله. قام مستخدم تويتر بتفكيك التطبيق (تم نشر مصدره عبر الإنترنت هنا) ووجدت نشاطًا مثيرًا للاهتمام يسمى DiagEnabled. وعلى وجه الخصوص، برزت إحدى الطرق ضمن النشاط: escalatedUp. تقبل هذه الطريقة قيمة منطقية (صواب/خطأ) وسلسلة. السلسلة عبارة عن كلمة مرور يتم فحصها بواسطة الطريقة قبل تعيين خصائص النظام persist.sys.adbroot
و oem.selinux.reload_policy
إلى 1.
تعتبر خاصية النظام الأولى مثيرة للاهتمام بشكل خاص لأنها تسمح للمستخدم بتشغيل ADB كجذر. يفتح هذا على الفور إمكانية الوصول إلى الجذر الكامل على الهاتف، كل ذلك دون إلغاء قفل أداة تحميل التشغيل. فكيف يمكنك بالضبط جعل تطبيق EngineerMode يضبط خصائص النظام هذه على "1"؟
يلزم @fs0c131y العثور على كلمة المرور الصحيحة لإرسالها بغرض تمرير المنطق بالطريقة المنشورة أعلاه. ومع ذلك، فإن العثور على كلمة المرور هذه ليس بالمهمة السهلة. قام بتفكيك المكتبة المسؤولة عن إنشاء كلمة المرور (المسماة libdoor.so) ووجد مكان تجزئة كلمة المرور: /data/backup/fpwd
. يتم إنشاء كلمة المرور من خصائص البناء المختلفة مثل ro.product.model
و ro.product.brand
ولن يكون من السهل إجراء هندسة عكسية.
لحسن الحظ مع المساعدة ديفيد وينشتاين و الآن آمن على Twitter، اكتشف كلمة المرور التي يحتاجها EngineerMode من أجل تصعيد ADB إلى امتيازات الجذر.
كل ما على المرء فعله هو إرسال نية بهذا التنسيق:
adb shell am start -n com.android.engineeringmode/.qualcomm.DiagEnabled --es "code""angela"
حيث com.android.engineeringmode/.qualcomm. DiagEnabled هو اسم مكون نشاط DiagEnabled الذي نستغله، و"code" هو اسم السلسلة و"angela" هي قيمة كلمة المرور ذات الصلة.
@ fs0c131y يقول أنه سيفعل ذلك نشر التطبيق قريبًا، سيتم إرسال هذه النية لرفع مستوى ADB إلى امتيازات الجذر، وتصحيح صورة التمهيد لتعطيل dm-verity، وتثبيت ثنائيات su. راقب منتديات XDA لمعرفة متى يتم نشر تطبيق الجذر هذا.
ما يعنيه هذا بالنسبة للمستخدمين النهائيين هو أنه يمكنك ذلك يمكنك بسهولة الوصول إلى هاتف OnePlus 3 وOnePlus 3T وOnePlus 5 دون فتح أداة تحميل التشغيل على الإطلاق. لا يسمح هذا الاستغلال لأي تطبيق ضار بمنح نفسه حق الوصول إلى الجذر، لذلك ما لم يكن لدى شخص ما وصول فعلي إلى جهازك لإعداد ADB، فأنت في مأمن من الاستغلال.
في حال كنت تريد حماية نفسك من هذا الاستغلال بغض النظر عن ذلك، يمكنك ذلك إلغاء تثبيت التطبيق من المستخدم الحالي مما سيمنع إرسال النية إلى تطبيق EngineerMode. فقط استخدم الأمر التالي في ADB:
adbshellpmuninstall-k--user 0 com.android.engineermode
وبطبيعة الحال، لا يزال هذا يعتبر استغلالًا ونأمل أن يقوم OnePlus بتصحيح هذا قريبًا. كل ما يحتاجون إليه حقًا هو إزالة هذا التطبيق من الإصدارات المستقبلية.
التحديث 1: كلمة المرور هي "angela"
نشر المستخدم @fs0c131y تحديثًا على صفحته على Twitter باستخدام كلمة المرور التي تحتاجها للدخول إلى غلاف ADB ذي الجذر. كلمة المرور تلك هي...أنجيلا. لأولئك منكم الذين لا يشاهدون السيد روبوت، أنجيلا هو اسم أحد الأبطال. أعتقد أنه لا بد أن يكون هناك الكثير من محبي السيد روبوت في شركة كوالكوم.
إذا قمت بإدخال الأمر الذي نشرته أعلاه في ADB، ستلاحظ أن ADB ينقطع الاتصال على الفور ويتم إعادة تشغيل الخادم. أدخل ADB مرة أخرى، وستلاحظ أنه أصبح الآن عبارة عن shell متجذر.
التحديث 2: كيف تم اشتقاق كلمة المرور
نشرت شركة الأمان Now Secure منشور مدونة يوضح بالتفصيل كيفية اشتقاق كلمة المرور اللازمة لحدوث استغلال الجذر هذا. يمكنك قراءة منشورهم الكامل هنا.
التحديث 3: تأثر المزيد من الأجهزة
لا ينبغي أن تكون هذه الأخبار الأخيرة بمثابة مفاجأة، ولكن يبدو أن المزيد من الأجهزة قد تأثرت بهذا الاستغلال. وذلك لأن تطبيق EngineerMode هو أحد تطبيقات Qualcomm، لذلك من الممكن أن يكون مصنعو المعدات الأصلية الآخرون قد تركوه مثبتًا مسبقًا على أجهزتهم. حتى الآن، تواصل المستخدمون مع @fs0c131y على Twitter للتأكد من تثبيت التطبيق عليه بعض أجهزة Asus Zenfone وXiaomi. يمكنك التحقق بسهولة لمعرفة ما إذا كان جهازك يحتوي على هذا التطبيق من خلال الانتقال إلى الإعدادات ومعرفة التطبيقات المثبتة.
التحديث 4: تأصيل جهازك
باستخدام بعض الأوامر عبر غلاف ADB الجذر، أصبح من الممكن الآن القيام بذلك ادفع الملف الثنائي su إلى جهازك. باستخدام ذلك، يمكنك بعد ذلك تثبيت تطبيق مدير الجذر مثل SuperSU ومن ثم منح حق الوصول إلى الجذر للتطبيقات الأخرى بحرية. كل ذلك دون فتح أداة تحميل التشغيل الخاصة بك!
التحديث 5: يستجيب OnePlus
لقد استجاب OnePlus رسميًا للموقف. في مشاركة مدونةتكرر الشركة أنه لا يمكن استخدام هذا الاستغلال إلا إذا كان لدى المهاجم إمكانية الوصول الفعلي إلى الجهاز وقام بتمكين تصحيح أخطاء USB. لتمكين تصحيح أخطاء USB، يحتاج المهاجم أيضًا إلى الرقم السري/كلمة المرور الخاصة بجهازك. وبالتالي، لا يمكن استغلال الباب الخلفي الجذري بسهولة بواسطة أي تطبيق أو شخص، ولكن مع ذلك ستعالج OnePlus مخاوف المستخدمين عن طريق إزالة هذه الوظيفة من تطبيق EngineerMode.