
محاولة لسرقة بيانات اعتماد النواة من launchd + مؤشر task_t (استنادًا إلى: CVE-2017-7047)
محاولة سرقة بيانات اعتماد النواة من launchd + مؤشر task_t (استنادًا إلى: CVE-2017-7047)
Triple Fetch هو استغلال لأجهزة iOS قبل iOS 10.3.3 يستغل خطأً منطقيًا في libxpc يسمح للمهاجمين بإرسال رسائل خبيثة تحتوي على كائنات xpc_data مدعومة بذاكرة مشتركة.
يستهدف الاستغلال الأصلي خدمة (daemon) منخفضة المستوى على iOS تستخدم NSXPC وهي CoreAuthenticationd. يقوم الاستغلال بتصحيح AMFID للسماح بتنفيذ كود عشوائي، كما يحصل على send_right لـ launchd، مما يتيح لنا تنفيذ task_for_pid 1. وهذا يمنحنا صلاحيات كاملة على أدنى خدمة في النظام، وهي launchd.
بما أن الاستغلال يأتي مع مثال جاهز يسمى hello_world لاستخدام مهمة launchd لتفريغ ذاكرة launchd مع مناطق الذاكرة (قراءة/كتابة/تنفيذ). لن يكون من الصعب القيام بما يلي:
بما أن الاستغلال يعمل مباشرة من فضاء المستخدم ويحصل على صلاحية الجذر دون تصحيح النواة، يمكن استخدام هذا الاستغلال بشكل مثالي لأغراض كسر الحماية (jailbreak). ومع ذلك، وبما أن الخطأ هو حالة سباق (race condition) يبدو أنها تحدث نادرًا بشكل صحيح، فسيضطر المستخدمون إلى إعادة التشغيل والمحاولة عدة مرات قبل أن يتمكنوا من كسر الحماية مجددًا.
يمكنك دائمًا إنشاء طلب سحب (pull request) إذا كنت تريد المساهمة ببرمجيات في المستودع. سنضيف ملفًا يحتوي على الكثير من الإزاحات (offsets) اللازمة لتصحيحات النواة المستقبلية. سنعمل على كود يساعد في سرقة بيانات اعتماد النواة من launchd.
باستخدام واجهات برمجة تطبيقات VoIP الخاصة بشركة Apple، سنحاول جعل الاستغلال يعمل تلقائيًا في الخلفية بعد كل إعادة تشغيل. ستتم إضافة حزمة إعدادات جميلة إلى التطبيق بحيث يمكنك تعيين bootNonce من تطبيق الإعدادات لأغراض خفض الإصدار مستقبلاً. سيتم إضافة مفتاح تبديل لتعطيل وتفعيل تحديثات OTA. سيتم إضافة كود لحفظ SHSH2-blobs تلقائيًا باستخدام مهام cron. سأبذل قصارى جهدي لدمج Tor في كسر الحماية بحيث يمكن تفعيله من الإعدادات، لأن الجميع يحتاج إلى خصوصيته. تمت إضافة حاجب محتوى (content blocker) للمتعة فقط للتخلص من الإعلانات المزعجة في Safari.