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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
dtrace-memaccess_cve-2020-27949 — استغلال إثبات المفهوم لـ CVE-2020-27949، يوضح قراءة/كتابة ذاكرة عشوائية في عمليات macOS عبر ioctl الخاص بـ DTrace fasttrap دون امتيازات مرتفعة. | Kitploit
أدوات/GitHubGitHub/seemoo-lab/dtrace-memaccess_cve-2020-27949
تصعيد الامتيازاتتحليل الذاكرة الجنائيتحليل الثغرات الأمنيةالاستغلالالفريق الأحمراستغلال الملفات الثنائية
GitHubseemoo-lab/dtrace-memaccess_cve-2020-27949

dtrace-memaccess_cve-2020-27949

استغلال إثبات المفهوم لـ CVE-2020-27949، يوضح قراءة/كتابة ذاكرة عشوائية في عمليات macOS عبر ioctl الخاص بـ DTrace fasttrap دون امتيازات مرتفعة.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
3391منذ 5 سنواتتمت المراجعة من قبل Kitploit

قراءة وكتابة ذاكرة العمليات الأخرى باستخدام fasttrap

يتمتّع جهاز /dev/fasttrap المستخدم لإنشاء عُقد التتبّع في عمليات مساحة المستخدم لمزوّدي pid وobjc بصلاحيات 666. وعلى النقيض من /dev/dtrace، الذي يتمتّع أيضًا بصلاحيات 666، يفتقر fasttrap إلى فحص الصلاحيات. وهذا يسمح لأي عملية بإصدار ioctl من نوع FASTTRAPIOC_MAKEPROBE أو FASTTRAPIOC_GETINSTR.
يمكن للمهاجم إنشاء probes في أي عملية أخرى لأي موقع ذاكرة باستخدام FASTTRAPIOC_MAKEPROBE. عند تفعيل هذه الـ probes، يتم استبدال القيم في موقع الذاكرة المحدّد بتعليمة trap (0xCC على x86) وتوضع القيمة الأصلية في ذاكرة ظلّية. يمكن استرجاع القيمة الأصلية عبر ioctl من نوع FASTTRAPIOC_GETINSTR. وهذا يتيح للمهاجم قراءة ذاكرة عشوائية من عملية أخرى عن طريق وضع عدة traps.

تُتتبَّع هذه الثغرة كـ CVE-2020-27949، تم إصلاحها في macOS Big Sur 11.1، والتحديث الأمني 2020-001 Catalina، والتحديث الأمني 2020-007 Mojave .

الجدول الزمني للإفصاح

  • 2020-07-07 -> إفصاح أولي إلى Apple Product Security.
  • 2020-07-08 <- تأكيد التحقيق.
  • 2020-10-28 -> طلب تحديث الحالة.
  • 2020-12-07 <- إشعار بالتحديث القادم الذي يعالج المشكلة.
  • 2020-12-14 <- تم إصدار التحديث.

المتطلبات

  • يستطيع المهاجم تنفيذ كود بصلاحيات مستخدم عادية (غير مرتفعة).
  • يجب أن تكون الـ probes في العملية الضحية مفعّلة (أي يجب تشغيل الضحية تحت DTrace).

تكوينات الأنظمة المختبرة

  • SIP مفعّل (بدون استثناءات)
  • 10.15.5 على iMac أواخر 2012
  • 10.15.5 على MacBook Pro 2020

التأثير

  • يستطيع المهاجم قراءة ذاكرة عمليات أخرى تُنفَّذ تحت DTrace دون صلاحيات مرتفعة. بل يمكن حتى قراءة ذاكرة عمليات تعمل بصلاحيات root.
  • يستطيع المهاجم كتابة قيمة تعليمة trap (0xCC على x86) إلى أي موقع ذاكرة في عمليات أخرى تُنفَّذ تحت DTrace دون صلاحيات مرتفعة. بل يمكن حتى كتابة ذاكرة إلى عمليات تعمل بصلاحيات root. وضمن تعليمات أخرى أو عناوين قفز، يمكن تغيير مسار تدفق التحكم في الضحية، مما يتيح تصعيد الصلاحيات.

التوقعات

كمستخدم، أتوقّع أن تفعيل DTrace يسمح فقط للعمليات ذات صلاحيات root بتتبّع أو قياس أو تعديل العمليات الأخرى. DTrace أداة قيّمة للمهام الإدارية وتوفّر أدوات مثل dtruss وiotop وغيرها.

تفاصيل الاستغلال

الضحية لدينا (target) هو ملف تنفيذي يعمل بصلاحيات root. المهاجم (memaccess) هو ملف تنفيذي يعمل بصلاحيات مستخدم عادية. يسجّل سكربت التتبع libc_monitor.d عدد استدعاءات الدوال في الكائن المشترك libsystem_c.dylib (هذا مجرد مثال بسيط على سكربت إداري قد يشغّله مالك الجهاز).

  1. يتم تنفيذ الضحية.
  2. ينشئ المهاجم probe بمعرّف PID الخاص بالضحية وموقع ذاكرة يهمّه.
  3. ينتظر المهاجم حتى يتتبّع DTrace عملية الضحية. قد يحدث هذا ضمن عملية إدارية يريد فيها مالك الجهاز تتبّع الدوال في عملية الضحية (مثل libc_monitor.d).
  4. عندما يبدأ DTrace في تتبّع الضحية، سيتم تفعيل الـ probes التي أُنشئت سابقًا، وبالتالي استبدال قيم الذاكرة الأصلية.
  5. يستخدم المهاجم FASTTRAPIOC_GETINSTR لقراءة قيم الذاكرة الخاصة بالـ probes المُنشأة.

الخطوة 4 تستبدل الذاكرة في عملية الضحية بقيمة تعليمة trap. واعتمادًا على التطبيق، يمكن للمهاجم استخدام هذا لكتابة قيمة معروفة مسبقًا إلى موقع ذاكرة حرج. على سبيل المثال، يمكن للمهاجم التحكم في بذرة مولّد أرقام عشوائية (RNG) أو استبدال مفاتيح التشفير في عملية ما.

ملاحظة: لا يحتاج المهاجم أبدًا إلى صلاحيات مرتفعة أو صلاحيات root. ملاحظة 2: لا يلزم وجود سكربتات DTrace مكتوبة ذاتيًا. على سبيل المثال، يستخدم dapptrace أيضًا مزوّد pid لتتبّع أي دالة.

الإصلاح المقترح

تنفيذ فحوصات صلاحيات في /dev/fasttrap كما في /dev/dtrace أو إزالة صلاحية الكتابة للجميع.

ملاحظة: لم نتحقق من الإصلاح المُصدر.

التعليمات

  1. تأكّد من أن DTrace متاح ويعمل بشكل صحيح.
  2. شغّل target واتبع التعليمات التي تظهر على الشاشة.
تنزيل الأداة