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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ServiceCheater — إثبات المفهوم لـ CVE-2020-0113 و CVE-2020-0108 | Kitploit
أدوات/GitHubGitHub/xdo0/servicecheater
أمان أندرويدتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالأمن الجوالاستغلال الملفات الثنائية
GitHubxdo0/servicecheater

ServiceCheater

إثبات المفهوم لـ CVE-2020-0113 و CVE-2020-0108

عرض المستودع
23منذ 5 سنواتلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

ServiceCheater

إثبات المفهوم (PoC) لـ CVE-2020-0113 & CVE-2020-0108

تحليل ثغرة رفع الصلاحيات في خدمة الواجهة الأمامية في Android

خلفية الثغرة

في تصحيح AOSP الصادر في 2020-08، تم الكشف عن ثغرة في AMS بطبقة إطار العمل، برقم CVE-2020-0108 وتقييم عالٍ، وثغرة أخرى برقم CVE-2020-0313 وتقييم متوسط. وهي ثغرة منطقية في معالجة AMS للخدمات الأمامية؛ إذ يمكن للمهاجم الذي نجح في استغلالها تجاوز عرض إشعار الخدمة الأمامية ومواصلة التشغيل في الخلفية. يتطلب الهجوم أن يُطلق من تطبيق محلي ضار، دون أي تفاعل من المستخدم. وإذا منح المستخدم التطبيق أذونات أخرى، فقد يتسبب ذلك في أضرار أكبر، مثل التتبع المستمر للموقع أو التسجيل الصوتي الصامت، وما إلى ذلك.

خدمة الواجهة الأمامية مفهوم قدمته Google في Android 8.0. ونظرًا لأن Android 8.0 لا يسمح للتطبيقات في الخلفية بتشغيل الخدمات الخلفية، تم تصميم مفهوم خدمة الواجهة الأمامية. تتميز خدمة الواجهة الأمامية بأولوية أعلى ويمكنها العمل في الخلفية لفترات طويلة، إلا أنه يجب ربطها بإشعار خلال 5 ثوانٍ من بدء التشغيل، وإلا سيتم إنهاؤها. في الواقع، لا تزال خدمة الواجهة الأمامية تعمل في "الخلفية"، ولكن نظرًا لربطها بإشعار مرئي للمستخدم، أطلقت عليها Google اسم "خدمة الواجهة الأمامية".

تفاصيل الثغرة والاستغلال

  • CVE-2020-0113

في طريقة onNotificationError ضمن NotificationManagerService، لم يتم التعامل بشكل صحيح مع الحالات الاستثنائية الناتجة عن عرض الإشعارات. ونظرًا لأن هذه الطريقة تكتفي باستدعاء cancelNotification لإلغاء الإشعار دون إنهاء الخدمة أو إنهاء التطبيق بالكامل، تستمر خدمة الواجهة الأمامية في العمل دون عرض إشعار.

root@kitploit:~
cancelNotification(callingUid, callingPid, pkg, tag, id, 0, 0, false, userId,REASON_ERROR, null);}
  • MalServiceA

عند إنشاء كائن RemoteViews، تم تحديد Layout ID بالقيمة -1، وهي قيمة غير صالحة بشكل واضح، وبهذا يمكن تشغيل استدعاء onNotificationError.

root@kitploit:~
RemoteViews remoteViews = new RemoteViews(getPackageName(), -1);
  • CVE-2020-0108

في طريقة postNotification في ServiceRecord.java، لا يتم التعامل مع الأخطاء الناتجة عن عرض الإشعارات بشكل صحيح، بل يتم إلقاء الاستثناء إلى برنامج المستخدم.

root@kitploit:~
ams.crashApplication(appUid, appPid, localPackageName, -1,
                        "Bad notification for startForeground: " + e);
  • MalServiceB

تم استخدام معرّف قناة (Channel ID) غير صالح مباشرةً لبناء الإشعار

root@kitploit:~
Notification notification = new NotificationCompat.Builder(this, "InvalidInvalidInvalid")

بالإضافة إلى ذلك، تحتاج كلتا الخدمتين إلى التقاط استثناءات الخيط الرئيسي حتى لا ينهار التطبيق.

التحقق من الثغرة

  • البيئة

محاكي Genymotion، Android 8.0، تصحيح بتاريخ 5 سبتمبر 2017

  • التسجيل الصوتي في الخلفية

استخدام MediaRecord لتسجيل الصوت لمدة 10 ثوانٍ

  • تحديث الموقع الجغرافي

يتم الحصول عليه باستخدام LocationManager

  • المقارنة

تعرض خدمة الواجهة الأمامية العادية (NormalService) إشعارًا دائمًا في شريط الإشعارات، بينما لا يعرض Poc هذا الإشعار.

تصحيح الثغرة

في استدعاء onNotificationError، يتم إجبار التطبيق على الانهيار، كما يتم إجباره على الانهيار أيضًا في معالجة الاستثناءات لطريقة postNotification.

المراجع

[1] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0108

[2] https://github.com/wrlu/vulnerabilities/tree/master/CVE-2020-0108

[3] https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-0313

تنزيل الأداة