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

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

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

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2026-0073-Android-ADBD-bypass-POC — CVE-2026-0073 — Android ADB 守护进程(adbd)通过 EVP_PKEY_cmp 类型混淆实现 TLS 认证绕过。利用 EC/Ed25519 密钥不匹配,通过 WiFi 获取未授权的 shell 访问权限。适用于 Android 14+ 的 PoC 漏洞利用。 | Kitploit
工具/GitHubGitHub/xqi1337/cve-2026-0073-android-adbd-bypass-poc
Android安全漏洞利用Web应用程序漏洞利用密码学渗透测试移动安全身份验证
GitHubxqi1337/cve-2026-0073-android-adbd-bypass-poc

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2026-0073-Android-ADBD-bypass-POC

CVE-2026-0073 — Android ADB 守护进程(adbd)通过 EVP_PKEY_cmp 类型混淆实现 TLS 认证绕过。利用 EC/Ed25519 密钥不匹配,通过 WiFi 获取未授权的 shell 访问权限。适用于 Android 14+ 的 PoC 漏洞利用。

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

CVE-2026-0073 — Android ADBD TLS 认证绕过

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

Python 3.10+ CVE-2026-0073 Android License


🔥 概述

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。

// Vulnerable code pattern in daemon/auth.cpp
if (EVP_PKEY_cmp(peer_key, stored_key)) {  // ← BUG: -1 is truthy!
    authorized = true;
}
EVP_PKEY_cmp() 返回值含义在 C 中为真?结果
1密钥匹配✅已授权(正确)
0密钥不同❌已拒绝(正确)
-1类型不匹配✅已授权(BUG)

⚡ 快速开始

安装依赖

pip install cryptography

运行漏洞利用程序

# Interactive shell
python adb_tls_auth_bypass.py <TARGET_IP> <PORT>

# Single command execution
python adb_tls_auth_bypass.py 192.168.1.42 37521 --cmd "id"

# Verbose mode (see full protocol trace)
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,直到其中一种成功。


🎯 利用流程

   Attacker                          Target (adbd)
      │                                    │
      │──── TCP connect ──────────────────►│
      │──── CNXN (cleartext) ────────────►│
      │◄─── STLS (TLS upgrade request) ──│
      │──── STLS reply ──────────────────►│
      │                                    │
      │════ TLS 1.3 Handshake ════════════│
      │  (EC P-256 client cert presented)  │
      │  EVP_PKEY_cmp(EC, RSA) → -1       │
      │  -1 is truthy → authorized=true   │
      │════════════════════════════════════│
      │                                    │
      │◄─── CNXN (device info) ──────────│
      │──── OPEN "shell:" ───────────────►│
      │◄─── OKAY ────────────────────────│
      │◄──► WRTE/OKAY (shell I/O) ──────►│
      │                                    │
    [FULL SHELL ACCESS]                    │

📋 前提条件

要求详情
开发者选项在目标设备上已启用
无线调试已启用(或通过端口 5555 上的 TCP 使用 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)— 可能受影响(未修补的构建)
  • 厂商特定构建可能有所不同(Samsung One UI、Pixel 等)

如何检查补丁级别

adb shell getprop ro.build.version.security_patch

🧪 测试环境

已在以下环境中测试并确认可正常工作:

Kernel:   6.1.23-android14-4-00257-g7e35917775b8-ab9964412
Platform: Android 14 (Android Studio Emulator)

🔧 相较原版的改进

此分支包含多项增强功能:

  • ✅ 多密钥回退 — 自动尝试 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    # Main exploit script
└── README.md                 # This file

⚠️ 免责声明

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


📚 参考资料

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

如果这对你的研究有帮助,请点个 ⭐

下载工具