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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
rtx-cve-2023-45779 — كود إثبات المفهوم لثغرة إعادة استخدام مفتاح APEX في أندرويد | Kitploit
أدوات/GitHubGitHub/metaredteam/rtx-cve-2023-45779
أمان أندرويدتحليل الثغرات الأمنيةالاستغلالتحليل الملفات الثنائيةأمن سلسلة التوريدتطوير الحمولات
GitHubmetaredteam/rtx-cve-2023-45779

rtx-cve-2023-45779

كود إثبات المفهوم لثغرة إعادة استخدام مفتاح APEX في أندرويد

عرض المستودع
1098منذ 2 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

يتم توفير هذا المستودع كما هو لمرافقة إفصاح عن ثغرة أمنية من Meta Red Team X. إنه ليس مشروعًا رسميًا من Meta ولن يتم دعمه كمشروع رسمي.

مجموعة من البرامج النصية والقطع الأثرية التي توضح اكتشاف واستغلال أجهزة Android التي تشحن APEXes موقعة بمفاتيح اختبار من AOSP. راجع منشور مدونتنا "علامات مفقودة: كيف نسيت عدة علامات تجارية تأمين قطعة رئيسية من Android" للحصول على التفاصيل الكاملة للمشكلة.

الملفات

  • apex-checker/: مجموعة من البرامج النصية Bash لحفظ ملخصات مفاتيح الاختبار المعروفة وفحص APEXes بشكل جماعي بحثًا عن توقيعات من تلك المفاتيح.
  • apex-forger/: أغلفة خفيفة حول أدوات apexer و deapexer من AOSP التي تسهل فك وتعديل وإعادة تعبئة APEX. مثل apktool لـ APEXes.
  • vndk-libt/: كود مصدر لمكتبة أضفناها إلى APEX ضعيف لإثبات قدرتنا على تنفيذ الأوامر. كل ما تفعله هو طباعة سطر الأوامر لكل عملية تقوم بتحميلها إلى logcat.

تشغيل الاستغلال

  1. استنسخ شجرة مصدر AOSP حديثة (حوالي Android 13)، envsetup+lunch، وقم بتشغيل m apexer deapexer apksigner لبناء الأدوات المطلوبة.
  2. قم بتحديث envsetup.sh (الموجود هنا، وليس الموجود في AOSP) لتوجيه $AOSP و $ANDROID_HOST_OUT إلى الأماكن المناسبة.
  3. احصل على أي جهاز Android. قم بتحديثه وتفعيل ADB.
  4. قم بتشغيل adb shell getprop ro.build.version.sdk و adb shell getprop ro.vndk.version.
  5. إذا تطابقا، adb pull /system/apex/com.android.vndk.current.apex vndk.apex. إذا لم يتطابقا، adb pull /system_ext/apex/com.android.vndk.v<NN>.apex vndk.apex، حيث <NN> هو ro.vndk.version.
  6. تحقق مما إذا كان APEX ضعيفًا باستخدام apex-checker/check.sh vndk.apex. إذا كان الإخراج لا يبدأ بـ "OI" (مما يشير إلى أن كلا التوقيعين الخارجي والداخلي من مفاتيح اختبار)، فلا يمكن استخدام هذا الإثبات (على الرغم من أن ذلك لا يضمن أن الجهاز آمن، حيث قد تظل APEXes أخرى ضعيفة).

مفاتيح الاختبار المعروفة لـ apex-checker

تتوافق التجزئات في apex-checker/apk-keys.txt و apex-checker/avb-keys.txt مع مفاتيح الاختبار الخارجية والداخلية لـ APEXes التالية. لاحظ أن هناك أيضًا متغيرات -goog من هاتين القائمتين، والتي تم إنشاؤها بواسطة Google بعد تقريرنا الأولي. تلك القوائم بشكل عام أكثر اكتمالاً، لكننا لا نعرف بالضبط المفاتيح التي تحتويها.

  • com.android.appsearch
  • com.android.art
  • com.android.btservices
  • com.android.i18n
  • com.android.mediaprovider
  • com.android.ondevicepersonalization
  • com.android.permission
  • com.android.rkpd
  • com.android.runtime
  • com.android.uwb
  • com.android.virt
  • com.android.vndk.v28
  • com.android.vndk.v29
  • com.android.vndk.v30
  • com.android.vndk.v31
  • com.android.vndk.v32
  • com.android.vndk.v33
  • com.android.wifi
تنزيل الأداة
  • قم بفك APEX باستخدام apex-forger/unpack.sh vndk.apex vndk.
  • حاول تصحيح libutils.so في APEX المستخرج لتحميل libt.so المحقون: git apply --directory=vndk vndk-libt/libutils-v31.patch. إذا لم ينجح ذلك (مثل إصدار VNDK مختلف)، استخدم محرر سداسي عشري لتغيير libc.so يدويًا إلى libt.so في DT_NEEDED المناسب لـ vndk/payload/lib64/libutils.so.
  • قم ببناء libt.so بتشغيل ndk-build داخل vndk-libt/. انسخ vndk-libt/libs/arm64-v8a/libt.so إلى vndk/payload/lib64/libt.so.
  • استخرج canned_fs_config من apex_build_info.bp. لا توجد أداة للقيام بذلك بسهولة: الأقرب هو protoc --decode_raw <vndk/apex_build_info.bp متبوعًا بفك ترميز الحقل رقم 3 يدويًا. ضع canned_fs_config في vndk/.
  • أضف سطرًا إلى canned_fs_config، مثل جميع الأسطر الأخرى، لـ /lib64/libt.so.
  • قم بتنزيل مفاتيح الاختبار لإصدار VNDK المناسب من هنا.
  • أعد تعبئة APEX باستخدام apex-forger/repack.sh vndk com.android.vndk.v<NN>.{pem,pubkey,pk8,x509.pem}.
  • قم بتشغيل adb install vndk/forged.apex.
  • قم بتشغيل adb reboot && adb logcat -s RTXPoC:D.
  • لاحظ العديد من رسائل السجل RTXPoC، كل منها من عملية يمكننا تنفيذ أوامر فيها.