
تحذير مهم جداً: هذا البرنامج هو إثبات مفهوم (PoC) لأغراض تعليمية وبحثية في مجال الأمن فقط.
يُظهر سكربت Python هذا ثغرة أمنية (افتراضية أو مبنية على ثغرات سابقة، مُشار إليها هنا بشكل توضيحي باسم "قبل iOS 18.3" وفقاً لإثبات المفهوم الأصلي) تتيح تسريب ملفات عشوائية من جهاز iOS. تعتمد الطريقة على التلاعب بنسخة احتياطية من الجهاز، وإنشاء رابط رمزي (symlink) خبيث داخل تلك النسخة، ثم استعادة هذه النسخة المعدَّلة إلى الجهاز. أخيراً، يتم التفاعل مع خدمة نظام (com.apple.mobile.MCInstall) لجعلها تقرأ، دون علمها، الملف الذي يشير إليه الرابط الرمزي.
تمت "تحسين" هذا السكربت من منظور باحث أمني ليتضمن:
تستغل الثغرة سلسلة نقاط الضعف التالية (الموجودة في إصدارات iOS القديمة):
CloudConfigurationDetails.plist) برابط رمزي يشير إلى ملف حساس في نظام ملفات الجهاز (مثل /private/etc/passwd).com.apple.mobile.MCInstall في هذا الإثبات) لديها صلاحيات لقراءة ملف الإعداد الأصلي (CloudConfigurationDetails.plist). عند محاولة قراءة الملف، يتبع نظام التشغيل الرابط الرمزي ويقرأ بدلاً من ذلك محتوى الملف الحساس الذي يشير إليه الرابط.ملاحظة حول إصدار iOS: يذكر إثبات المفهوم الأصلي "iOS < 18.3". هذا الترقيم غير نمطي. قامت Apple بتصحيح الثغرات المتعلقة بمعالجة الروابط الرمزية في النسخ الاحتياطية وملفات التعريف في إصدارات iOS أقدم بكثير (عادةً قبل iOS 15/16 بالنسبة للأنماط الأكثر مباشرة من هذا النوع). هذا المرجع إلى الإصدار مُبقى للاتساق مع مصدر السكربت، ولكن يجب فهمه على أنه توضيحي لـ"إصدار غير مصحح وقابل للاستغلال".
idevicebackup2.idevicebackup2 في PATH الخاص بالنظام.
brew install libimobiledevicesudo apt-get install libimobiledevice-utils (قد يختلف اسم الحزمة)pip install usbmux-python python-lockdown packaging
git clone <url-del-repositorio>
cd <nombre-del-directorio>
libimobiledevice وأن idevicebackup2 متاح.pip install -r requirements.txt # (إذا أنشأت requirements.txt يحتوي على usbmux-python, python-lockdown, packaging)
# أو يدوياً:
# pip install usbmux-python python-lockdown packaging
./exploit_ios_file_read.py [OPCIONES]