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

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

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

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

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

Категории

Все категории
Loading categories
Инструменты/GitHubGitHub/kpgc10kai/timerroot
Безопасность AndroidПовышение привилегийМеханизмы персистентностиЭксплуатацияПост-эксплуатацияТестирование на ПроникновениеМобильная безопасностьРазработка Полезной Нагрузки
GitHubkpgc10kai/timerroot

TimerRoot

Android-фронтенд для CVE-2026-98260: root-оболочка + поздняя загрузка KernelSU через Shizuku

Репозиторий
401711 день назадПроверено Kitploit

Популярное

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

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

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

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

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

TimerRoot

Android-фронтенд для CVE-2026-98260 (use-after-free в POSIX CPU timer) — того же класса ошибок, что и CVE-2026-64560. Одно нажатие даёт вам root-оболочку, а затем поздно подгружает KernelSU (u:r:ksu:s0).

Сам эксплойт здесь не включён. Этот репозиторий — оболочка приложения вокруг него: UI, определение состояния и инфраструктура Shizuku, необходимая для запуска эксплойта из shell-домена из обычного приложения.

Зачем приложению нужен Shizuku

Приложение работает как untrusted_app и не может читать /sys/kernel/tracing, что необходимо эксплойту для утечки и триггера. Поэтому TimerRoot запускает пользовательский сервис Shizuku, который Shizuku выполняет от имени пользователя shell (uid 2000, u:r:shell:s0). Бинарник эксплойта исполняется внутри этого процесса, поэтому получает то же окружение, что и при запуске из adb shell.

MainActivity (untrusted_app)
  └─ Shizuku user service (uid 2000, u:r:shell:s0)
       ├─ extracts assets/timer to /data/local/tmp/timer
       └─ runs it; on success keeps /system/bin/sh alive

Требования

  • Android 12+ (minSdk 30), arm64
  • Запущенный Shizuku (запустите его из приложения Shizuku через беспроводную отладку или через ADB)
  • Установленный менеджер KernelSU для пути Load KernelSU
  • Сборка ядра, на которую был портирован эксплойт. Исходный бинарник нацелен на 6.12.69-android16-6-g242e1a07f878-ab15865446-4k; см. ниже.

Получение бинарника эксплойта

TimerRoot ожидает скомпилированный эксплойт по пути app/src/main/assets/timer:

git clone https://github.com/YuKongA/CVE-2026-98260
cp CVE-2026-98260/timer/timer app/src/main/assets/timer

или

scripts/fetch-timer.ps1

Бинарный файл распространяется по лицензии MIT от его авторов; используйте его только на оборудовании, которым вы владеете, и только если ваше ядро соответствует сборке, под которую он был портирован.

Сборка

Android Studio / Gradle

Откройте проект и выполните сборку, или:

./gradlew assembleDebug

Для проекта требуется Android SDK с платформой 36 и build-tools 36. Shizuku API подтягивается из Maven (dev.rikka.shizuku:api).

Без Gradle

scripts/build.ps1 собирает и подписывает APK, используя только SDK, javac, d8, aapt2 и apksigner. Он ничего не вендорит: он компилирует приложение вместе с исходниками Shizuku API, поэтому сначала склонируйте их:

git clone https://github.com/RikkaApps/Shizuku-API
scripts/build.ps1 -Sdk "C:\Users\<you>\AppData\Local\Android\Sdk"

Использование

1. Запуск Shizuku

Shizuku должен быть запущен до того, как TimerRoot сможет что-либо сделать: это процесс, который предоставляет пользователя shell, необходимого для эксплойта. Shizuku останавливается при каждой перезагрузке, поэтому это первый шаг каждый раз.

Отладка по Wi-Fi (без ПК после первой сопряжения)

  1. Включите параметры разработчика: Настройки -> О телефоне -> нажмите Номер сборки 7 раз.
  2. Настройки -> Система -> Параметры разработчика -> Отладка по Wi-Fi -> вкл.
  3. Откройте приложение Shizuku -> Запустить -> Запуск через отладку по Wi-Fi.
  4. Разрешите уведомление, затем в Сопряжение устройства с помощью кода сопряжения введите 6-значный код, отображаемый на телефоне.
  5. Shizuku сообщает "Shizuku is running" (в уведомлении указано, что сервер запущен).

Через USB

