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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
samsung_tizen_tv_root — 研究工具包,通过 Chromium WasmGC RCE 和 V4L2 physmap 任意物理内存访问,对三星 Tizen 9 电视进行 root,并具备持久化的开机自启载荷和 root shell 通道。 | Kitploit
工具/GitHubGitHub/commit-regrets/samsung_tizen_tv_root
嵌入式系统安全权限提升内存取证持久化机制漏洞利用逆向工程后渗透利用硬件与物联网安全论文与研究

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
远程访问工具
二进制利用
GitHubcommit-regrets/samsung_tizen_tv_root

samsung_tizen_tv_root

研究工具包,通过 Chromium WasmGC RCE 和 V4L2 physmap 任意物理内存访问,对三星 Tizen 9 电视进行 root,并具备持久化的开机自启载荷和 root shell 通道。

查看仓库
152461天前尚未审核

Samsung Tizen 9 电视 Root — 研究工具包

针对运行 Tizen 9 的 2024 款 Samsung Neo QLED 的非官方安全研究。 无需 sdb,无需开发者模式,无需刷写固件:电视从其自带的浏览器中被 root, 并且通过一个原厂的开机自启动服务应用使 root 持久化。

测试设备2024 款 Neo QLED,QNX1D 系列(QTV T09 平台)
固件T-PTMxxxx (01400)
内核Linux 5.4.249,ARM32(VMSPLIT_3G + HIGHMEM,无 LPAE),PAGE_OFFSET 0xC0000000,PHYS_OFFSET 0x20000000
浏览器Chromium 120.0.6099.5 (SamsungBrowser/7.0)
Rootuid=0,CapEff=0x3fffffffff
持久化载荷仓库 v41(当前 md5/大小见 AGENTS.md 状态行——由产物重新生成);测试设备运行同一构建(部署于 2026-10-27,信标携带 tok=);payload_backup.dll 保留上一构建
Root 通道电视上的 TCP 31337,行协议,回复以 __END__ 结尾

快速开始

pwsh -File .\root.ps1 -TvIp <tv-ip>        # root the TV
pwsh -File .\uninstall.ps1 -TvIp <tv-ip>   # restore stock

root.ps1 在 PC 上运行并驱动一切:它启动 80 端口服务器,对浏览器 stub 进行 root,安装启动载荷,并在重启后等待 root 通道。有两个步骤仍需在电视遥控器上完成,脚本会提示这两步:

  1. 打开打印出的 http://<pc-ip>/index.html 并等待出现 RUNNING;
  2. 在部署验证通过后,对电视进行一次断电重启。

然后:

python tools\root_shell.py "id" <tv-ip>   # talk to the TV's root channel

每个选项、确切的提示、预期输出、主机 IP 注意事项以及手动回退方案:docs/USAGE.md。

工作原理

  1. 浏览器 RCE — Chromium 120 中的 CVE-2024-2887(WasmGC 类型混淆)可在渲染器内实现任意读写和 ARM shellcode 执行。
  2. Physmap — V4L2 编解码节点(/dev/video40/30/60)在 mmap() 中接受攻击者选择的 vm_pgoff,并将其未经校验地传给 remap_pfn_range():从而允许非特权进程(uid 5001,组 video)任意读写物理内存。
  3. Root — 在物理内存中找到内核 Image 和 init_task,通过 fork 出的子进程的 real_parent 定位我们自己的 task,然后将凭据清零。
  4. 持久化 — 将原厂 app_onboot 服务的 IL 程序集替换为 .NET 载荷,该载荷在每次启动时重复 physmap/凭据补丁,关闭其节点,并在 TCP 31337 上提供 root 命令通道。

没有 GPU CVE,没有内核漏洞利用,没有签名模块。physmap 才是有趣的部分;带有实测常量的逐阶段说明见 docs/EXPLOIT.md。

文档

文档内容
docs/USAGE.md运行方式:选项、提示、预期输出、卸载细节、恢复
docs/EXPLOIT.md逐阶段讲解攻击链,包含固件特定的常量
docs/ROOT-METHODS.md评估过的每种 root/持久化方法,以及最终胜出的那一种
docs/FAILED.md哪些方法没有奏效以及原因——读起来像一份死胡同清单,能节省数周时间
docs/BOOT-REGRESSION-SMACK.md项目中最隐蔽的 bug:错误的 SMACK 标签导致应用在 Main 之前就退出
docs/PORTABILITY.md另一台 Tizen 9 电视:四道关卡、需要重新测量的内容、分步移植
docs/SERVER-HOSTING.mdPC 端服务器:必须如何运行、静默死亡陷阱、防火墙、日志
docs/SCRIPT-REVIEW.md脚本的生产就绪性审计
docs/TESTING.md测试层级,离线与电视上,以及各自能捕获什么
docs/LOGGUIDE.md每个信标和工具错误的解读,以及后续步骤
docs/REFERENCE-MATERIALS.md从哪里为你的型号下载固件 / GPL 源码 / 模拟工具
docs/REVIEW-HISTORY.md已关闭的审查发现及其证据(存档)
docs/OPEN-ISSUES.md当前状态、待办工作,以及已关闭的审查/通过历史
AGENTS.md交接:工具、流程、验证、陷阱、恢复
CHANGELOG.md按日期记录变更内容及原因
SECURITY.md未认证的 31337 后门、范围、报告、法律
NOTICE.md第三方归属;哪些文件未重新授权
LICENSE原创作品采用 MIT 许可(第三方文件除外)

