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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ghostlock-a17 — 针对三星 Galaxy A17 上 CVE-2026-43499 的内核漏洞利用,通过 KDP 绕过、KASLR 恢复和伪造 workqueue 执行实现 root 权限,并获得持久化 shell。 | Kitploit
工具/GitHubGitHub/mobilehackinglab/ghostlock-a17
Android安全权限提升持久化机制漏洞利用后渗透利用移动安全二进制利用
GitHubmobilehackinglab/ghostlock-a17

ghostlock-a17

针对三星 Galaxy A17 上 CVE-2026-43499 的内核漏洞利用,通过 KDP 绕过、KASLR 恢复和伪造 workqueue 执行实现 root 权限,并获得持久化 shell。

查看仓库
1761272个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GhostLock — 三星 Galaxy A17 上的 CVE-2026-43499

针对三星 Galaxy A17 SM-A175F(运行 Android 16 / GKI 6.12)上 CVE-2026-43499(“GhostLock”) 的完整用户态到 root 提权链。

该攻击链从公开的 GhostLock 原语开始,最终以如下身份执行的用户态辅助程序结束:

uid=0(root) gid=0(root) groups=0(root)
context=u:r:kernel:s0

它还会通过 g4d / g4sh 启动一个每次启动都持久的 root shell,并在不触发内核 panic 的情况下退出。

📖 完整技术说明:
https://www.mobilehackinglab.com/blog/cve-2026-43499-ghostlock-a17-root-shell

研究说明

我们并未发现 CVE-2026-43499。原始漏洞和 IonStack 研究的功劳归 Nebula Security 所有。

本仓库记录了我们将该漏洞独立移植到 Samsung Galaxy A17 的过程、为适配三星内核防护所需的改动,以及一个新的最终利用阶段。

仅限授权安全研究和教育用途。


目标

CVECVE-2026-43499 — "ghostlock"
设备Samsung Galaxy A17 (SM-A175F, mt6789)
GPUMali-G57
内核6.12.23-android16-5-abA175FXXS3BZA5-4k
结果uid=0(root) / u:r:kernel:s0
Root shellg4d 守护进程 + g4sh 客户端
持久化每次启动
利用退出干净退出,无内核 panic
遇到的缓解措施Samsung KDP、DEFEX、SELinux、PANIC_ON_OOPS、arm64 KASLR
支持的固件A175FXXS3BZA5(内核 6.12.23)和 A175FXXS6CZG1(内核 6.12.38,SPL 2026-07-05)——两者均经设备验证,使用相同利用链

本次移植有何不同?

原始 ghostlock 研究提供了入口原语:

pselect reclaim
      ↓
fake rt_mutex_waiter
      ↓
constrained rb-tree pointer write

然而,在 Galaxy A17 上,标准的凭据修补终局并不奏效。

Samsung KDP 阻止了常规的凭据写入

KDP 在 EL2 层保护与凭据相关的内核数据。

在此版本上,即使目标地址正确,尝试修改任务凭据也会被静默丢弃。

因此,此移植版并未写入 root 凭据,而是让内核以现有的特权凭据执行。

新的终局:伪造工作队列执行

最终阶段:

constrained kernel write
        ↓
physical read/write channel
        ↓
KASLR slide recovery
        ↓
discover system_wq / cpu_pwq
        ↓
forge work_struct
        ↓
call_usermodehelper_exec_work
        ↓
/system/bin/sh
        ↓
uid=0(root), u:r:kernel:s0

一个伪造的工作项被放置到绑定的 system_wq 池上,并通过 ptmx 分配/释放风暴触发。

由此产生的用户态辅助程序以 init 凭据执行。

无需覆盖任务凭据。


利用链

userspace shell (uid 2000)
        │
        ▼
pselect / PI-futex primitive
        │
        ▼
constrained aligned kernel pointer write
        │
        ▼
forged pipe_buffer channel
        │
        ▼
arbitrary physical read/write
        │
        ├── recover KASLR slide
        │
        ├── locate system_wq / cpu_pwq
        │
        └── prepare forged work_struct
        │
        ▼
queue usermode-helper work
        │
        ▼
ptmx storm wakes worker
        │
        ▼
/system/bin/sh runs with init creds
        │
        ▼
uid=0(root)
        │
        ▼
g4d → @ghostlockd → g4sh

关键工程变更

与公开的 OnePlus 移植版本相比,初始写入原语之后的大多数阶段都经过了重做。

1. 新的兼容 KDP 的 root 阶段

凭据修补的收尾阶段被替换为一个伪造的 workqueue 项,其目标是 usermode-helper 执行路径。

这完全避免了对受保护的 cred 结构进行写入。

