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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2026-0073-Android-ADBD-bypass-POC_zh_CN — CVE-2026-0073-Android-ADBD-bypass-POC汉化版 | Kitploit
工具/GitHubGitHub/ctn-qvo/cve-2026-0073-android-adbd-bypass-poc_zh_cn
Android安全漏洞分析漏洞利用渗透测试学习与教育二进制利用
GitHubctn-qvo/cve-2026-0073-android-adbd-bypass-poc_zh_cn

CVE-2026-0073-Android-ADBD-bypass-POC_zh_CN

CVE-2026-0073-Android-ADBD-bypass-POC汉化版

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库
32653个月前尚未审核

CVE-2026-0073 — Android ADBD TLS 身份验证绕过

EVP_PKEY_cmp() 类型混淆 → 未经授权的 ADB shell

Python 3.10+ CVE-2026-0073 Android 许可证


🔥 概述

Android 的 ADB 守护程序 (adbd) 中存在一个关键的身份验证绕过漏洞,允许本地网络上的任何攻击者在目标设备上获得完整的 shell权限,而无需用户授权。

该漏洞存在于 daemon/auth.cpp 文件中的 adbd_tls_verify_cert() 函数中,其中 EVP_PKEY_cmp() 被用作布尔值。当存储的密钥是​​ RSA 密钥,而提供的 TLS 客户端证书携带的是 非 RSA 密钥(EC P-256 或 Ed25519)时,EVP_PKEY_cmp() 返回 -1(类型不匹配),这在 C/C++ 中为真,因此 authorized = true。

// daemon/auth.cpp 中的易受攻击代码模式
if (EVP_PKEY_cmp(peer_key, stored_key)) { // ← BUG: -1 是真值!
已授权 = true;
}
EVP_PKEY_cmp() 返回值含义C 语言中的真值?结果
1密钥匹配✅已授权(正确)
0键值不同❌已拒绝(正确)
-1类型不匹配✅已授权(BUG)

⚡ 快速入门

安装依赖项

pip install cryptography

运行漏洞利用程序

# 交互式 shell
python adb_tls_auth_bypass.py <TARGET_IP> <PORT>

# 单命令执行
python adb_tls_auth_bypass.py 192.168.1.42 37521 --cmd "id"

# 详细模式(查看完整协议跟踪)
python adb_tls_auth_bypass.py 192.168.1.42 37521 -v --cmd "id"

强制使用特定类型的按键

python adb_tls_auth_bypass.py 192.168.1.42 5555 --key-type ec
python adb_tls_auth_bypass.py 192.168.1.42 5555 --key-type ed25519

默认情况下,脚本会自动尝试 EC P-256 → Ed25519 → EC/TLS 1.2,直到成功为止。


🎯 漏洞利用流程

攻击者目标(adbd)
      │                                    │
│──── TCP 连接 ──────────────────►│
│──── CNXN(明文)────────────►│
│◄─── STLS(TLS 升级请求)──│
│──── STLS 回复 ──────────────────►│
      │                                    │
│════ TLS 1.3 握手 ════════════│
│(已提交 EC P-256 客户证书)│
│ EVP_PKEY_cmp(EC, RSA) → -1 │
│ -1 为真 → authorized=true │
      │════════════════════════════════════│
      │                                    │
│◄─── CNXN(设备信息)──────────│
│──── 打开“shell:” ───────────────►│
│◄─── 好的 ────────────────────────│
│◄──► WRTE/OKAY(shell I/O)──────►│
      │                                    │
【完全 shell 访问权限】

📋 先决条件

要求详情
开发者选项已在目标设备上启用
无线调试已启用(或通过 TCP 端口 5555 使用 ADB)
已存储的 RSA 密钥设备必须至少通过 USB 配对过一次(/data/misc/adb/adb_keys)
网络访问攻击者必须访问 adbd TCP 端口

⚠️ 重要提示: RSA 密钥必须位于 /data/misc/adb/adb_keys 文件中,该文件通过 USB 调试配对(接受“允许 USB 调试?”对话框)填充。无线调试配对(adb pair)将密钥存储在 不同的位置(adb_known_hosts.pb)中,因此不符合此要求。


🛡️ 受影响版本

  • Android 14 (AOSP) — ✅ 已确认存在漏洞
  • Android 15 (AOSP) — 可能存在漏洞(未打补丁的版本)
  • 不同厂商的版本可能有所不同(例如三星 One UI、Pixel 等)。

如何检查补丁级别

adb shell getprop ro.build.version.security_patch

🧪 测试环境

经测试确认可在以下设备上正常运行:

内核:6.1.23-android14-4-00257-g7e35917775b8-ab9964412
平台:Android 14(Android Studio 模拟器)

🔧 比原版有所改进

此分支包含以下几项改进:

  • ✅ 多密钥回退 — 自动尝试 EC P-256 → Ed25519 → EC/TLS 1.2
  • ✅ Ed25519 支持 — 提供更广泛的兼容性的替代密钥类型
  • ✅ TLS 1.2 回退 — 不同的客户端证书流程(握手期间发送与握手后发送)
  • ✅ 增强型证书 — 正确的 X.509 扩展(BasicConstraints、KeyUsage)
  • ✅ 兼容 Windows — 使用线程 I/O 而非 select() 以实现跨平台支持
  • ✅ 增加超时时间 — 在速度较慢的网络上提供更高的可靠性
  • ✅ 详细诊断信息 — 使用 -v 标志显示详细的协议跟踪信息

📁 项目结构

CVE-2026-0073-Android-ADBD-bypass-POC/
├── adb_tls_auth_bypass.py # 主漏洞利用脚本
└── README.md # 此文件

⚠️免责声明

本工具仅供经授权的安全测试和教育用途。未经授权访问计算机系统属于违法行为。测试前务必获得适当授权。作者对本软件的误用不承担任何责任。


📚 参考资料

  • CVE-2026-0073 — MITRE
  • Android 安全公告
  • OpenSSL EVP_PKEY_cmp 文档
  • ADB 协议参考

如果这对您的研究有所帮助,请点个赞⭐

下载工具