Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
GhostLock-for-OnePlus — (CVE-2026-43499)استغلال النواة لأجهزة OnePlus ذات محمل الإقلاع المقفل. | Kitploit
أدوات/GitHubGitHub/p2p3p/ghostlock-for-oneplus
أمان أندرويدتصعيد الامتيازاتالاستغلالما بعد الاستغلالالتعلم والتعليمتطوير الحمولاتاستغلال الملفات الثنائية
GitHubp2p3p/ghostlock-for-oneplus

GhostLock-for-OnePlus

(CVE-2026-43499)استغلال النواة لأجهزة OnePlus ذات محمل الإقلاع المقفل.

عرض المستودع
361350منذ 2 أشهرتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

GhostLock — ون بلس

中文

استغلال النواة يستهدف أجهزة OnePlus ذات مُحمل الإقلاع المقفل. يستخدم CVE-2026-43499 للحصول على صلاحيات الجذر دون فتح مُحمل الإقلاع أو تعديل boot.img.

لأغراض البحث الأمني المُعتمد والتعليم فقط.


جدول المحتويات

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

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

العنصرالتفاصيل
CVECVE-2026-43499
النوعاستخدام بعد التحرير (Use-After-Free) في Futex PI (Priority Inheritance)
النطاقنواة لينكس من 2.6.39 إلى 7.1
تم الإصلاح فيالنسخة الرئيسية 7.1 (الالتزام 3bfdc63936dd)
حالة أندرويدGKI 6.12.x لا تزال ضعيفة

السبب الجذري

يقوم استدعاء النظام pselect6 بنسخ fd_set إلى مكدس النواة. عندما يُدمج مع آلية انتظار Futex PI، يمكن إعادة تخصيص إطار مكدس تم تحريره كبنية rt_mutex_waiter. أثناء اجتياز سلسلة PI، تؤدي إعادة توازن شجرة rb إلى كتابة بيانات مُتحكم بها في عناوين نواة عشوائية.

السلسلة

Futex PI UAF (CVE-2026-43499)
  ├─ تزوير كائن rt_mutex_waiter
  ├─ التحكم في مكدس النواة عبر تخطيط fd_set الخاص بـ pselect/select
  ├─ تشغيل عملية PI الخاصة بـ rt_mutex لكتابة عشوائية
  ├─ الكتابة 1: selinux_state.enforcing = 0
  └─ الكتابة 2: cred → init_cred (uid=0، صلاحيات كاملة)

الأجهزة المدعومة

الجهازالاسم الرمزيSoCالنواةالبرنامج الثابتالحالة
OnePlus Ace 6TPLR110SM8845 (Snapdragon 8s Elite)6.12.38-android16-5-...-ab14275539-4kColorOS 16.0.2.403✅ تم التحقق
OnePlus Ace 6TPLR110SM8845 (Snapdragon 8s Elite)6.12.38-android16-5-...-ab14552068-4kColorOS 16.0.8.301✅ تم التحقق
OnePlus 15PLK110SM8845 (Snapdragon 8s Elite)6.12.23-android16-5-...-ab14541642-4k—✅ تم التحقق

يمكن تكييف أجهزة OnePlus الأخرى التي تستخدم نفس عائلة SoC، أو أندرويد 16، أو نواة 6.12.x عبر استخراج الإزاحات من boot.img.


المتطلبات الأساسية

ksud (مطلوب لـ KernelSU)

يتولى GhostLock رفع الصلاحيات. يتطلب تثبيت KernelSU وجود ksud (مُرفق مع kernelsu.ko الخاص بـ KMI):

المصدرملاحظات
ReSukiSU APK (موصى به)قم بتثبيت ReSukiSU؛ يحتوي APK على libksud.so
إصدار CIقم بالتنزيل من ReSukiSU CI (ksud-aarch64-linux-android.zip)

بدون ksud، سيظل الاستغلال يمنح صلاحية الجذر (uid=0)، لكن KernelSU لن يُثبت ولن يستمر وجود su.


البناء

المتطلبات الأساسية

  • Android NDK (r25+)
  • تعيين ANDROID_NDK_HOME أو ANDROID_NDK_ROOT

البناء

# الافتراضي (API 35)
make

# تحديد مستوى API
make API=34

# تحديد مسار NDK
NDK=/path/to/android-ndk make

المخرجات

ghostlock — ملف تنفيذي ARM64 ELF مرتبط بشكل ثابت.


الاستخدام

الإعداد لمرة واحدة

# 1. تمكين وضع ADB TCP
adb tcpip 5555

# 2. دفع مفتاح ADB (مطلوب لوضع التمهيد)
adb push ~/.android/adbkey /data/local/tmp/a/adbkey

# 3. دفع ملف الاستغلال
adb push ghostlock /data/local/tmp/a/e
adb shell chmod 755 /data/local/tmp/a/e

بعد النجاح الأول، يقوم resetprop تلقائيًا بتعيين persist.adb.tcp.port=5555، مما يسمح بتشغيل تلقائي كامل في عمليات إعادة التشغيل اللاحقة.


أنماط التشغيل

الاستغلال الكامل (سياق ADB shell)

/data/local/tmp/a/e
  • متاح perf، تسريب دقيق لـ task_struct للعملية الفرعية
  • مرحلتان: W1 تعطيل SELinux → W2 رفع الصلاحيات → تحميل KernelSU

وضع التمهيد (سياق التطبيق، مقيد بـ seccomp)

