## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-0XBINDER-CVE-2026-0073
# ADB TLS 认证绕过利用工具 (CVE-2026-0073)
一个自动化的网络扫描与利用工具,针对 **CVE-2026-0073** ——Android 调试桥守护进程 (`adbd`) 中的漏洞,该漏洞允许通过无线调试实现未授权的远程代码执行 (RCE) 及交互式 shell 访问。
此工具专门针对现代 Android 设备(Android 13+)进行了优化,具备 **mDNS 自动发现** 功能,可定位随机化的 ADB 端口,并提供 **完全交互式的原始 PTY shell** 。
🚨 漏洞概要(Android 安全公告)
root@kitploit:~
CVE ID: CVE-2026-0073
Android 问题 ID: A-469080888
影响: RCE(远程代码执行)
严重性: 严重
官方受影响版本: Android 14、15、16、16-qpr2……部分声称某些 Android 13 设备也受影响
⚠️ **免责声明:** _此工具仅供教育和授权的安全研究目的使用。请勿用于你未拥有或未获得明确测试许可的网络或设备。_
* * *
## 📖 背景与参考资料
现代 Android 设备在无线调试中使用 TLS 双向认证来防止未授权连接。然而,CVE-2026-0073 暴露了一个加密缺陷:当 `adbd` 处理使用非 RSA 密钥(例如椭圆曲线 `ec` 或 `ed25519`)的客户端证书时,内部的 OpenSSL `EVP_PKEY_cmp` 函数会返回一个未被正确处理的错误码,从而**完全绕过认证检查** 。
关于此漏洞的深入技术分析,请参阅以下资源:
* **漏洞深度解析:** Barghest - CVE-2026-0073 ADB TLS 认证绕过
* **实际利用案例:** Mobile Hacker - 通过无线调试实现 Android RCE:从网络访问到 Shell
> **关于设备受影响的说明:** 虽然此漏洞通常记录于特定 Android 版本,但实际测试在不同 OEM 实现中显示出了令人惊讶的结果。正如 Mobile Hacker 博客作者所述: _"在测试过程中,出于某种原因,我竟然也能利用 Android 13,具体见图 1。特别是 Oppo Reno5 Z。"_
* * *
## ⚙️ 先决条件
1. **Python 3.7+**
2. 系统 `PATH` 中已安装 **OpenSSL** 并可用。
3. `zeroconf` Python 库(用于网络扫描)。
root@kitploit:~
# 安装所需的 Python 包
pip install zeroconf
* * *
## 🚀 用法
### 1\. 自动模式(推荐)
直接运行脚本,无需任何参数。它将在本地网络侦听 4 秒,捕获启用无线调试的 Android 设备的 mDNS 广播,并向你显示一个菜单。
root@kitploit:~
python3 adb_tls_exploit.py
**示例输出:**
root@kitploit:~
[*] Scanning local network for Android 13+ devices for 4 seconds...
[+] Found active Android devices:
[1] 192.168.1.15 : 43881 | Pixel 7
[2] 192.168.1.42 : 39105 | Oppo Reno5 Z
Select a device to target [1-2]: 2
============================================================
ADB TLS Auth Bypass -> Interactive Shell
============================================================
[*] Target : 192.168.1.42:39105
[*] Key type : ec
[*] Generating ec self-signed certificate via openssl...
[+] Server requested STLS. Upgrading to TLS...
[+] TLS handshake accepted — mutual authentication bypassed!
[*] Authenticated! Opening interactive shell service...
[+] Shell obtained! (Press Ctrl+D to exit)
Reno5Z:/ $ id
uid=2000(shell) gid=2000(shell) groups=2000(shell),1004(input),1007(log),1011(adb)...
### 2\. 手动模式
如果你已知目标 IP 和随机端口(或者你正在攻击一个已打补丁但仍需 TLS 的旧版设备,端口为 `5555`),可以绕过扫描器:
root@kitploit:~
python3 adb_tls_exploit.py <IP_ADDRESS> <PORT> [--key ec|ed25519] [--verbose]
# 示例
python3 adb_tls_exploit.py 192.168.1.50 42069 --key ec
* * *
## 🛠️ 工作原理(内部机制)
1. **mDNS 侦察阶段:** 脚本利用 `zeroconf` 库被动侦听 `_adb-tls-connect._tcp.local.` 服务。这使得它能够即时映射目标,无需嘈杂或缓慢的 TCP 端口扫描。
2. **明文握手:** 脚本连接目标端口,发送一个标准的 ADB `CNXN` 数据包,宣告支持 TLS(`tls_auth`)。
3. **STLS 升级:** Android 设备以 `STLS` 响应,要求建立安全连接。
4. **利用(TLS 握手):** 脚本将套接字包装为 TLS,并使用椭圆曲线(`ec`)或 `ed25519` 密钥呈现一个即时生成的自签名证书。
5. **认证绕过:** `adbd` 尝试验证密钥。由于密钥不是 RSA,`EVP_PKEY_cmp` 返回 `-1` 或 `-2`。Android 内部的漏洞代码错误地将此非零返回值解释为成功的加密匹配。
6. **流复用:** 一旦 TLS 隧道建立,工具发送一个目标为 `shell\x00` 的 `OPEN` 数据包,并将标准输入/输出流连接到你的终端,从而为你提供一个完整的非特权 shell()。
* * *
## ⚠️ 故障排除
* **"[-] TLS Handshake rejected" 或 "certificate_unknown" 警告:**
* 设备可能已针对 CVE-2026-0073 打补丁(安全补丁级别 >= 2026 年 5 月)。
* 该设备 _从未_ 与任何授权 PC 配对过,因此其 `/data/misc/adb/adb_keys` 文件完全为空。利用需要密钥库中至少存在一个已有的(即使是无关的)密钥,才能触发错误的循环比较。
* **"OpenSSL failed" / "Ensure 'openssl' is installed":**
* 你需要在主机系统上安装 OpenSSL 二进制文件(例如 `apt install openssl`、`brew install openssl`,或通过 Windows 二进制文件安装)。
* **扫描器未发现任何设备:**
* 确保攻击机与 Android 设备位于完全相同的 Wi-Fi 网络子网中,并且 AP 隔离功能已禁用。