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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
ghostlock-s26 — GhostLock (CVE-2026-43499) 适用于 Galaxy S26 系列的应用 | Kitploit
工具/GitHubGitHub/1ndevelopment/ghostlock-s26
Android安全权限提升持久化机制漏洞利用移动应用渗透测试后渗透利用移动安全Payload 开发
GitHub1ndevelopment/ghostlock-s26

ghostlock-s26

GhostLock (CVE-2026-43499) 适用于 Galaxy S26 系列的应用

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

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

GhostLock - Android 封装(indev.ghostlock.s26)

一键式 Android 封装,用于 polygraphene/ghostlock-s26: GhostLock(CVE-2026-43499)已移植到整个三星 Galaxy S26 系列 (Android 16 / GKI 6.12)。单个 APK,三条内核线,运行时参数 匹配——无需针对每个构建版本制作应用变体。

仅可在你拥有或获得明确授权测试的设备上使用。 临时 root 会在重启后消失。在同一次启动中第二次运行漏洞利用可能 导致设备崩溃——重试前请先重启。

免责声明: 使用本软件涉及底层内核 漏洞利用、root 以及启动时声明。本软件按原样提供,不附带 任何形式的担保。你完全自行承担使用风险;作者 不对变砖、启动循环或其他损坏的设备, 也不对任何数据丢失、保修失效或因其使用而产生的损害负责。

覆盖范围:完整的 S26 家族

该漏洞利用按内核线匹配,而非按单个构建版本 (exploit/src/params_table.c 为权威来源;ParamsTable.kt 仅为 UI 判定而镜像该表):

设备代号市场名称SoC内核线
m1qGalaxy S26 (SM-S942x)Snapdragoncn 或 intl(按 CSC)
m2qGalaxy S26+ (SM-S947x)Snapdragoncn 或 intl(按 CSC)
m3qGalaxy S26 Ultra (SM-S948x)Snapdragoncn 或 intl(按 CSC)
m1sGalaxy S26 (SM-S942B)Exynosexynos
m2sGalaxy S26+ (SM-S947B)Exynosexynos

已测试版本(17):S9420ZCS4AZG1、S9470ZCS4AZG1、S9480ZCS3AZF1、 S9480ZCS4AZG1、S942BXXS4AZG5、S947BXXS3AZF1、S947BXXS4AZG5、 S942QOPU1AZDE、S942U1UES4AZG3、S942USQS4AZG3、S947USQS4AZG3、 S9480ZHS4AZG1、S948BXXS4AZG5/6、S948NKSS4AZG3、S948U1UES2AZE1、 S948USQS4AZG3。

未知 OTA 的回退方式与上游 params.c 完全一致:先精确匹配构建版本, 然后同型号 + 3 字符 CSC(OTA 复用),再然后同设备的最新条目 (标记为未验证),否则失败关闭(应用显示 UNSUPPORTED, 原生层以退出码 2 退出)。完全未知的型号会被拒绝——绝不强制。

应用的功能

一个大按钮——Root my S26——运行整个流程,并在 输出卡片中叙述过程:

  1. 设备检查——型号/设备/增量版本/指纹,以及系列 判定(精确 / OTA 复用 / 未验证猜测 / 不支持)。不支持的 构建会在此停止(失败关闭,不消耗启动声明)。
  2. Shizuku——连接时自动使用(uid 2000 shell,与 README 中 adb shell 流程相同的上下文家族)。权限在启动时 请求一次(如果服务器重启则再次请求);Root 流程会等待 授权而不是放弃。如果服务器未运行,应用会打开 Shizuku 管理器以便你启动它,然后回退到应用内 shell。 将应用添加到 Shizuku 的允许列表可完全消除提示。
  3. 暂存——将 preload.so、su_daemon、ksud 复制到 /data/local/tmp (preload.so、cve-2026-43499-root、ksud)并对其执行 chmod。如果你 已按照上游 README 通过 adb push 推送了文件,它们会被 就地使用。
  4. 运行——执行与上游文档完全一致的内容: env LD_PRELOAD=/data/local/tmp/preload.so sh(.so 构造函数运行 链并 _exit;stdout 就是漏洞利用日志),最多尝试 5 次—— 竞态是概率性的。提供 BOOT_FORCE=1 开关,但 重启更安全。
  5. 验证——通过任意通道确认 id 报告 uid=0: 先临时守护进程套接字,然后 KernelSU 风格的 su。这很重要,因为在 完全成功时 su_daemon 会按设计解除其套接字链接并退出 (移交给 KernelSU)——临时套接字已死但 su 可用意味着 已 root,而非损坏。打印启动声明日志尾部并报告已 root / 退出码建议。

