车机IVI漏洞挖掘技术详解
1. IVI系统概述
IVI(In-Vehicle Infotainment)是指安装在汽车中的信息娱乐系统,集成了多种功能和服务,旨在提供丰富的娱乐、信息和通信体验。不同车厂可能有不同名称:
- Head Unit (HU):车辆中心控制单元
- Infotainment System:整合信息和娱乐功能的车载系统
- 中控屏
IVI系统通常是车厂基于Android系统进行裁剪修改后定制化生成的系统。
2. 前置知识
2.1 ADB调试工具
Android调试桥(adb)是一种多功能命令行工具,可用于:
- 安装和调试应用
- 访问Unix shell
- 管理Android设备
官方文档:https://developer.android.com/studio/command-line/adb?hl=zh-cn
2.2 连接车机ADB的方法
2.2.1 线束ADB连接
- 通过物理接口连接,不同车厂的ADB接口可能不同:
- 通用接口:如micro USB
- 定制接口:特殊设计的连接口
2.2.2 无线ADB连接
条件:IVI有WIFI功能
步骤:
- 确保电脑和车机在同一WIFI下
- 执行命令:
adb connect device_ip_address:5555 - 验证连接:
adb devices
2.3 SCRCPY屏幕投射
项目地址:https://github.com/Genymobile/scrcpy
功能:通过ADB通道进行车机屏幕显示
2.4 工程模式
车机内置的隐藏模式,可开启:
- ADB调试
- 查看logcat日志
- 其他隐藏功能
进入方法(因车厂而异):
- 多次点击屏幕特定位置
- 拨号界面输入特定代码
- 车主社区或客服咨询
3. 漏洞挖掘技术
3.1 工程模式发现
在没有shell的情况下,发现工程模式可开启ADB shell;已有shell时,可获取更多车机信息(VIN、PDSN等)。
寻找方法:
- 电话拨号输入特定代码
- 连续点击屏幕特定区域
- 查阅车友会资料或咨询客服
3.2 日志收集与分析
3.2.1 logcat日志
Android日志记录工具,可捕获:
- 应用程序日志
- 系统日志
- 调试信息
关键操作:
- 查找敏感数据:
logcat | grep http - 查找API接口
- 查找车机VIN、SN码
- 查找TBOX服务调试信息
3.3 APK安全分析
3.3.1 APK逆向分析
将车机内部APK导出进行逆向分析,可能发现:
- 接口泄露
- 硬编码凭证
- 其他安全漏洞
3.3.2 接口泄露
可能导致:
- 攻击云端TSP平台
- 远程获取车辆信息
- 远程控制车辆功能
3.3.3 硬编码问题
案例:系统供应商将ROOT密码存放在系统应用中,攻击者逆向后可轻松提权
3.3.4 APK漏洞利用
案例:逆向车载音乐APP可获取VIP权限(参考:https://xz.aliyun.com/t/12972)
3.4 系统文件分析
3.4.1 ADB验证程序
位置:system目录下
案例:绿盟技术博客提到的verify_sh程序(参考:https://blog.nsfocus.net/tbox/)
3.4.2 U盘挂载文件漏洞
案例:Bosch车机漏洞(参考:https://github.com/ea/bosch_headunit_root)
- 漏洞文件:/etc/udev/scripts/mount.sh
- 漏洞点:
$mountdir参数未过滤导致目录穿越 - 利用方法:
- 构造恶意U盘信息
- 在U盘目录下放置反弹shell脚本
- 触发挂载执行
3.5 服务安全测试
3.5.1 Telnet服务
案例:腾讯科恩实验室对特斯拉Model S的攻击(参考BlackHat论文)
- 使用nmap扫描开放端口
- 发现开放23端口可直接连接
3.5.2 GPS服务欺骗
工具:
- HackRF/BladeRF等无线设备
- GPS-SDR-SIM(https://github.com/osqzss/gps-sdr-sim)
限制:现代车辆可能使用多源定位(GPS+基站+其他系统)
3.5.3 蓝牙安全测试
测试方向:
- 历史漏洞测试(如Braktooth拒绝服务攻击)
- 功能测试(如未授权连接漏洞)
案例:星舆实验室对特斯拉Model3的测试(参考YouTube视频)
3.5.4 WIFI安全测试
3.5.4.1 钓鱼攻击
工具:Fluxion
原理:
- 阻塞原始网络
- 创建同名克隆网络
- 诱导用户输入密码
- 捕获握手包验证密码
3.5.4.2 暴力破解
步骤:
- 使用aireplay-ng获取握手包
- 对握手包进行暴力破解
3.5.4.3 热点拒绝服务
目的:强制设备重新连接以获取握手包
命令:mdk4 wlan0mon d -B MAC地址 -c 6
3.6 提权技术
3.6.1 信息收集提权
案例:从系统APK中发现的硬编码ROOT密码
3.6.2 SU提权
传统Linux提权方法,在车机中较少见
3.6.3 ADB提权
命令:adb root
3.6.4 漏洞提权
3.6.4.1 CVE-2013-6282
案例:腾讯科恩实验室对特斯拉Model S的攻击
- 影响内核版本:2.6.36
- 漏洞描述:ARM v6/v7架构Linux内核中get_user/put_user接口未验证目标地址
3.6.4.2 CVE-2016-5195(脏牛漏洞)
案例:2016款本田Pilot车机ROOT提权(参考:https://github.com/jersacct/2016PilotOneClick)
4. 总结与展望
车机IVI漏洞挖掘涉及多个层面,从物理接口到系统服务,从应用层到内核层。由于车联网安全的特殊性(设备获取困难),期待未来出现模拟真实车机环境的靶场环境。
5. 参考资源
- ADB官方文档:https://developer.android.com/studio/command-line/adb?hl=zh-cn
- 车友会案例:https://club.autohome.com.cn/bbs/thread/e70a39dc0bb6d265/106799924-1.html
- 绿盟技术博客:https://blog.nsfocus.net/tbox/
- Bosch车机漏洞:https://github.com/ea/bosch_headunit_root
- GPS欺骗工具:https://github.com/osqzss/gps-sdr-sim
- 特斯拉攻击论文:https://www.blackhat.com/docs/us-17/thursday/us-17-Nie-Free-Fall-Hacking-Tesla-From-Wireless-To-CAN-Bus-wp.pdf
- 本田Pilot提权工具:https://github.com/jersacct/2016PilotOneClick