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

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

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

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

工具目录

分类

查看所有分类
Loading categories
GhostLock-NVIDIA-Shield-9.2.4 — 已验证的 GhostLock CVE-2026-43499 移植版,适用于 NVIDIA Shield TV Pro mdarcy 9.2.4 | Kitploit
工具/GitHubGitHub/cyberbalsa/ghostlock-nvidia-shield-9.2.4
Android安全权限提升漏洞利用框架持久化机制漏洞利用移动安全Payload 开发二进制利用

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
cyberbalsa/ghostlock-nvidia-shield-9.2.4

GhostLock-NVIDIA-Shield-9.2.4

已验证的 GhostLock CVE-2026-43499 移植版,适用于 NVIDIA Shield TV Pro mdarcy 9.2.4

查看仓库
115小时9分前尚未审核

适用于 NVIDIA Shield TV Pro 9.2.4 的 GhostLock

经验证的 arm64 移植版本,针对运行 Shield Experience 9.2.4 的 2019 款 NVIDIA Shield TV Pro(mdarcy)上的 GhostLock futex PI use-after-free(CVE-2026-43499)。该载荷会修改实时 ADB 守护进程的凭据,因此无需解锁引导加载程序、擦除用户数据、安装 su 或修改已验证分区,新的 ADB shell 即可获得 UID 0。

这是一个针对特定构建的内核漏洞利用,仅用于授权安全研究。 不匹配或竞态丢失可能导致内核崩溃。请勿在其他指纹、内核、设备或硬件版本上运行。

已验证目标

字段必需值
产品NVIDIA Shield TV Pro 2019,mdarcy
指纹NVIDIA/mdarcy/mdarcy:11/RQ1A.210105.003/7825230_4387.0822:user/release-keys
内核4.9.141-tegra-gb6e5605a
Android 补丁级别2026-01-05
内核基址0xffffff8008080000(偏移已禁用)

该移植版本已在带绿色 Verified Boot 和强制 dm-verity 的锁定设备上验证通过。由于该漏洞利用仅修改实时内核状态,这些机制保持完好。

结果与生命周期

成功运行后,新连接会为 adbd 及其子 shell 报告 UID/GID 0,完整能力至能力 37,seccomp 已禁用,SELinux 为 permissive。Root 在 ADB 客户端断开后仍然有效,但无法在 adbd 重启或设备重启后自行保留。

为在不修改已验证分区的情况下实现实用的重启持久化,该仓库包含一个 userdata APK。其非导出的 BOOT_COMPLETED 接收器会启动一个短时前台服务,该服务在每次启动时从未特权应用 UID 运行一次哈希固定的漏洞利用,并在运行器退出时停止。安装后无需外部主机。外部 Podman 看门狗仍可作为恢复后备方案。请参阅 persistence/README.md 和 watchdog/README.md。

这是自主重新利用,而非静态固件补丁:每次启动都有一个短暂窗口,期间 adbd 仍持有其原始凭据。在 Android 初始化 adbd 之前使其以 root 身份启动,需要修改已验证的启动链,这超出了此锁定、无擦除设计范围。

漏洞利用链

  1. 触发易受攻击的 futex PI 回滚路径,并在内核栈上保留一个陈旧的 rt_mutex_waiter。
  2. 使用 MCAST_BLOCK_SOURCE 标记被回收的栈,并重定向 rt-mutex 树操作。
  3. 使用精心构造的 skb 载荷回收一个已释放的 order-2 mm_struct slab 页。
  4. 将 ashmem_misc.fops 重定向到由传统 configfs 读/写处理程序支持的表。
  5. 遍历任务列表,定位请求的 adbd PID,并验证其完整凭据对象。
  6. 对 ID、securebits 和能力字执行一次有界写入;将 SELinux 设为 permissive;然后恢复 ashmem 操作和 boot-ID 指针。

继承的管道缓冲区物理读/写阶段未被使用。详细的目标观察和已验证偏移见 PORT_STATUS.md。

构建

编译器为 Android NDK r29(aarch64-linux-android30-clang)。使用已安装的 Linux NDK 直接构建:

root@kitploit:~
cd exploit
make NDK=/opt/android-ndk-r29

或构建随附的 Podman 镜像,该镜像会下载官方 r29 Linux 归档文件并在解压前校验其已发布的 SHA-1:

root@kitploit:~
podman build -t ghostlock-android:ndk-r29 -f build/Containerfile .
podman run --rm \
  -v "$PWD:/src:Z" \
  -w /src/exploit \
  ghostlock-android:ndk-r29 make -B

输出:

root@kitploit:~
exploit/build/preload-mdarcy-9.2.4.so
SHA-256 a3a1e75b627d8dd419e9bafd2a73082a8647510bf6ce4f975e52baf5aa1d0761

Shield 构建有意排除了参考项目中嵌入的 su 守护进程和壁纸载荷。

运行

通过授权的网络 ADB 连接,推送发布资源或本地构建,然后进入 ADB shell:

root@kitploit:~
adb connect SHIELD_ADDRESS:5555
adb -s SHIELD_ADDRESS:5555 push \
  exploit/build/preload-mdarcy-9.2.4.so \
  /data/local/tmp/preload-mdarcy-9.2.4.so
adb -s SHIELD_ADDRESS:5555 shell chmod 0755 \
  /data/local/tmp/preload-mdarcy-9.2.4.so
adb -s SHIELD_ADDRESS:5555 shell

在该设备 shell 内运行以下命令:

root@kitploit:~
GHOSTLOCK_FIXED_BASE=1 \
GHOSTLOCK_MAIN_ROUTE=slide-mcast \
GHOSTLOCK_SLIDE_FULL_LOCK=1 \
GHOSTLOCK_MIXED_ORDER_PAYLOAD=1 \
GHOSTLOCK_MM_PARTIALS=14 \
GHOSTLOCK_BUDDY_HOLD_PAIRS=256 \
GHOSTLOCK_BUDDY_HOLD_SENDS=8192 \
GHOSTLOCK_RECLAIM_PAIRS=64 \
GHOSTLOCK_RECLAIM_SENDS=2048 \
GHOSTLOCK_ADBD_ROOT_CONFIGFS=1 \
GHOSTLOCK_ADBD_PID="$(pidof adbd)" \
LD_PRELOAD=/data/local/tmp/preload-mdarcy-9.2.4.so \
/system/bin/true

断开连接并打开新的传输以进行验证:

root@kitploit:~
adb disconnect SHIELD_ADDRESS:5555
adb connect SHIELD_ADDRESS:5555
adb -s SHIELD_ADDRESS:5555 shell id
adb -s SHIELD_ADDRESS:5555 shell \
  'grep -E "^(Uid|Gid|Cap(Inh|Prm|Eff|Bnd|Amb)|Seccomp):" /proc/$(pidof adbd)/status'

该载荷拒绝从已为 UID 0 的 ADB shell 重新触发,除非明确提供 GHOSTLOCK_FORCE_ROOT_TRIGGER=1。请勿强制触发;特权调度路径具有不同的 PI 行为,可能导致内核崩溃。

设备端持久化

将已签名的发布 APK 下载到 persistence/app/build/ghostlock-boot-mdarcy-9.2.4.apk,然后从授权的 PowerShell ADB 主机安装并启用:

root@kitploit:~
./persistence/install.ps1 `
  -Target SHIELD_ADDRESS:5555 `
  -AdbPath C:/path/to/platform-tools/adb.exe

安装程序仅修改 userdata 且不重启。在下次 BOOT_COMPLETED 时,应用会验证精确的指纹、内核和嵌入的载荷哈希,记录其尝试,并从其正常应用 UID 调用 GhostLock。文件锁、每次启动仅尝试一次的状态以及 15 分钟的跨启动冷却时间可防止重复或重启循环尝试。它不安装 su 二进制文件。Android 仅在本机运行器活动期间显示低优先级通知 Restoring ADB root;等待进程退出后,waiter 会移除该通知。有关构建、签名、日志、验证、恢复和卸载的详细信息,请参阅 persistence/README.md。

最终 APK 已在外部看门狗停止的情况下验证:启动计数 134 首次暴露了原始 UID-2000/enforcing 的 adbd,下一个新传输为 UID/GID 0,具有完整的 0x3fffffffff 能力掩码,seccomp 已禁用,SELinux 为 permissive。服务和通知已自行清理。

日志与恢复

手动运行的诊断信息会同步写入 /sdcard/Download/log_<timestamp>.txt,回退到 /data/local/tmp。启动应用会将运行器和载荷输出重定向到其私有 files/boot.log,可通过 run-as com.cyberbalsa.ghostlockboot 读取。如果竞态导致内核崩溃,触发前状态会阻止在该启动计数中再次尝试,且 15 分钟冷却时间会跨重启延续。

仓库结构

  • exploit/src/:触发、回收、任意读/写以及有界 adbd 凭据补丁。
  • exploit/targets/shield-mdarcy-9.2.4/:精确的构建特定目标布局。
  • analysis/:内核符号和布局提取辅助工具。
  • persistence/:设备端启动 APK、本机运行器和安装程序。
  • watchdog/:哈希固定的主机端恢复后备方案。
  • report.md:保留的原始 OPPO 参考移植分析,用于溯源。

致谢与许可

此移植源自 NebuSec 发布的 GhostLock 研究和漏洞利用框架,以及 yijiacloud 的 OPPO PCKM00 参考移植。KernelSnitch 按其上游条款嵌入。

  • https://github.com/NebuSec/CyberMeowfia
  • https://github.com/yijiacloud/GhostLock-OPPO-PCKM00
  • https://github.com/torvalds/linux/commit/3bfdc63936dd4773109b7b8c280c0f3b5ae7d349

Apache-2.0;请参阅 LICENSE。

下载工具