其下方:一个单独的 command field + Run as root 行(通过 su 守护进程的 C 协议执行一次性命令;交互式 PTY 不在 v1 范围内),以及一个小的 Reset 链接,用于清除 /data/local/tmp/ghostlock-boot.log,以便无需重启即可重试运行(上游警告这可能导致 panic——重启才是安全的做法)。

项目结构

exploit/                  vendored upstream (Makefile + src/, authoritative)
ksud                      upstream prebuilt KernelSU loader (ARM64 PIE, also in assets)
app/src/main/assets/ksud  staged copy shipped in the APK
app/src/main/assets/      + preload.so / su_daemon after stage-assets.sh
app/src/main/cpp/         optional CMake rebuild of preload.so from exploit/src
app/src/main/java/indev/ghostlock/s26/
  MainActivity.kt         UI (device / stage / run / shell / boot guard)
  ParamsTable.kt          series table mirror (17 builds, 3 lines, 5 codenames)
  DeviceCompat.kt         Build.* identity + series verdict
  ShellRunner.kt          Shizuku (uid 2000) + local fallback, staging
  SuClient.kt             /data/local/tmp/temp_su.sock 'C'-mode client
  GhostlockManager.kt     exit-code interpreter (0/1/2/3/4)
PORTING.upstream.md       porting notes (new firmware = new device_map row)

构建

要求:Android Studio(JBR 21)/ SDK 35 / NDK r26+ / CMake 3.22.1 / JDK 17。

# 1. Build the native payloads with the NDK (upstream flow):
cd exploit && make preload
#   -> build/bin/preload.so, build/embed/su_daemon_aarch64_pie

# 2. Stage them into the APK assets:
./stage-assets.sh

# 3. Build the app:
./gradlew :app:assembleDebug
#   -> app/build/outputs/apk/debug/app-debug.apk

ksud 已经内置(ksud + app/src/main/assets/ksud),因此步骤 1–2 只会生成两个 NDK 输出。app/src/main/cpp/CMakeLists.txt 中的 CMake 目标还可以作为后备方案,在 APK 内从相同源码重新构建 libpreload.so。

CI 构建(针对设备 / SoC 定制)

.github/workflows/build.yml 工作流会构建针对目标设备代号 / 处理器类型定制的应用——本地无需 SDK、NDK 或 Docker。Fork 仓库,然后在仓库的 Actions 标签页 → GhostLock-S26 Device Build → Run workflow,然后设置:

输入选项默认值作用
deviceall / m1q / m2q / m3q / m1s / m2sall设备代号(构建目标)
processorall / snapdragon / exynosallSoC 系列(过滤内核行)
kernel_lineauto / cn / intl / exynosauto固定确切的参数行(auto 根据设备/处理器推导)
tailor开 / 关关将 params_table.c + ParamsTable.kt 裁剪为所选设备/行,以生成更小的单目标载荷
build_typedebug / releasedebugAPK 变体
rebuild_ksud开 / 关开从 polygraphene/KernelSU 的 ksud_ref 重新构建 ksud + kernelsu.ko,或保留内置的预构建版本
kmiandroid16-6.12 / android15-6.6android16-6.12模块编译所用的 KMI(S26 = GKI 6.12)
samsung_hardening开 / 关开CONFIG_KSU_SAMSUNG_KDP/RKP/DEFEX=y(Samsung kdp 凭据、RKP/DEFEX 同步)
no_patch_text开 / 关关禁用实时文本补丁(Samsung Exynos EL2 目标)

此外还有 ksud_ref、ddk_release 和 ksu_manager_apk,用于固定 KernelSU 源码引用 / DDK 镜像 / 捆绑的 Manager APK,以及 sign_release,用于使用 KEYSTORE_BASE64 / KEY_ALIAS / 密钥进行签名。

