前言
车机在整车中位置醒目且用户可直接接触,因此车机的安全性被各大汽车厂商高度重视,能封的封,能锁的锁,被“破解”了马上更新,保留的突破口很少。
这篇文章主要盘点一下“破解”车机的一些常用方法和思路。
常规方法
通常的方法有两种,找浏览器安装第三方APK和进工程模式开ADB调试。
01
浏览器
现在大部分车机的浏览器都不会对用户开放,但是可以尝试通过某些应用的超链接跳转到某些网站,实现应用的下载和安装。
02
工程模式
进入工程模式的方法主要包括:
•通过组合键(多媒体方向盘按键)进入工程模式
•通过连续点击某模块(通常是系统版本、屏幕某处)进入工程模式
•通过交叉点击某模块(通常是显示、设置、通用等)进入工程模式
•通过拨号盘拨号(蓝牙电话)进入工程模式
更多工程模式的介绍可以参考:
https://orangey.blog.csdn.net/article/details/124604890
https://zhuanlan.zhihu.com/p/528507456
想要通过运气尝试进入工程模式,一般很难,并且车厂可以通过版本更新很快的修复,非常不稳定。
如果可以有固件逆向配合或者一些开源信息辅助,成功率往往会大大提升。
通过外接设备
在这里我们介绍另一种思路,通过USB外接设备,获取车机权限。
01
USB模式
这里我们首先简单介绍一下USB的模式,一般车上会配置一个到多个USB接口,这些USB接口大部分都只支持充电,但是一般会留有一个或两个支持数据传输。
用于数据传输的USB接口分为主模式和从模式两种。当车机USB口作为从模式时,可以被adb调试,这个模式下无法识别U盘这些设备;当车机USB口作为主模式时,可以读取U盘数据,也支持外接设备,包括鼠标、键盘、游戏控制器等。
所以这里有一个tip,如果车上只有一个USB口作为传输口,那我们要想办法找到USB主从模式转换的开关,或者找到打开adb调试的开关,这样有可能打开车机的有线调试。
02
U盘
U盘作为外接设备,几乎所有车机都是支持读取的,并且绝大多数车机会对U盘的内容识别进行过滤。对于U盘的攻击手法,笔者目前了解到的有三种:
第一种是在车机安卓原生界面下或工程模式下,会识别U盘内的安装包文件,可以进行应用安装。
第二种是文件解析漏洞,构造带有shellcode的音频或视频文件,当播放器解析文件时触发漏洞。
这种通常为DOS类漏洞。参考http://tttang.com/archive/591/
第三种是USB目录穿越漏洞,通过修改USB设备的名称,构造目录穿越,劫持文件,参考:
https://www.exploit-db.com/exploits/45192
https://bugs.chromium.org/p/project-zero/issues/detail?id=1583
03
键盘
外接键盘,主要是通过快捷键或组合键,开启一些未授权页面,从而跳转到Android原生页面。常用的快捷键有:
其中?对应键盘”win”键。应用快捷键根据车机不同,开放功能也不同。比如某车机”win”+”p”是音乐、某车机”win”+”s”是短信、比如”Alt”+”Tab”是切换后台应用等等。
那么我们就可以通过该快捷键,看看后台应用里有没有可利用的服务。比如”设置”,“工程模式”,当然,如果历史进程中没有工程模式,也可以把车开到4s店保养一下,修车师傅一般会进入工程模式看一些日志之类的(笑)
如果这些快捷键都没有用的话,可以试试其他组合,可能会有其他收获。比如笔者曾经在某车机上使用”Ctrl”+”M”调出了Android的原生页面-应用管理,可以结束某进程等。
04
鼠标
当车机外接鼠标外设时,可以尝试点击右键,看看是否有返回或者其他功能。笔者目前为止,并未发现某车机可以通过鼠标右键功能跳转未授权页面,但是不排除某些车机系统开发人员忽略掉这一问题,具体情况,大家可以在自己车机上试一试,看有没有新的发现。
05
外接网口
可以插入USB转网口线,查看USB是否作为外接网口,如果是,则继续扫描端口和服务。。。
总结
“破解”车机的思路,本文就总结以上几点,当然还有组件漏洞、内核漏洞、TEE漏洞等等,笔者将在后续的文章中分享给大家。也欢迎各位大佬讨论、补充,我们也是希望国内的厂商把汽车安全做的更好,更完善,给大家的安全出行提供一份保障。
原文始发于微信公众号(华云安):车联网安全系列之–“破解”车机的一些思路