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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
GhostLock-for-OnePlus15T — (CVE-2026-43499)استغلال ثغرة في النواة لجهاز OnePlus 15T مع Bootloader غير مفتوح. | Kitploit
أدوات/GitHubGitHub/cuteaplane/ghostlock-for-oneplus15t
أمان أندرويدتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالأمن الجوالتطوير الحمولاتاستغلال الملفات الثنائية
GitHubcuteaplane/ghostlock-for-oneplus15t

الأكثر شعبية

عرض الكل →

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

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

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

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

GhostLock-for-OnePlus15T

(CVE-2026-43499)استغلال ثغرة في النواة لجهاز OnePlus 15T مع Bootloader غير مفتوح.

عرض المستودع
121منذ 27 أياملم تتم المراجعة بعد

GhostLock — OnePlus 15T

中文

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

لأغراض البحث الأمني والتعليم المصرّح بها فقط.

مُعدَّل من المستودع الأصلي GhostLock-for-OnePlus، ومُكيَّف لتخطيط الذاكرة الفعلية وتوقيت المعالج (CPU timing) لجهاز OnePlus 15T (PLZ110 / SM8850 / Snapdragon 8 Elite).


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

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

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

العنصرالتفاصيل
CVECVE-2026-43499
النوعFutex PI (توريث الأولوية) — Use-After-Free
النطاقنواة Linux من 2.6.39 حتى 7.1
أُصلح فيMainline 7.1 (commit 3bfdc63936dd)
حالة أندرويدGKI 6.12.x لا تزال عرضة للثغرة

السبب الجذري

يقوم استدعاء النظام (syscall) pselect6 بنسخ fd_set إلى مكدس النواة. عند دمجه مع آلية انتظار futex PI، يمكن إعادة تخصيص إطار مكدس مُحرَّر كبنية rt_mutex_waiter. أثناء اجتياز سلسلة PI، تقوم إعادة توازن شجرة rb (rb-tree) بكتابة بيانات مُتحكَّم بها إلى عناوين نواة عشوائية.

السلسلة

root@kitploit:~
futex PI UAF (CVE-2026-43499)
  ├─ Forge rt_mutex_waiter object
  ├─ Control kernel stack via pselect/select fd_set layout
  ├─ Trigger rt_mutex PI operation for arbitrary write
  ├─ Write 1: selinux_state.enforcing = 0
  └─ Write 2: cred → init_cred (uid=0, full capabilities)

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

الجهازالاسم الرمزيSoCالنواةالبرنامج الثابت (Firmware)الحالة
OnePlus 15TPLZ110SM8850 (Snapdragon 8 Elite)6.12.38-android16-5-g844001fb8721-ab14552068-4kColorOS 16.0.9.400✅ مُتحقَّق منه

بالنسبة إلى Ace 6T وOnePlus 15، راجع المستودع الأصلي.


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

ksud (مطلوب لـ KernelSU)

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

المصدرملاحظات
حزمة ReSukiSU APK (موصى بها)ثبّت ReSukiSU؛ الحزمة تشتمل على

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


البناء

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

  • Android NDK (r25+)
  • اضبط ANDROID_NDK_HOME أو ANDROID_NDK_ROOT

البناء

root@kitploit:~
# Default (API 35)
make

# Specify API level
make API=34

# Specify NDK path
NDK=/path/to/android-ndk make

المخرَج

ghostlock — ملف تنفيذي ARM64 ELF مرتبط ثابتًا (statically linked).


الاستخدام

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

root@kitploit:~
# 1. Enable ADB TCP mode
adb tcpip 5555

# 2. Push ADB key (required for bootstrap mode)
adb push ~/.android/adbkey /data/local/tmp/a/adbkey

# 3. Push the exploit
adb push ghostlock /data/local/tmp/a/e
adb shell chmod 755 /data/local/tmp/a/e

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


أوضاع التشغيل

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

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

وضع التمهيد (Bootstrap) (سياق التطبيق، seccomp مُقيَّد)

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

الكتابة 1 فقط

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

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

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

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

root@kitploit:~
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 }  /* sentinel */
};

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

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

2. تجاوز KASLR

وضع SLIDE — تسريب boot_id

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

root@kitploit:~
Read /proc/sys/kernel/random/boot_id
  └─ UUID contains nfulnl_logger address
      └─ KASLR slide = leaked_addr - image_offset
          └─ kaslr_base

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

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

3. رش كومة النواة (Kernel Heap Spray)

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

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

يتم التنفيذ عبر SKB (مخزن المقبس) + KernelSnitch:

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

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

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

root@kitploit:~
1. Locate pipe buffer in physmap
2. Forge pipe_buffer ops table pointing to known pipe_buf_ops
3. Hijack pipe_buffer.page to target physical address
4. Arbitrary physical read/write via normal pipe operations

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

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

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

root@kitploit:~
Target: selinux_state.enforcing (offset 0x00)
Method: child-node PI write → forge waiter __rb_parent_color
        pointing to selinux_enforcing - 8
        rb-tree rebalance writes 0x00

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

root@kitploit:~
Target: child process cred pointer
Method: 1. fork child → perf_find_task() locate task_struct
        2. calculate cred field offset
        3. child-node PI write → cred = init_cred (uid=0, full caps)
        4. clear seccomp (TIF_SECCOMP + seccomp struct zeroed)

يتم تنفيذ التحقق من الصلاحيات بقراءتها مرة أخرى بعد الكتابة فوق cred.

6. عميل Mini ADB المدمج

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

