Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
UnjailMe — هروب من صندوق الحماية يستند إلى إثبات المفهوم (CVE-2018-4087) من إعداد راني عيدان (Zimperium) | Kitploit
أدوات/GitHubGitHub/mtjailed/unjailme
تصعيد الامتيازاتأطر الاستغلالأمان iOSتحليل الثغرات الأمنيةالاستغلالالتحقيق الجنائي الرقميما بعد الاستغلالأمن الجوالتطوير الحمولاتاستغلال الملفات الثنائية
GitHubmtjailed/unjailme

UnjailMe

8221منذ 8 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

هروب من صندوق الحماية يستند إلى إثبات المفهوم (CVE-2018-4087) من إعداد راني عيدان (Zimperium)

عرض المستودعالموقع الإلكتروني

UnjailMe

أداة هروب من بيئة الحماية (sandbox) تعتمد على:

  • إثبات المفهوم (CVE-2018-4087) من Rani Idan (Zimperium)
  • إثبات المفهوم لفيضان securityd من @cheesecakeufo (ثغرة يوم صفر، لا يُعرف لها CVE، شكراً Abraham!)

حول إثبات المفهوم من ZIMPERIUM

استخدم Rani أداة sbtool من Jonathan Levine لاكتشاف الخدمات المتاحة للتواصل من داخل بيئة الحماية.

ثم اكتشف المزيد حول bluetoothd وأنشأ كوداً لاعتراض الرسائل الواردة والصادرة من وإلى الخدمة.

من خلال ذلك اكتشف أنه يمكنه اختطاف جلسة العديد من الخفيّات (daemons) وتسريب منفذ العميل.

بهذه الطريقة وجد أنه من الممكن إضافة استدعاء رجعي (callback) مع بيانات إضافية إلى اتصال العميل بـ bluetoothd.

النتيجة المترتبة على ذلك هي إمكانية السيطرة على عدّاد العملية (callback) وتسجيل x3 (البيانات الإضافية) للخفيّات النظامية التي يتم اعتراض منفذ عميلها (الجلسة).

مما يتيح إمكانية الهروب بتطبيق معزول (sandboxed) إلى سياق متميز (privileged context) مما يجعله ينفّذ كوداً بصلاحيات النظام.

قامت Apple بتصحيح الثغرات في iOS 11.2.5 باستخدام arc4random() لمعرّف الجلسة.

يبدو أنه لم يعد من الممكن الحصول على منفذ عميل بعد الآن ولكن اعتراض الجلسات ما زال ممكناً.

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

المصدر: مدونة Zimperium

حول إثبات المفهوم من Abraham Masri

على حد علمي هذه ثغرة فيضان مخزن مؤقت (buffer overflow) في التواصل مع securityd.

ويتم ذلك عن طريق إرسال رسالة XPC، وهي رسالة قائمة على القيمة-المفتاح من نوع قاموس (dictionary)، بطول غير صالح.

تستقبل الخدمة الرسالة ويحدث التدفق السفلي (underflow).

يبدو أن Abraham وجد طريقة للتحكم في العديد من مسجّلات المعالج مما يجعل تنفيذ الكود بصلاحيات النظام ممكناً للتطبيقات التي تعمل داخل النظام.

يُظهر إثبات المفهوم من Abraham أنه يحاول إنشاء استغلال (exploit) لهذه الثغرة بنفسه، حيث يوجد كود لتسريب العناوين الأساسية (base addresses) والذي يُعرف بأنه بداية إنشاء سلسلة ROP.

من غير المعروف ما إذا كان Abraham يخطط لكتابة هذا الاستغلال بنفسه أو يرشدنا إلى الاتجاه الصحيح.

المتطلبات

  • جهاز iOS بمعمارية 64-بت يعمل بنظام iOS 10 حتى 11.3.1

حول هذا المشروع

  • هذا المشروع ليس أداة جيلبريك (jailbreak) ولن يساهم في واحدة لأن هذا سيعمل فقط في نطاق المستخدم (userland)
  • لا يمكن لهذا المشروع ولن يكتسب أبداً القدرة على الكتابة إلى نظام الملفات الجذر (rootfilesystem) لأنه مُثبّت للقراءة فقط كما يفرضه النواة (kernel).
  • لن يسمح هذا المشروع بسهولة بتنفيذ كود عشوائي على شكل مكتبات ديناميكية مثلما يفعل cydia substrate.
  • الهدف الرئيسي للمشروع هو تصعيد تطبيق حاوية معزول (sandboxed container app) إلى صلاحيات النظام.
  • يفرض AMFI أن جميع الملفات الثنائية موقّعة بشكل صحيح ولا يمكن لهذا المشروع تصحيح (patch) نظام AMFI.
  • يهدف المشروع إلى الحصول على إذن القراءة والكتابة على قسم بيانات المستخدم (/var/root, /var/mobile).
  • يهدف المشروع إلى الوصول إلى مخزن سلاسل المفاتيح المحمي (key chain) لأغراض استرجاع بيانات الاعتماد والأدلة الجنائية.
  • يهدف المشروع أيضاً إلى توفير وظائف خادم (server) لتشغيل الكود بصلاحيات الجذر (root) ونقل الملفات.
  • صُمم المشروع ليكون مساعدة للمطورين والباحثين في المساهمة.
  • سيسهّل المشروع على مطوري الجيلبريك وباحثي الأمن اكتشاف الثغرات في برامج تشغيل النواة (kernel drivers) التي لا يمكن الوصول إليها إلا من سياق متميز، أو ثغرات نطاق المستخدم باستخدام تقنيات التعتيم (fuzzing).
  • سيسهّل المشروع على مطوري تعديلات الجيلبريك (tweaks) البحث في ميزات iOS 11 الجديدة وتصحيح أخطاء تطوير التعديلات على جهاز حقيقي.
  • التركيز الرئيسي لهذا المشروع هو العمل على iOS 10 حتى 11.2.5 ولكن من الناحية النظرية يمكنه دعم 11.2.5 حتى 11.3 بما في ذلك عند تطوير استغلالات.