仓库布局

root.ps1, uninstall.ps1     PC entry points (PowerShell)
payload/                    boot payload source (.NET 6, Program.cs)
server/                     port-80 server, exploit page, TV-side deploy scripts
tools/                      physmap client, kernel helpers, build scripts
docs/                       the documents above
AGENTS.md                   hand-off notes
LICENSE, NOTICE.md          license + third-party attribution
SECURITY.md                 backdoor/scope/reporting

整个工具包已提交,因此克隆后无需任何其他工作树即可运行。 server/payload.dll 是有意包含的(与构建输出字节完全一致), 这样工具包无需 .NET SDK 即可工作。运行时日志、构建输出以及 按主机生成的部署脚本均被 git 忽略,且从不通过 HTTP 提供。

要求

  • 相同的 TV 系列和固件代次——在尝试其他型号之前,请参阅 docs/PORTABILITY.md。
  • 一台位于同一局域网内的 PC,能够接收来自 TV 的 TCP/80 并访问其上的 TCP/31337。 正常流程不提交任何地址:server/deploy.sh 是一个模板,其 H=/WANT=/SIZE_WANT=/TOKEN= 标记由 server.py 按请求渲染, 渲染依据是 TV 使用的地址和实际提供的 payload,页面会重写 shellcode 的回调(IP 和 端口),而 payload 会读取 share/rootchan.host。编译内置的 Host 是一个 TEST-NET 占位符。
  • PC 上需安装 Python 3。在 Windows 上,服务器必须在防火墙允许的 解释器路径下运行(参见 docs/SERVER-HOSTING.md)。
  • 仅在重新构建引导 payload 时才需要 .NET SDK——payload/global.json 固定 10.0.x(rollForward: latestPatch);该项目目标为 net6.0,固定版本的 SDK 仍可构建 (预期会出现 EOL 警告)。

参考资料(固件、GPL 内核源码、QEMU 工具)未 捆绑提供;docs/REFERENCE-MATERIALS.md 列出了 针对你自己的型号下载各部分内容的位置。

移植到另一台 Tizen 9 TV

该方法是可移植的;此构建则不是。payload.dll 硬编码了此内核的 PHYS_OFFSET、init_task 以及四个 task_struct 偏移量,且浏览器利用链 特定于 Chromium 120。简版说明:

  1. 浏览器门槛——提供 server/probe.html(安全;不执行任何内容)并在 TV 上打开它。你需要带 WasmGC 的 Chromium ~120;否则此 CVE 不 适用。
  2. Physmap 门槛——以 owner 身份获取代码执行(浏览器利用链),然后 用 tools/physmap.py / tools/physrpc.S 在 TV 的某个 /dev/video* 节点上 证明任意 pfn 的 mmap。如果偏移量得到验证,则停止。
  3. 常量——测量 PHYS_OFFSET、Image 基址、init_task 以及 tasks/comm/cred/real_parent 偏移量。编辑 payload/Program.cs 中的常量;重新检查下方的读取可靠性限制。
  4. 载体——在可写的 /opt 上找到一个 dotnet-inhouse、app_onboot 应用, 其文件可以在其自身的 SMACK 标签下重写。在 server/deploy.sh、server/uninstall.sh 和 server/recover.sh 中设置其应用 id/路径。
  5. 构建、部署、验证——dotnet build -c Release -o out,将产物 复制覆盖 server/payload.dll(部署门槛由它渲染,因此无需 编辑 WANT=),通过 root.ps1 部署,然后冷启动。第 2 次尝试是 预期下限。

在测试设备上发现的读取可靠性限制: 即使 VA/PA 别名正确, video40 physmap 在读取 0xE0000000 及以上地址时也会返回 垃圾数据。线性映射本身更大(zoneinfo:high_memory = VA 0xF0400000), 因此 0xE0000000 位于其内部——首要嫌疑是 V4L2 节点的 DMA 窗口,而非 CPU 映射。无论哪种情况:在信任 Kptr 之前,请在新型号上 测试一个已知的低页和一个已知的高页;此处所有成功的 cred 补丁 都位于 0xE0000000 以下,这会影响你如何解读“未找到”。

完整的门槛、测量方法以及逐文件的移植检查清单: docs/PORTABILITY.md。

安全与法律

下载工具