TSP平台渗透测试初探


1.车联网网络架构简介

车联网的网络架构通常包括四层,分别是感知层、传输层、平台层和应用层。感知层是车联网的最底层,也是最靠近车辆的一层。它包括车辆上的各种传感器和执行器,例如GPS定位器、车载通信模块、摄像头、雷达、惯性传感器、轮速传感器等等,这些设备可以收集车辆的状态信息、位置信息等数据。 传输层是车联网的数据传输层,负责将感知层收集到的数据传输到平台层进行处理。传输层一般使用无线网络进行通信,包括4G/5G移动通信、车载WiFi、车辆自组网(VANET)、车辆对车辆通信(V2V)等等。 平台层是车联网的核心层,负责收集、存储、处理和分析来自传输层的数据,并向上层提供服务接口。平台层包括TSP平台、车联网云平台、车联网数据中心等等,它们使用大数据、云计算、人工智能等技术,对车辆数据进行处理和分析,提供各种服务和应用。应用层是车联网的最上层,包括各种应用程序和服务,例如车辆远程控制、车辆保养提醒、车辆健康状况监测、驾驶行为评估等等。应用层可以基于平台层提供的服务接口,将车辆数据和服务整合到各种应用中,向用户提供丰富的功能和服务。
车联网的各个层次都有相应的资产,以下是一些常见的车联网各层次的资产:

1、感知层:车载传感器、摄像头、雷达等设备。
2、传输层:车载通信模块、卫星通信模块、基站等设备。
3、云平台层:服务器、数据库、存储设备等。
4、应用层:车联网应用程序、车载设备控制系统、车载娱乐系统等。

2.TSP平台简介

TSP(Telematics Service Provider)汽车信息服务提供商,也可叫做汽车远程服务提供商。其中Telematics是远距离通信的电信(Telecommunications)与信息科学(Informatics)的组合词,是连接车辆和云平台的关键平台,负责管理车辆数据、提供车辆服务等功能。
TSP主要负责汽车与各类服务商之间的数据采集与供应,进而为车主提供更加多样化服务,其服务内容涵盖导航服务、社交服务、娱乐服务、远程保养服务、安全服务等。除专门的TSP平台服务商(如休斯、飞驰镁物等)外,目前,许多第三方服务商(如整车厂商、电信运营商、互联网内容服务商等)亦开始进入TSP领域,构建属于自己的TSP平台。
在车联网产业链中,TSP处于核心地位,掌握TSP市场即能够在车联网产业中拥有较强话语权,因此越来越多的企业进入TSP平台布局。TSP的主要参与者可以分为4大类型:整车企业、互联网公司、电信运营商以及第三方专业服务商。现阶段,整车企业与互联网公司凭借着拥有产品生产的控制权、掌握核心数据和强大的技术优势,成为TSP的主导参与者。TSP参与主体代表企业如下:

参与主体类型代表企业企业背景
整车企业亿咖通吉利
仙豆智能长城魏牌
安吉星上汽通用
互联网公司百度车联百度
腾讯车联腾讯
电信运营商中移智行中国移动
联通智网中国联通
天翼物联中国电信
第三方专业服务商四维图新/
北斗星通/
九五智驾/
飞驰镁物埃森哲
科大讯飞/
博泰车联网/

3.场景分析

试想一下你即将下班,然而你的车停在室外被阳光沐浴了一天。此时你拿出手机,打开app远程控制汽车打开空调,当你进入汽车时车内已经是舒适的温度。

此场景的数据流如下:

