xqi1337/poc-CVE-2026-0073
GitHub: xqi1337/poc-CVE-2026-0073
针对 Android 无线 ADB TLS 双向认证逻辑缺陷(CVE-2026-0073)的 Python PoC,利用非 RSA 证书绕过身份验证并执行远程命令。
Stars: 0 | Forks: 0
# CVE-2026-0073 PoC(无线 ADB TLS 认证绕过)
此目录包含针对 CVE-2026-0073 的 Python 概念验证(PoC)。
## 摘要
CVE-2026-0073 是 ADB daemon 证书验证(位于 `auth.cpp` 中的 `adbd_tls_verify_cert`)中的一个逻辑缺陷。
存在漏洞的校验逻辑会将 `EVP_PKEY_cmp(...)` 的任何非零返回值都视为匹配成功。
预期的比较结果处理方式应为:
- `1` = 密钥匹配
- `0` = 密钥不匹配
- 负值 = 错误 / 不支持的比较
在受漏洞影响的构建版本中,负值被视为真,从而可能错误地将证书标记为已授权。
## `poc-cve-2026-0073.py` 的功能
该脚本将执行以下操作:
1. 创建非 RSA 客户端证书(`ec` 或 `ed25519`)。
2. 连接到目标 ADB TCP 服务。
3. 执行 CNXN -> STLS -> TLS 握手流程。
4. 通过存在漏洞的证书比对路径进行身份验证。
5. 打开命令服务(`shell:`,并带有 `exec:` 回退机制)。
6. 打印命令输出。
## 前置条件
- Python 3.10+(推荐)
- `cryptography` 包
- 目标设备启用了无线 ADB
- 目标 ADB 端口的网络可达性
- 拥有测试目标设备授权的权限
安装依赖:
```
pip install cryptography
```
## 使用说明
发现目标 ADB 服务(如有需要):
```
adb mdns services
```
运行 PoC:
```
python3 poc-cve-2026-0073.py [port] [command] [key_type] [--verbose]
```
参数:
- `target_ip`:目标 Android 设备的 IP 地址
- `port`:ADB 端口(默认:`5555`)
- `command`:要执行的命令(默认:`id`)
- `key_type`:`ec` 或 `ed25519`(默认:`ec`)
- `--verbose`:启用协议调试日志
示例:
```
python3 poc-cve-2026-0073.py 192.168.1.100 5555 id
python3 poc-cve-2026-0073.py 192.168.1.100 5555 whoami ec --verbose
python3 poc-cve-2026-0073.py 192.168.1.100 5555 getprop ed25519
```
## 典型的成功输出
```
[*] Opening service: 'shell:id'
[*] After OPEN, received: OKAY arg0=2 data=b''
[+] Stream open (local_id=1, remote_id=2)
[+] Command output:
----------------------------------------
uid=2000(shell) gid=2000(shell) ...
----------------------------------------
[+] Exploitation successful.
```
## 故障排除
- `Connection refused`
- 无线 ADB 可能未启用。
- 目标 IP/端口错误。
- `certificate_unknown`
- 设备可能已修复此问题。
- 或者目标在此认证路径下没有符合条件的受信任密钥状态。
- 等待响应超时
- 确认网络路径畅通且目标 ADB socket 可用。
- 使用 `--verbose` 重试以获取 packet 级别的跟踪信息。
## 关于补丁级别检查的说明
基础操作系统安全补丁级别(SPL)与 Mainline 模块的补丁更新可能存在差异。
一台设备可能会在显示较旧的每月 SPL 的同时,接收到较新的 ADB 模块修复。
有用的检查命令:
```
adb shell getprop ro.build.version.security_patch
adb shell pm list packages --apex-only | grep adbd
adb shell dumpsys package com.google.android.adbd | grep -E "versionCode|versionName|lastUpdateTime"
```
## 负责任的使用
仅在授权环境中使用此 PoC(自有的实验室设备、获得明确许可或经过批准的测试)。
请勿对您不拥有或未获得书面授权测试的系统运行此程序。
## 参考
- Android 安全公告(2026 年 5 月)
- CVE-2026-0073 的 NVD 条目
- AOSP ADB 源码(`daemon/auth.cpp`)
标签:ADB, Android, DSL, PE 加载器, PoC, Python, 底层编程, 无后门, 暴力破解, 目录枚举, 移动安全, 逆向工具