2. 新的 KASLR 偏移预言机

先前的 perf-event 锚定方法在此设备上并不可靠。

相反,该漏洞利用使用来自 boot_id ctl_table 条目的三个带偏移的指针:

procname
data
proc_handler

这三者都会在接收该幻灯片之前进行交叉验证。

3. 运行时工作队列发现

cpu_pwq 通过遍历以下内容来发现:

system_wq → pwqs

而不是依赖固定的设备特定偏移量。

4. 干净的漏洞利用退出

原始通道会留下对 struct page 状态的附带更改,这些更改可能在拆除期间触发 PANIC_ON_OOPS。

当前链条避免了拆除崩溃,并已演示在获得 root 后干净退出。

5. Root shell

用户态辅助程序启动:

g4d

它监听抽象 Unix 套接字:

@ghostlockd

g4sh 会连接到该后门,并提供交互式 root shell 或一次性命令执行。

/data/local/tmp/a/g4sh
/data/local/tmp/a/g4sh -c "id"

为什么 Galaxy A17 值得关注

该目标结合了多种防护机制,使常见的 Android 内核利用技术失效:

  • Samsung KDP — 在 EL2 层保护与凭据相关的内核数据
  • DEFEX — 限制从不可信路径执行特权代码
  • SELinux
  • PANIC_ON_OOPS / PANIC_ON_BUG
  • 较大的 arm64 KASLR 偏移
  • 仅指针的受限写入原语

这迫使采用与常规不同的漏洞利用策略:

arbitrary RW → patch cred → disable SELinux

改为:

arbitrary RW → recover runtime state → forge kernel work → execute usermode helper

构建

需要较新的 Android NDK。

make        # BZA5 firmware (kernel 6.12.23)
make czg1   # CZG1 firmware (kernel 6.12.38): per-target slide anchors,
            # offsets are uname-keyed at runtime

生成:

ghostlock   # exploit (ghostlock-czg1 for the CZG1 build)
g4d         # static root-shell daemon
g4sh        # root-shell client

运行

推送二进制文件:

adb push ghostlock /data/local/tmp/a/g4
adb push g4d /data/local/tmp/a/g4d
adb push g4sh /data/local/tmp/a/g4sh

adb shell 'chmod 755 /data/local/tmp/a/g4 /data/local/tmp/a/g4d /data/local/tmp/a/g4sh'

运行重启感知的漏洞利用循环:

./scripts/rr_loop4.sh

在 ROOTED 之后:

adb shell /data/local/tmp/a/g4sh

执行单条命令:

adb shell '/data/local/tmp/a/g4sh -c "id"'

预期结果:

uid=0(root) gid=0(root) groups=0(root) context=u:r:kernel:s0

可靠性

该原语具有概率性,并且强烈依赖于启动条件。

成功利用可能需要多次尝试。随附的 rr_loop4.sh 脚本会自动处理重试和重启循环。

这是一个研究性漏洞利用,而非一键式即时 root 工具。


QEMU 验证

qemu-e2e/ 包含一个使用提取的三星内核的端到端验证框架。

该框架用于测试:

  • 漏洞利用链变更
  • KASLR 处理
  • workqueue 伪造
  • usermode-helper 执行
  • 干净的漏洞利用清理
  • g4d / g4sh 往返

三星内核镜像本身未包含在内。

参见:

qemu-e2e/

有关设置说明,请参阅。


仓库布局

Makefile
src/                  exploit source and device profiles
src/daemon/           g4d root daemon + g4sh client
docs/OFFSETS.md       validated device offsets
docs/PORTING.md       porting notes
examples/             proof-of-root artifacts
scripts/rr_loop4.sh   reboot-aware exploit loop
qemu-e2e/             end-to-end QEMU validation

相关研究

原始 GhostLock / IonStack 研究

NebuSec:

https://nebusec.ai/research/ionstack-part-3/

https://github.com/NebuSec/CyberMeowfia/tree/main/IonStack

OnePlus 移植

https://github.com/JoinChang/ghostlock-oneplus

Mobile Hacking Lab 技术文章

深入探讨 Samsung Galaxy A17 移植、KDP 限制、KASLR 恢复、基于 workqueue 的最终阶段以及 root shell 实现:

https://www.mobilehackinglab.com/blog/cve-2026-43499-ghostlock-a17-root-shell


Root 验证

真实设备产物位于:

examples/

包括漏洞利用日志和 root 上下文验证。

示例:

uid=0(root)
gid=0(root)
groups=0(root)
context=u:r:kernel:s0

免责声明

本概念验证仅供教育和经授权的安全研究目的使用。

仅可在您拥有或已获得明确测试许可的设备与环境中使用。

下载工具