不同的厂商及供应商采用的方案在细节上会有不同,一般来说大体上的顺序是不变的,我们简单的说明一下每一个流程:
1、请求打开空调(Https):APP发送请求到TSP平台,通常该消息包使用https或者其他非对称加密算法进行加密传输。
2、激活TBox(SMS):在之前的章节已经介绍为什么会有SMS激活的步骤(省电)。
3、激活成功(Https):这个动作是TBox主动连接TSP平台,表示TBox已经启动成功,通常TBox与TSP通讯也是加密的。
4、请求打开空调(Https):TSP平台下发请求到TBox(加密通讯)。
5、发送打开空调消息集(CAN):通常来说TBox在硬件中都集成一块可以处理CAN消息的MCU,TBox在得到TSP的指令后系统组合对应的CAN指令集合发送的CAN总线(或者LIN总线)。
6、转发消息集到ECU:不同厂商在此处实现方式有些许差别,一部分厂商使用gateway(CAN网关)与TBox进行连接,负责转发CAN消息到ECU,一部分厂商是直接将TBox接入到CAN总线,作为总线上的一个节点。
7、ECU返回结果消息集(CAN)。
8、转发结果消息集(CAN)。
9、返回操作结果:返回消息通常也是加密的。
10、回复APP操作结果:从步骤1到步骤10通常需要一定时间,为了保证效果通常APP会采取心跳轮询或者直接使用websocket长连接进行传输。

4.攻击面分析

TSP服务器车联网解决方案的网络中枢,通常部署在云服务器中,我们可以使用针对常规云服务的渗透测试手法和用例对其进行测试。
TSP平台的地址通常不会直接提供给车主及用户。可以通过以下两种方式定位忘了地址:
1、通过APP定位TSP地址:可以通过针对APP的流量进行抓包分析获取TSP平台的网络地址,我们将此地址简称app服务器。
2、通过TBox的shell或伪基站TSP地址:TBox也会与TSP平台进行交互,通过分析TBox的流量也可以获取TSP平台的地址,我们将此地址简称tbox服务器。由于微服务及容器化的流行,TSP也会将不同的服务分配到不同的服务器,我们通过app可能会获取到多个app服务器地址。TBox通讯通常会使用独立的运营商子网,互联网无法直接访问tbox服务器。
对app服务器测试主要是web渗透测试,测试用例及测试手法与传统web类测试相同。
1、中间件渗透测试
2、OWASP TOP 10
3、API接口测试
此外还有内网渗透,这里内网渗透是专指渗透TBox所在的子网。C段的扫描是很好的方法,一旦获取到权限很可能打入TBox内网,十分推荐。
1、网络扫描:在获取到TBox的权限之后,可以在TBox上部署代理或者直接部署网络扫描工具扫描TBox所在内网。
2、横向移动:搭建好跳板及代理后可直接将渗透工具接入到内网中进行进一步渗透。
因为过于相信网络隔离的保护,TBox所在内网通常防护非常薄弱,接入metasploit-framework大杀四方吧。

5.远程控车测试

为了方便获取车辆相关信息,首先配置HaE插件高亮显示车辆VIN和车牌号。车辆VIN码由17位不包含大写字母I、O、Q的大写字母和数字组成,其中第1~3位代表车辆制造商,第4~8位代表车辆属性,包括品牌、车系、发动机型号等信息,第9位是用来检验VIN号码是否正确的检验位,第10位代表车辆的型号年份,第11位代表车辆的生产工厂,第12~17位是车辆的唯一序列号。其中第一位必须为字母,第12~15位位数字,正则表达式:([A-HJ-NPR-Z][A-HJ-NPR-Z\d]{8}[A-HJ-NPR-Z\d]{3}\d{5})
车牌号正则表达式:([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳])

手机设置burp代理并安装burp证书,打开app查看车辆,在Proxy历史记录中可以获取到手机号、车牌号、车辆VIN等,如图:

执行开启空调命令,拦截数据包,发现App首先向TSP平台发送心跳包,若3S内为收到应答则提示无网络连接。此外控车指令经过加密,多次测试发现参数id的值每次都不同,但格式相同,在token未失效的情况下还是可以重放成功的,如图:

执行关闭空调命令,拦截数据包,控车指令同样经过加密传输,同样在token未失效的情况下可以重放成功,如图:

执行开锁指令,关闭车锁后重放无法重新打开车门,从Response数据中可以清晰的看到车辆状态,如图:

执行关锁指令后虽然返回结果为true但是车门却未上锁。

枚举API接口和参数,发现存在注册和测试接口,如图:

扫描测试参数未发现SQL注入等漏洞,但是Burp检测到 External service interaction (HTTP)漏洞,然而手工验证发现是误报。由于是用自己的车做测试,没敢使用猛烈的扫描器,轻测一波,点到为止。

声明:Hack All Sec的博客|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - TSP平台渗透测试初探


Hacker perspective for security