例如,一个仅 Snapdragon 的 Galaxy S26 Ultra 构建(内核行 cn + intl,其他设备被裁剪掉)将是:device=m3q、processor=snapdragon、tailor=on。

流水线使用 NDK clang 交叉编译原生载荷(preload.so + su_daemon),暂存资源,并使用 Gradle 组装 APK;产物(ghostlock-s26-<devices>-<lines>-<tailored|full>-debug.apk 以及 preload.so、su_daemon、ksud 产物和校验和)会上传到该次运行的 Summary 页面。GitHub Actions 负责检出 + Gradle/SDK 设置——如果配置了上述密钥,Release 构建会自动签名。

KernelSU Manager APK(me.weishu.kernelsu)被捆绑到 app/src/main/assets/kernelsu-manager.apk,用于应用内的“Install KernelSU Manager”流程。CI 会自动获取它;对于本地构建,请在运行 ./stage-assets.sh 之前将 Manager APK 放到 exploit/build/bin/kernelsu-manager.apk(如果缺失会发出警告——没有它就无法出现安装提示)。

设备端构建(Termux,aarch64)

SDK 的 aapt2/NDK 是 x86_64 的,无法在设备上执行。已验证的流程(SDK 位于 ~/android-sdk,Gradle 8.9——AGP 8.5.2 拒绝系统 Gradle 9.x):

# Native payloads with the Termux toolchain (API 35 target, system liblog):
cd exploit
clang -O2 --target=aarch64-linux-android35 -fPIE -pie -Isrc src/su_daemon.c \
  -o build/embed/su_daemon_aarch64_pie
clang -O2 --target=aarch64-linux-android35 -fPIC -Isrc \
  -Wno-unused-parameter -Wno-sign-compare -Wno-unused-function -Wno-macro-redefined \
  src/main.c src/util.c src/bootclaim.c src/slide.c src/fops.c src/attr.c \
  src/root.c src/params.c src/params_table.c src/preload.c \
  -L/system/lib64 -llog -shared -o build/bin/preload.so
cd .. && ./stage-assets.sh

# APK (CMake native step auto-skips without SDK cmake; Termux aarch64 aapt2
# is injected via -P so checked-in files stay workstation-clean):
env ANDROID_HOME=~/android-sdk ANDROID_SDK_ROOT=~/android-sdk \
  JAVA_HOME=$PREFIX/lib/jvm/java-21-openjdk \
  ~/gradle-dists/gradle-8.9/bin/gradle :app:assembleDebug --console=plain \
  -Pandroid.aapt2FromMavenOverride=$(command -v aapt2)

运行

  1. 在 S26 设备上安装 APK,并安装/启动 Shizuku(无线调试或 PC)。
  2. 打开 GhostLock —— 启动时会自动请求 Shizuku 权限; 批准一次即可(该权限持续到 Shizuku 服务器重启)。
  3. 检查 Device 卡片是否显示你的构建为 SUPPORTED/LIKELY。
  4. 点击 Stage,然后点击 Run once。该竞态是概率性的 —— 使用 Retry ×5;多次尝试是正常的。
  5. Check root → 预期输出 uid=0 …。然后在 Root shell 卡片中运行命令。
  6. 成功后,安装/使用 KernelSU Manager(me.weishu.kernelsu); 守护进程会自动延迟加载 ksud(参见 su_daemon.c 的 K 模式)。

Shizuku 是可选的,但强烈推荐:上游流程从 adb shell(uid 2000,shell SELinux 上下文)运行,而应用内回退方案 (untrusted_app)在 /data/local/tmp 上被 LD_PRELOAD/exec 阻止的可能性要大得多。

退出码(每次尝试后显示)

代码含义该怎么做
0成功(socket 已启动,ksud 延迟加载正常)检查 root,使用 shell
1竞态未命中 / 验证失败直接重试(正常)
2不支持的构建(fail-closed)停止;固件需要移植
3carrier/root 失败下次尝试前重启
4本次启动已运行过重启;BOOT_FORCE=1 可覆盖但可能导致崩溃

来源

下载工具