لقطة شاشة

كيفية استخدام التطبيق

  • لا يضيف التطبيق أي قيمة للمشروع ولكنه يعمل كواجهة بصرية لمن طلبها (الكثير من الأشخاص المتحمسين من المجتمع طلبوا ذلك)
  • سيقوم التطبيق بتفريغ معلومات من المكتبات والأطر (frameworks) بما في ذلك الذاكرة ومعلومات mach-o وعناوينها الأساسية وهي مفيدة لتطوير ROP.
  • قد يستغرق المنطق في التطبيق ما يصل إلى 15 دقيقة لإكماله بسبب كثرة التحليلات والطباعة، لن يكون هذا هو الحال في الإصدارات النهائية.
  • لن يضيف التطبيق أي قيمة لجهاز iPhone الخاص بك أو يغيّر سلوك البرنامج كما هو، بعض الخفيّات قد تتعطل لكن لا يحدث أي ضرر دائم للنظام.
  • يُنصح الباحثون بتشغيل هذا المشروع في Xcode بدلاً من ذلك

استكشاف الأخطاء وإصلاحها (ليس ضرورياً، لكن فقط في حال حدوث مشكلة)

  • احذف التطبيق
  • أوقف تشغيل البلوتوث
  • أعد التشغيل
  • شغّل البلوتوث
  • أوقف تشغيل البلوتوث

الميزات

  • وصول FTP (معزول حالياً، غير معزول في المستقبل)
  • إثبات مفهوم بصري
  • إثبات مفهوم من zerodium (أخيراً تحسّن قليلاً، يمكنه استدعاء دالة system())
  • إثبات مفهوم من Abraham، والذي يجب أن يكون قادراً على تشغيل كود عشوائي بصلاحيات الجذر، مثالي لـ ssh.
  • إثبات مفهوم من Sem Voigtlander (حرمان من خدمة تخصيص مساحة عنوان النواة، لوظيفة إعادة تشغيل الجهاز).

مخطط له

  • استغلال كامل يتضمن السيطرة الكاملة على مساحة العناوين للخفيّات الأخرى.
  • وصول shell عبر SSH عن بُعد (dropbear أو أحد مشتقاته).

أمور مستقبلية للتفكير فيها

  • حقن كود في SpringBoardd (مرحباً يا عشاق الجيلبريك)
  • launchd (غير ممكن لأننا لا نستطيع الحصول على جلسة له).

فرضية (مجرد تكهنات)

  • ابحث عن خفيّة تمتلك صلاحيات launchd / حقن الصلاحيات.
  • حقن كود يقوم بتحميل إطار BaseBoard
  • تسريب عناوين المكتبات في dyld_shared_cache.
  • ابحث عن أداة ropgadget في أي مكتبة في dyld_shared_cache.
  • استدعِ سلسلة ropchain عن طريق تعيين callback والبيانات الإضافية للـ callback.
  • استخدم المنطق الهندسي العكسي من BaseBoard لجعل launchd يشغّل amfid مع وسائط ومع تعطيل ASLR.
  • صحّح (patch) amfid
  • استخدم المنطق الهندسي العكسي من BaseBoard لجعل afcd يعمل مع وسائط لـ / ومع تعطيل ASLR. (مثل afc2).
  • استخدم المنطق الهندسي العكسي من BaseBoard لتشغيل unjaild، وهو خفيّة يمكن استخدامها كغلاف حول launchd وتتعامل مع صلاحيات المهام وحقن الكود
  • احصل على منفذ مهمة (taskport) فوق launchd مع تعطيل ASLR باستخدام منطق BaseBoard

لفحصه

  • تصحيحات AMFI (ليس سهلاً، لا يمكننا الحصول على جلسات فوق amfi، ولكن يمكننا التصعيد ربما باستخدام خفيّات أخرى).
  • حقن الصلاحيات (ليس ضرورياً تماماً، لدينا تحكم في عدد كبير جداً من الخفيّات بحيث لا نحتاج لهذا).
  • تصعيد إضافي باستخدام واجهات برمجة تطبيقات خاصة (هل يمكن لإطار BaseBoard.framework تشغيل عمليات مع تعطيل ASLR بصلاحيات النظام؟)؟؟؟
  • إحياء ونقل liblorgnette إلى iOS (تم)

تحميل ipa

https://github.com/MTJailed/UnjailMe/releases/tag/0.1

الاعتمادات

  • Abraham (@cheesecakeufo) لثغرة اليوم صفر في securityd
  • الثغرة وإثبات المفهوم الأولي: Rani Idan (Zimperium) <3
  • PureFTPd
  • مشروع liblorgnette (مع تحسيناتي الطفيفة)
  • NEWUI من @ringarang

تبرع أو ساهم

  • يمكن تقديم الكود المصدري إذا طُلب على تويتر عبر رسالة خاصة (@MTJailed)
  • يرجى التبرع، لدي القليل جداً من الوقت والوسائل للعمل على مثل هذه المشاريع! (http://paypal.me/devsupport)
  • قريباً سيكون الكود المصدري (باستثناء ftp) هنا على GitHub.
تنزيل الأداة