root@kitploit:~
1. TCP connect 127.0.0.1:5555
2. A_CNXN → connection request
3. A_AUTH → RSA token challenge
4. dlopen("libcrypto.so") → PEM_read_bio_RSAPrivateKey → RSA_sign
5. A_AUTH (AUTH_SIGNATURE) → signed response
6. A_CNXN → connection established
7. A_OPEN "shell:/data/local/tmp/a/e" → full exploit

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


بنية الملفات

root@kitploit:~
ghostlock-oneplus/
├── Makefile                        # Build configuration (NDK cross-compile)
├── README.md                       # Documentation
├── src/
│   ├── core/                       # Core exploit code
│   │   ├── main.c                  # Entry point: two-stage write + root shell
│   │   ├── fops.c                  # FOPS/CFI mode: pselect route, PI write, KASLR leak
│   │   ├── util.c                  # Utilities: heap spray, KASLR, kernel R/W primitives
│   │   ├── slide.c                 # SLIDE mode: boot_id KASLR leak + pselect route
│   │   ├── pipe.c                  # Pipe buffer physical memory R/W (physrw)
│   │   ├── root.c                  # Cred overwrite, seccomp clear, root child mgmt
│   │   ├── miniadb.c              # Built-in ADB client (TCP + RSA auth)
│   │   ├── common.h               # Global macros, structs, declarations, constants
│   │   ├── target.h               # Target memory layout / struct offsets / KASLR params
│   │   ├── offset.h               # Compile-time target config bridge (#include TARGET_CONFIG_H)
│   │   └── kernelsnitch/          # KernelSnitch — mm_struct address leak
│   │       ├── kernelsnitch.h     # Core algorithm: futex hash collision + brute-force
│   │       ├── futex_hash.h       # Futex hash function
│   │       ├── timeutils.h        # CPU timestamp measurement (RDTSC)
│   │       └── utils.h            # Helper macros (pr_info / SYSCHK / ASSERT etc.)
│   └── devices/                   # Device offset tables
│       ├── offsets.h              # Aggregate all device offsets (lookup table + sentinel)
│       ├── ace6t/offsets.h        # OnePlus Ace 6T offsets (2 kernel versions)
│       └── op15/offsets.h         # OnePlus 15 offsets (1 kernel version)
└── tools/                         # Offset extraction toolchain
    ├── extract_target.py          # Extract kallsyms global symbol offsets (28 items)
    └── extract_btf.py             # Extract BTF struct field offsets (57 items)

نظرة عامة على الوحدات الأساسية


إضافة أجهزة جديدة

تم تعديل هذا المستودع؛ راجع المستودع الأصلي للحصول على التفاصيل.


الأسئلة الشائعة

س: لا يوجد أي مخرجات عند التشغيل؟

تأكد من أنك تعمل داخل شل ADB. سياق التطبيق يتطلب --bootstrap.

س: ظهور "no offsets for this kernel"؟

إصدار نواتك غير مدعوم بعد. اتبع إضافة أجهزة جديدة لاستخراج الإزاحات وإعادة البناء.

س: تستمر الكتابة 1 في الفشل؟

  • تأكد من تثبيت التشغيل على نواة المعالج الصحيحة (ماكرو CORE)
  • اضبط توقيت PSELECT_ENTER_DELAY_USEC
  • تحقق من وجود عمليات متعارضة

س: يُرجع perf القيمة 0 في الكتابة 2؟

  • تحقق مما إذا كان seccomp يحظر perf_event_open (استخدم --bootstrap في سياق التطبيق)
  • تحقق من نجاح تجاوز KASLR (kaslr_base صالح)

س: KernelSU لا يتم تحميله؟

  • تأكد من وجود ksud وأنه قابل للتنفيذ
  • تحقق من سلامة ملف سياسة الشبكة (إصلاح load_policy)

الترخيص

لأغراض البحث الأمني والتعليم المصرّح بها فقط.

تنزيل الأداة
libksud.so
إصدار CIنزّله من إصدارات ReSukiSU CI (ksud-aarch64-linux-android.zip)
النوعالعددالاستخراج
رموز kallsyms العامة28tools/extract_target.py
حقول بنى BTF57tools/extract_btf.py
قيم مشتقة9تُحسب تلقائيًا
ثوابت ثابتة12مُرمَّزة (Hardcoded)
البنيةالحقولالغرض
task_struct17واصف العملية، cred، seccomp
rt_mutex_waiter6هدف التزييف في UAF
cred4بيانات الاعتماد، الصلاحيات (capabilities)
seccomp3حالة فلتر seccomp
pipe_inode_info11عمليات مخزن الأنبوب (pipe buffer)
file_operations13جدول fops مزيف
mm_struct1مالك واصف الذاكرة
الوحدةالملف(ات)المسؤولية
نقطة الدخولmain.cتحليل سطر الأوامر (CLI)، توزيع W1/W2، تدفق التمهيد (bootstrap)
مسار PIfops.c / slide.cتخطيط مكدس pselect/select، التلاعب بسلسلة futex PI
KASLRutil.c / fops.c / slide.cتجاوز ثنائي الوضع: تسريب boot_id + تسريب جدول fops
رش الكومةutil.cتخصيص صفحات من الرتبة الثالثة، رش SKB، تخطيط الكائنات المزيفة
القراءة/الكتابة الفعليةpipe.cاختطاف مخزن الأنبوب، وصول عشوائي للذاكرة الفعلية
تصعيد الصلاحياتroot.cالكتابة فوق cred، التحقق من الصلاحيات، مسح seccomp
ADBminiadb.cعميل بروتوكول ADB خفيف الوزن، مصادقة RSA
محرك التسريبkernelsnitch/اصطدام تجزئة futex لتحديد موقع mm_struct