При подключённом телефоне и авторизованной отладке по USB:

adb shell sh /sdcard/Android/data/moe.shizuku.privileged.api/start.sh

Более новые версии Shizuku могут больше не содержать этот скрипт; если его нет, используйте описанный выше способ с беспроводной отладкой.

Проверьте, что сервер запущен:

adb shell ps -A | grep shizuku_server
# shell  12345  1  ...  shizuku_server

ps, показывающий только moe.shizuku.privileged.api, означает, что приложение-менеджер открыто, но сервер не запущен; эксплойт не может начать работу, пока он не запущен.

2. Первый запуск

  1. Откройте TimerRoot.
  2. Когда Shizuku спросит Allow TimerRoot to access Shizuku?, выберите Allow all the time.
  3. Карточка переключается в состояние Ready (Shizuku подключён, root пока нет). Если по-прежнему отображается Not connected, нажмите Shizuku в строке инструментов, чтобы запросить снова.

3. Подготовка

Prepare извлекает assets/timer в /data/local/tmp/timer:

installed 307192 bytes

4. Получение root-оболочки

Одно нажатие. Приложение повышает привилегии, удерживает оболочку с uid=0 внутри сервиса, а затем автоматически запускает позднюю загрузку KernelSU:

[child] woke uid=0
root shell ready - loading KernelSU...
Loading KernelSU... 12s
KSU_LOADED

Карточка переходит в Root shell -> Jailbreak mode (u:r:ksu:s0). Если этап KernelSU проигрывает гонку, карточка становится красной с надписью KernelSU failed, и перед повторной попыткой следует перезагрузиться.

5. Перезагрузка

Используйте кнопку Reboot. Она работает через сервис (svc power reboot), поэтому работает даже когда root-оболочка ещё не открыта. Перезагрузка также является единственным чистым способом удалить припаркованные процессы и выгрузить KernelSU.

После перезагрузки начните снова с шага 1: Shizuku остановлен, а KernelSU выгружен.

Карточка статуса отражает то, что реально активно, определяемое запуском su -c id и проверкой на u:r:ksu:s0:

карточказначение
Not connectedShizuku не запущен / не привязан
ReadyShizuku подключён, root пока нет
Root shelluid=0, u:r:shell:s0
Jailbreak modeKernelSU загружен, su работает в u:r:ksu:s0

Устранение неполадок

KernelSU failed и base calibration failed в логе

Этапу подделки учётных данных нужна база линейного отображения ядра, которую эксплойт выводит из событий трассировки page-alloc. Он предполагает страницы размером 4 КБ:

[base] made=512 best=0 count=0
[-] base calibration failed

Проверьте размер страницы устройства:

adb shell getconf PAGE_SIZE
  • 4096: раскладка отличается по другой причине; соберите uname -r, модель и полный лог и сообщите об этом в upstream.
  • 16384: эксплойт не может работать на этом устройстве в его текущем виде. Его нужно пересобрать под 16-КБ страницы (сдвиги страниц, маски и размеры порядков), что является задачей портирования, а не настройкой приложения.

Root-оболочка всё ещё может сработать на таком устройстве, поскольку этому пути нужен только утёкший адрес учётных данных, а не база линейного отображения.

Карточка остаётся в состоянии Not connected

Shizuku не запущен. Запустите его снова (он останавливается при каждой перезагрузке) и см. шаг 1.

Prepare ничего не сообщает

Системный диалог может перекрывать приложение (сопряжение Shizuku, сканирование установщика OPPO). Закройте его и нажмите Prepare снова.

Безопасность

Это эксплойт ядра. Прочитайте это перед тем, как что-либо нажимать.

  • Не убивайте припаркованный процесс. Эксплойт удерживает процесс живым, с поддельной страницей учётных данных, закреплённой в буферах сокетов. Его завершение может вызвать панику ядра. Перезагрузка — единственный чистый способ удалить его.
  • Перезагрузка очищает всё: KernelSU, root-оболочку и припаркованные процессы. Это и есть предусмотренный способ остановки.
  • SELinux остаётся в режиме permissive до следующей перезагрузки.
  • Неудачная попытка оставляет устаревший узел timerqueue; другие приложения могут падать, пока вы не перезагрузитесь.
  • Используйте это только на устройстве, которым вы владеете или которое вам явно разрешено изменять.

Структура

Скачать инструмент