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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
mali-pagecache-root — TCL 50C721(RTD1319 / Mali-G31)root 工具包 — 自主 CVE-2022-22706 漏洞利用链 | Kitploit
工具/GitLabGitLab/c4psu13/mali-pagecache-root
Android安全嵌入式系统安全权限提升持久化机制漏洞利用Shellcode后渗透利用硬件与物联网安全Payload 开发二进制利用
GitLabc4psu13/mali-pagecache-root
218小时37分前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

mali-pagecache-root

TCL 50C721(RTD1319 / Mali-G31)root 工具包 — 自主 CVE-2022-22706 漏洞利用链

查看仓库

TCL 50C721 root 工具包

针对某一 TCL Android TV 固件的完整 root 漏洞利用链与 root 后工具包,用于实现 受限 root(tethered root)、SELinux Permissive、广告拦截、精简预装应用(debloat)与自动备份。这是针对特定固件的研究与工具,并非通用的 TCL root 工具,也不是受支持的安装程序。

测试范围

项目记录的测试单元
电视TCL QLED 50C721 / BeyondTV6
固件V8-R51MT02-LF1V903,build AR10
Android / 内核Android 11 / 4.14.198+
SoC / GPURealtek RTD1319 / Mali-G31(Bifrost,kbase r28p0)
用户空间32 位 ARMv7
报告的安全补丁2024-03-05
历史结果获得 uid=0 的 ADB shell;SELinux Permissive

仅此型号/固件组合有成功结果的记录。原始记录中 SoC 的精确识别与 Mali 驱动版本并不一致;参见兼容性限制。在准备本次源码发布时,未进行新的 root 测试。

功能说明

漏洞利用链(auto_root)

自主 root 二进制程序(auto_root.c)可在 2 秒内从非特权应用上下文获得 uid=0:

  1. 阶段 1 — CVE-2022-22706(Mali GPU 页缓存写入):通过 KBASE_IOCTL_MEM_IMPORT 将 libc.so 中 __cxa_atexit 所在页面的 MAP_SHARED 映射导入为 GPU 用户缓冲区。使用 mremap(MREMAP_FIXED) 替换该文件映射。在页缓存中向 __cxa_atexit 写入 112 字节的 Thumb-2 shellcode(磁盘上的文件未被修改——受 dm-verity 保护)。

  2. 阶段 3 — 自然触发:每个新的 C++ 进程在 CRT 初始化期间都会调用 __cxa_atexit(),从而执行该 shellcode。一个特权域(audioserver、rtkm_scene)通过 /dev/rtkmem 映射物理页 0x1DE7000,并写入 selinux_state.enforcing = 0。

  3. 阶段 4a — 直接修改凭据:在 SELinux Permissive 状态下,通过 /dev/rtkmem 读取物理内存,遍历内核 task_struct 链表。通过匹配 comm[] 找到我们的进程,用来自 init_cred 的 uid=0 和完整 capabilities 覆盖 cred 结构体。清除 TIF_SECCOMP 以绕过 zygote 的 BPF seccomp 过滤器。

  4. 阶段 4b — 系统加固:以 bind mount 方式挂载广告拦截 hosts,删除阻止遥测 IP 的 iptables 规则,禁用 28 个预装应用(bloatware),授予 APP_AUTO_START 以实现开机持久化,停用 shellcode,并将 SELinux 重新设为 Enforcing。

独立阶段

两个独立程序(root_cve22706.c、libc_rtkmem_patch2.c)将相同的 CVE-2022-22706 页缓存写入原语实现为独立的受限 root 阶段,适用于手动 ADB root 以及从原语层面理解该漏洞利用。

脚本

  • scripts/root.sh — ADB 自动化:连接电视,运行两个独立阶段,验证 root 与 SELinux 状态。
  • scripts/post_root.sh — 由 auto_root 在加固后调用的 root 后钩子。创建完整的设备备份:侧载的 APK、应用数据、WiFi 配置、所有设置、软件包列表。自动清理,仅保留最近 5 份备份。

包含内容

  • 技术摘要:利用链、副作用与证据局限。
  • 原生源码与构建说明:自主 root 与两个独立阶段;不含预编译可执行文件。
  • 兼容性限制:在考虑其他设备前必须确认的事项。
  • 恢复说明:特定型号的历史 USB 恢复方法与警告。
  • 内核源码摘录:辅助分析,并非构建依赖。

不包含 APK 或可复现的 APK 应用项目;此处没有一次安装即可自动开机的发布版本。自主 root 二进制程序设计为由 APK 的原生代码调用,但 APK 封装层不属于本次发布内容。

快速开始

# Build (requires Android NDK)
cd exploit && make

# Push to TV
adb connect <TV_IP>:5555
adb push bin/auto_root /data/local/tmp/
adb push bin/root_cve22706 /data/local/tmp/
adb push bin/libc_rtkmem_patch2 /data/local/tmp/

# Option A: Run the autonomous chain (includes hardening + backup)
adb shell /data/local/tmp/auto_root

# Option B: Manual two-stage root via script
bash scripts/root.sh <TV_IP>

使用前须知

仅可在您拥有或获得明确授权进行评估的硬件上使用。请先审查所有 C 文件以及每一项针对特定固件的假设。请保留数据,并独立获取已知匹配的恢复镜像和恢复流程。请勿将 ADB 暴露在不受信任的网络上。重启会移除易失性补丁(page-cache、bind mounts、iptables),但软件包禁用和 APP_AUTO_START 会保留。

请勿基于本项目刷入打过补丁的 boot 或 vbmeta 镜像。 历史上曾有两次尝试导致设备变砖(bootloop);既未确立持久化 root 方法,也未建立通用恢复保证。

许可证

所有原创代码均采用 MIT 许可证。内核摘录(kernel/mem.c)保留其 GPL-2.0 许可证和版权声明。有关署名和上游引用,请参阅 LICENSE 和 provenance。

下载工具