
إثبات المفهوم لـ CVE-2018-4327
POC لـ CVE-2018-4327 (على الأقل أعتقد ذلك، فكلٌّ من CVE-2018-4327 وCVE-2018-4330 تمت مناقشتهما بواسطة @SparkZheng، لكن ليس واضحاً منه أيّهما يرتبط بأي خلل، وبما أنه وصف هذا أولاً فأنا أخمّن).
تم اختباره على iPhone 6S 11.3.1
يجب أن يعمل حتى 11.4
يتيح لك تعيين PC (نسخة ARM من مسجّل IP) إلى قيمة من اختيارك على SpringBoard وفي عدد من الخدمات. تحتاج إلى تشغيل الكود ثم الذهاب إلى إعدادات BT والاتصال بجهاز. إذا لم يعمل، فأوقف تشغيل BT ثم أعد تشغيله.
من المزعج جداً استغلالها لكنني أحببتها، لذا أردت إنشاء POC والتعلّم على طول الطريق.
استخدمت كود bluetoothdPoC الخاص بـ @raniXCH للتعامل مع جميع تحضيرات رسالة Mach وإرسالها إلى خدمة BT، وكيّفته ليتناسب مع هذا الـ POC.
استخدمت jtool للعثور على الرقم الترتيبي (ordinal) وأشياء أخرى.
اضطررت للقيام ببعض الهندسة العكسية (RE) للعثور على أحجام الرسائل الصحيحة.
الاعتمادات:
@SparkZheng - لمحاضرته الرائعة في DEFCON 26.
@raniXCH - للعرض الممتاز في HITB وbluetoothdPoC.
Jonathan Levin - للكتاب الرائع وjtool.
المراجع:
http://www.newosxbook.com/tools/jtool.html - jtool الذي استخدمته من أجل العثور على الرقم الترتيبي (ordinal) وأشياء أخرى.
https://www.weibo.com/ttarticle/p/show?id=2309404271293301154324 - مادة @SparkZheng.
https://github.com/rani-i/bluetoothdPoC - كود الـ POC الخاص بـ @raniXCH.
https://gsec.hitb.org/materials/sg2018/D2%20-%20The%20Road%20to%20iOS%20Sandbox%20Escape%20-%20Rani%20Idan.pdf - مادة @raniXCH الجزء 1.
https://blog.zimperium.com/cve-2018-4087-poc-escaping-sandbox-misleading-bluetoothd/ - مادة @raniXCH الجزء 2.