/data/local/tmp/a/e --bootstrap
  1. الكتابة 1 → تعطيل SELinux
  2. استخدام الصلاحيات المحررة لتعيين setprop لتمكين ADB TCP 5555
  3. عميل ADB مصغر مدمج يتصل بـ 127.0.0.1:5555
  4. مصادقة RSA بالمفتاح المُدفوع مسبقًا
  5. تنفيذ الاستغلال الكامل عبر ADB shell (بدون seccomp)

الكتابة 1 فقط

/data/local/tmp/a/e --write1
  • حتى 20 محاولة
  • مفيد لتصحيح الأخطاء أو تعطيل SELinux المؤقت

التفاصيل التقنية

1. مطابقة نواة وقت التشغيل

الإزاحات مخزنة في جدول بحث src/devices/offsets.h، مُفهرسة بـ uname -r. يقوم البرنامج بالمطابقة تلقائيًا عند البدء؛ يتم رفض النوى غير المعروفة.

static const struct kernel_offsets known_offsets[] = {
  OFFSETS_ENTRY("6.12.38-android16-5-...-ab14275539-4k", ...),
  OFFSETS_ENTRY("6.12.38-android16-5-...-ab14552068-4k", ...),
  OFFSETS_ENTRY("6.12.23-android16-5-...-ab14541642-4k", ...),
  { .uname_r = NULL }  /* حارس */
};

مصادر الإزاحات

النوعالعددالاستخراج
رموز kallsyms العامة28tools/extract_target.py
حقول بنى BTF57tools/extract_btf.py
قيم مشتقة9محسوبة تلقائيًا
ثوابت ثابتة12مشفرة صلبًا

البنى المُتحقق منها عبر BTF

البنيةالحقولالغرض
task_struct17واصف العملية، cred، seccomp
rt_mutex_waiter6هدف تزوير UAF
cred4بيانات الاعتماد، الصلاحيات
seccomp3حالة مرشح seccomp
pipe_inode_info11عمليات الـ pipe buffer
file_operations13جدول fops مزيف
mm_struct1مالك واصف الذاكرة

2. تجاوز KASLR

وضع SLIDE — تسريب boot_id

عندما تكون مؤشرات النواة مقيدة (kptr_restrict)، يتم تسريب العنوان الأساسي عبر boot_id المكتوب بعنوان نواة:

قراءة /proc/sys/kernel/random/boot_id
  └─ UUID يحتوي على عنوان nfulnl_logger
      └─ انزلاق KASLR = العنوان المسرب - إزاحة الصورة
          └─ kaslr_base

وضع FOPS/CFI — تسريب جدول fops

عندما يكون جهاز ashmem قابلاً للوصول، استخدم بدائيات القراءة/الكتابة الخاصة بـ configfs لقراءة مؤشرات الدوال من جدول fops الخاص بـ ashmem وحساب إزاحة KASLR.

3. رش الكومة في النواة

تزوير كائنات النواة على صفحات من الدرجة الثالثة (32 كيلوبايت):

  • file_operations مزيف — اختطاف مؤشر fops لجهاز miscdevice الخاص بـ ashmem
  • rt_mutex_waiter مزيف — محاكاة عقدة منتظِمة في سلسلة PI
  • task_struct مزيف — مرجع مهمة أثناء اجتياز PI
  • rt_mutex (قفل) مزيف — معلومات صحيحة عن المنتظِم والمالك

تم التنفيذ عبر SKB (socket buffer) + KernelSnitch:

  • KernelSnitch — تصادم تجزئة futex لتسريب عناوين mm_struct
  • رش SKB — sendmsg لملء كومة النواة

4. قراءة/كتابة الذاكرة الفعلية (Pipe)

بعد الحصول على أساس KASLR، استخدم مخازن pipe للوصول إلى الذاكرة الفعلية:

1. تحديد موقع مخزن pipe في physmap
2. تزوير جدول عمليات pipe_buffer مشيرًا إلى pipe_buf_ops معروف
3. اختطاف pipe_buffer.page للوصول إلى العنوان الفعلي المستهدف
4. قراءة/كتابة فيزيائية عشوائية عبر عمليات pipe العادية

المدعوم: pipe_read64, pipe_write64, pipe_phys_read_data, pipe_phys_write_data

5. الكتابة على مرحلتين

الكتابة 1 — تعطيل SELinux

الهدف: selinux_state.enforcing (إزاحة 0x00)
الطريقة: كتابة PI عبر العقدة الفرعية → تزوير __rb_parent_color
        مشيرًا إلى selinux_enforcing - 8
        إعادة توازن شجرة rb يكتب 0x00

الكتابة 2 — رفع الصلاحية إلى الجذر

الهدف: مؤشر cred للعملية الفرعية
الطريقة: 1. fork طفل → perf_find_task() لتحديد موقع task_struct
        2. حساب إزاحة حقل cred
        3. كتابة PI عبر العقدة الفرعية → cred = init_cred (uid=0، صلاحيات كاملة)
        4. مسح seccomp (TIF_SECCOMP + بنية seccomp مصفرة)

يتم التحقق من القراءة الخلفية للصلاحيات بعد استبدال cred.

6. عميل ADB مصغر مدمج

src/core/miniadb.c — عميل بروتوكول ADB خفيف الوزن لوضع التمهيد:

1. اتصال TCP بـ 127.0.0.1:5555
2. A_CNXN → طلب اتصال
3. A_AUTH → تحدي رمز RSA
4. dlopen("libcrypto.so") → PEM_read_bio_RSAPrivateKey → RSA_sign
5. A_AUTH (AUTH_SIGNATURE) → استجابة موقعة
6. A_CNXN → إنشاء الاتصال
7. A_OPEN "shell:/data/local/tmp/a/e" → استغلال كامل

يدعم خوارزميات التوقيع SHA-1 و SHA-256.


هيكل الملفات

تنزيل الأداة