Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
TimerRoot — CVE-2026-98260 的 Android 前端:通过 Shizuku 实现 root shell + KernelSU 延迟加载 | Kitploit
工具/GitHubGitHub/kpgc10kai/timerroot
Android安全权限提升持久化机制漏洞利用后渗透利用渗透测试移动安全Payload 开发
GitHubkpgc10kai/timerroot

TimerRoot

CVE-2026-98260 的 Android 前端:通过 Shizuku 实现 root shell + KernelSU 延迟加载

查看仓库
401711天前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

TimerRoot

CVE-2026-98260(POSIX CPU 定时器释放后使用)的 Android 前端,与 CVE-2026-64560 属于同一类漏洞。只需轻点一下即可获得 root shell,随后延迟加载 KernelSU(u:r:ksu:s0)。

漏洞利用本身不包含在此处。本仓库是围绕它的应用外壳:UI、状态检测,以及从普通应用运行 shell 域漏洞利用所需的 Shizuku 管道。

为什么该应用需要 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

该项目需要带有 platform 36 和 build-tools 36 的 Android SDK。Shizuku API 从 Maven 拉取(dev.rikka.shizuku:api)。

不使用 Gradle

scripts/build.ps1 仅使用 SDK、javac、d8、aapt2 和 apksigner 来构建并签名 APK。它不内置任何依赖:它将应用与 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 在每次重启后都会停止,因此这是每次都要做的第一步。

无线调试(首次配对后无需 PC)

  1. 启用开发者选项:设置 -> 关于设备 -> 连续点击 版本号 7 次。
  2. 设置 -> 系统 -> 开发者选项 -> 无线调试 -> 开启。
  3. 打开 Shizuku 应用 -> 启动 -> 通过无线调试启动。
  4. 允许通知,然后在 使用配对码配对设备 中输入手机上显示的 6 位配对码。
  5. Shizuku 报告“Shizuku 正在运行”(通知显示服务器已启动)。

通过 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 询问 允许 TimerRoot 访问 Shizuku? 时,选择 始终允许。
  3. 卡片变为 就绪(Shizuku 已连接,尚无 root)。如果仍显示 未连接,请在工具行中按 Shizuku 再次请求。

3. 准备

Prepare 将 assets/timer 解压到 /data/local/tmp/timer:

installed 307192 bytes

4. 获取 root shell

一键操作。应用完成提权,在服务中保留一个 uid=0 的 shell,随后自动启动 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 shell 也能工作。重启也是清除驻留进程和卸载 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 KB 页:

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

检查设备的分页大小:

adb shell getconf PAGE_SIZE
  • 4096:布局因其他原因而不同;请收集 uname -r、设备型号和完整日志,并向上游报告。
  • 16384:该漏洞利用无法在出厂状态的此设备上生效。必须针对 16 KB 页面重新构建(页移位、掩码和阶数大小),这属于移植工作,而非应用设置。

root shell 在此类设备上仍可成功,因为该路径只需要泄露的凭据地址,而不需要线性映射基址。

卡片一直停留在 Not connected

Shizuku 未运行。请重新启动它(每次重启后都会停止),并参见步骤 1。

Prepare 未报告任何内容

可能有系统对话框覆盖了应用(Shizuku 配对、OPPO 安装程序扫描)。请关闭它,然后再次按下 Prepare。

安全

这是一个内核漏洞利用。按下任何按钮之前请先阅读本节。

  • 不要杀死被驻留的进程。 该漏洞利用通过将伪造的凭据页固定在套接字缓冲区中,使一个进程保持存活。回收该进程可能导致内核 panic。重启是移除它的唯一干净方式。
  • 重启会清除一切:KernelSU、root shell 以及被驻留的进程。这是预期的停止方式。
  • SELinux 会保持 permissive 状态,直到下次重启。
  • 一次失败的尝试会留下一个陈旧的 timerqueue 节点;在你重启之前,其他应用可能会崩溃。
  • 仅在你拥有或明确获准修改的设备上使用此工具。

布局

app/src/main/java/com/kpgc/timerroot/MainActivity.java   UI and state
app/src/main/java/com/kpgc/timerroot/UserService.java    runs as the shell user
app/src/main/aidl/com/kpgc/timerroot/IUserService.aidl   service interface
app/src/main/assets/timer                                exploit binary (not in git)
scripts/build.ps1                                        Gradle-free build

致谢

  • 漏洞利用:YuKongA/CVE-2026-98260 (MIT),基于 woshigenm 及其他 98260 移植版本的工作。
  • Shizuku 和 Shizuku-API(Apache-2.0),作者 Rikka。
  • KernelSU(GPL-2.0),用于延迟加载路径。

许可证

本仓库中的应用代码采用 MIT 许可证。漏洞利用二进制文件和 Shizuku API 保留各自的许可证。

下载工具