GainSec/3rdParty-Carplay-AndroidAuto-Dongle-Security-Research

GitHub: GainSec/3rdParty-Carplay-AndroidAuto-Dongle-Security-Research

Mayton AutoPro2 无线 CarPlay 适配器的授权安全研究公开发布包,包含漏洞发现、攻击面分析、逆向工程证据及配套工具。

Stars: 0 | Forks: 0

# AutoPro / Mayton AutoPro2 研究发布 针对 Mayton AutoPro2 / ly2601 无线 CarPlay 适配器系列授权安全研究的公开发布包。本仓库保留了有用的文档、发现、证据摘要和工具,同时排除了原始固件镜像、提取的文件系统、payload 包、本地代理说明以及个人/API 密钥。 ## 目标 | 字段 | 值 | |---|---| | 研究目标 | Mayton AutoPro2 无线 CarPlay 适配器 / ly2601 CarPlay 适配器 | | 公开产品链接 | | | 相关产品线 | | | 品牌 | Mayton | | 固件供应商字符串 | Lylink / Liaoyuan | | 主要研究固件 | `24010615.2601.1` | | 同时分析的早期镜像 | `23121917.2601.1` | | SoC | Allwinner V831, ARM Cortex-A7 | | 内核 | Linux 4.9.118 | | 主要设备名称 / SSID | `MAYTON_Pro2-3C48` | | 热点上的设备 IP | `192.168.1.101` | | 测试设备的 Bluetooth MAC | `14:85:54:03:1F:B7` | | 正常 USB VID:PID | `05ac:12a8` | | CDC/A2A 模式 VID:PID | `0525:a4a7` | | FEL boot ROM VID:PID | `1f3a:efe8` | 该适配器作为车载主机与手机之间的无线桥接器。它开放了 Wi-Fi AP 服务、Bluetooth RFCOMM 服务、USB gadget 模式、Web/CGI 更新接口以及专有的 Lylink/CarPlay 控制路径。 ## 仓库地图 | 路径 | 包含内容 | |---|---| | `docs/` | 概述文档、部署说明、协议说明和测试计划。 | | `notes/NOTES/` | 有组织的工作研究笔记。 | | `findings/` | 发现、线索、基于证据的发现说明以及脱敏复现占位符。 | | `reports/disclosure/` | 供应商安全通告、CVE 提交草案、披露包材料及状态说明。 | | `evidence/` | 精选的日志、扫描结果、逆向工程笔记、非机密配置和证据清单。 | | `tools/` | 源码树、脚本、Web UI 和工具 README。 | | `packages/autopro-offline/` | 排除了二进制/shim blob 的离线部署包骨架。 | ## 漏洞摘要 | ID | 标题 | 严重程度 / CVSS | CWE | 简短描述 | |---|---|---:|---|---| | VULN-001 | Bluetooth RFCOMM 持久 DoS | 6.5 | CWE-404 | 畸形或中断的 RFCOMM 处理可导致 Bluetooth 服务拒绝连接,直到进行物理断电重启。 | | VULN-002 | 未认证的 Bluetooth 服务 | 7.4 | CWE-306 | 用于无线 iAP、Android Auto 和 HFP 的 RFCOMM 通道在测试中无需配对即可接受连接。 | | VULN-003 | 未认证的未签名固件更新 | 8.8-9.8 | CWE-494 | HTTP CGI 更新流程在没有身份验证或加密签名验证的情况下接受了更新材料。 | | VULN-004 | FEL 模式全芯片访问 | 6.8 | CWE-1191 | 复位触发的 Allwinner FEL 模式允许在物理访问的情况下进行 SPI flash 读写和启用 JTAG。 | | VULN-005 | 硬编码的默认凭据 | 7.5 | CWE-798 | 固件在所测试的型号系列中使用了共享的 root 和 Wi-Fi 凭据。 | | VULN-006 | 弱密码哈希 | 5.3 | CWE-328 | Root 凭据使用旧版 DES crypt 存储。 | | VULN-007 | Airborne 之前的 CarPlay SDK 暴露 | 8.8 | CWE-416 / CWE-119 | `libcarplay.so` 和 `rcpservice` 早于 2025 年的 AirBorne 补丁;`rcpservice` 缺少 stack canary。 | | VULN-008 | 云凭据暴露 | 7.5 | CWE-798 | CGI 二进制文件包含硬编码的 Aliyun STS 相关材料。 | | VULN-009 | 弱熵行为 | 5.9 | CWE-331 | 启动脚本将 `/dev/random` 替换为指向 `/dev/urandom` 的 symlink。 | 发现详情位于: - `findings/findingslist.md` - `findings/leads.md` - `reports/disclosure/DISCLOSURE-PROPER/vendor-security-advisory.md` - `reports/disclosure/DISCLOSURE-PROPER/cve-submissions.md` - `notes/NOTES/attack-surface.md` - `notes/NOTES/rfcomm-crash-finding.md` - `notes/NOTES/recv-overflow-analysis.md` 负面结果也包括在内: - HFP AT 命令 fuzzing:测试了 344 个 payload,未发现崩溃。 - `btapp recv()` 溢出假设:已排除;调用者分配了 0xffff 缓冲区。 - CGI 命令注入:对于已审查的 `system()` 调用已排除;这些调用使用了硬编码字符串。 - `lylinkapp` 端口 8299:仍未完全逆向;现有笔记中未确认崩溃。 ## 攻击面 | 表面 | 详情 | |---|---| | Wi-Fi AP | `192.168.1.101` 处的设备热点,WPA2-PSK,最大客户端数 8,通常在 5 GHz 信道 36 上观察到。 | | HTTP/CGI | 端口 80 上的 BusyBox HTTP 服务器,包含 CGI 更新和诊断 endpoint。 | | Lylink 控制 | 端口 8299 上的专有 TCP 服务,由控制工具使用。 | | CarPlay/iAP | `rcpservice`, `libcarplay.so`, iAP/iAP2 库,以及多个与 CarPlay 相关的端口。 | | Bluetooth | `btapp`, BlueZ 5.63 分支,测试中暴露了 RFCOMM 通道 1、2 和 7。 | | USB 正常模式 | 类似 Apple 的 USB gadget 模式,`05ac:12a8`。 | | USB CDC/A2A 模式 | 启动后复位模式,`0525:a4a7`,串口/广播设备信息路径。 | | FEL boot ROM | 插入 USB 时复位模式,`1f3a:efe8`,Allwinner 底层访问。 | | 文件系统 | SquashFS root/customer 分区,JFFS2 logo 和 UDISK 可写区域,`/tmp` tmpfs。 | ## 工具套件 | 工具 | 路径 | 用途 | |---|---|---| | `cpctl` | `tools/cpctl/` | CarPlay Web 控制服务,将 Lylink 数据包发送到 `lylinkapp:8299`。 | | `cpcp` | `tools/cpcp/` | 基于 `libcarplay.so` 和 Civetweb 的直接 CarPlay 库原型。 | | `carplay-shim` | `tools/carplay-shim/` | 用于 `libcarplay.so` 逆向工程的运行时追踪 shim。 | | `carplay-sink` | `tools/carplay-sink/` | 用于 Kali/Linux 主机测试的 USB CarPlay sink 原型。 | | `cpcp-further-RE` | `tools/cpcp-further-RE/` | 专注于 `CreateCarPlay()` 和 config-struct 研究的笔记。 | | scripts | `tools/scripts/` | Bluetooth/RFCOMM fuzzer、抓取辅助工具、崩溃监控器、探测工具和打包辅助工具。 | ## 证据和报告 | 路径 | 用途 | |---|---| | `evidence/logs/` | Bluetooth fuzzing、RFCOMM、btmon 和运行时日志。 | | `evidence/scans/` | SDP、GATT 和 LAN 扫描输出。 | | `evidence/re/` | `libcarplay`, `lylinkapp` 和攻击面的静态逆向工程笔记。 | | `evidence/configs/` | 从固件中提取的运行时/配置文件。 | | `evidence/manifests/` | 证据包清单和基于证据的发现/线索。 | | `reports/disclosure/` | 面向供应商的安全通告和 CVE 提交草案。 | ## 排除项 公开代码树有意排除了: - 原始固件镜像和 SPI flash 转储。 - 提取的根文件系统和备份树。 - Payload 目录和 SWUpdate payload 包。 - 共享库 blob 和未经批准的二进制 blob。 - 预构建的工具二进制文件。 - 本地代理说明和个人/API 凭据。 - 内部发布清单和本地制品索引。 保留的固件哈希(用于溯源): | 制品 | SHA256 | |---|---| | `Possible-FIrmware/test.img` | `ef293795ce2df597267cdcbf7e8ca41e925c56ed11288e5fa476848d2753bb8c` | | `Possible-FIrmware/update.img` | `e3c2004dd6a8c267f00a5df06bb7d793a0af75a9295b000150c22826284c009a` | | `firmware-dump/spinor-full.bin` | `5f36838550eb280ecff3f47c805026f2ef5b8b96f5b940437cdcb78c53faa72c` | ## 快速检查 在项目根目录下执行,以下操作不应列出原始固件 blob 或 payload 目录: ``` find Release -type f \( -name '*.img' -o -name '*.rom' -o -name '*.iso' -o -name '*.qcow2' -o -name '*.vmdk' -o -name '*.so' \) -print find Release -type d \( -path '*/payload' -o -path '*/payloads' -o -path '*/test_rootfs' -o -path '*/update_rootfs' -o -path '*/test_extracted' -o -path '*/update_extracted' -o -path '*/dongle-binaries' \) -print ``` ## 研究边界 此软件包用于授权的安全研究、供应商披露、可重复性验证和防御性审查。概念验证 payload 和原始漏洞利用制品不包含在公开发布代码树中。
标签:Cutter, IoT安全, 主机安全, 云资产清单, 实时处理, 客户端加密, 密码管理, 嵌入式系统, 漏洞披露, 车联网安全, 逆向工具, 逆向工程, 配置审计