文章插图
基于人格的条件流示例
尽管看到了许多错误,但是可以在QEMU仿真器中运行二进制文件 。二进制程序按预期启动了两个侦听服务 。
文章插图
在仿真器中运行IC更新器
二进制文件在初始化期间对其自身执行sha512哈希 。我们惊讶地发现,尽管sha512输出64个字节,但仅保留了前8个字节 。这意味着可以使用蛮力找到哈希冲突 。
文章插图
hash_self对二进制文件进行sha512哈希
文章插图
截断的sha512哈希输出
文章插图
一般sha512sum
稍后,当向固件更新服务器发出请求时,此哈希将用作User-Agent字符串的一部分 。
文章插图
哈希被放入请求的用户代理部分
攻击者可以在运行替代恶意软件的同时报告预期的sha512哈希,尽管这意味着服务器可以确定正在使用哪个版本的更新程序 。
这不是针对恶意行为的有力保护 。通过计时器或按需执行,更新程序可以在缓冲区中处理一系列命令 。可以通过cid-updater或打开的命令端口输入它们,从而允许Tesla以太网上的其他设备执行操作 。
以下是任务“ fwheartbeat”的示例,该任务以1小时的间隔启动,并调用了函数start_regular_timer:
文章插图
在计时器上添加了fwhearbeat
通过调用函数do_after_e_ms,还可以在固定时间段后运行命令 。这是重新启动固件下载的示例:
文章插图
经过一段时间后,下载重新启动正在运行
这些命令由字符串引用,可以采用许多值,并存储在大型数组中 。
文章插图
命令数组
使用不同的参数,命令“ install”和“ patch”都最终调用函数do_install 。
像交互式命令处理器一样,该过程的命令端口提供了使用技巧和其他帮助 。
文章插图
要求ic-updater通过HTTP提供文件的示例
文章插图
通过HTTP下载提供的文件
文章插图
通过命令端口报告的当前状态
需要会话令牌来保护IC和CID之间的命令 。每天更改一次,并通过VPN从Tesla服务器进行同步 。如果攻击者可以嗅探IC和CID之间的连接,并使用它发送自己的命令,则攻击者可以拦截此令牌 。
我们能够将二进制文件放入开发模式 。完成此操作后,包括签名检查在内的大多数安全功能都被禁用 。
文章插图
开发模式导致签名检查被跳过
二进制文件包含大量功能 。从最高层次来看,最重要的过程如下:
1、握手-将请求发送到包含车辆详细信息的Tesla服务器并接收对车辆执行操作的响应的过程 。
2、基于握手下载和解密各种固件更新文件将下载并解密的固件更新文件(称为补丁(完整的固件更新) 。
3、bsdiff40(二进制difs)或Redbend delta(专有二进制diff))安装到脱机闪存分区中
4、中继–将固件从CID复制到IC重新部署–将固件的离线状态复制到在线状态以进行恢复其他功能包含在二进制文件中,但未使用 。
握手
类似于外壳脚本更新,有关车辆的数据使用VIN进行监控,然后发送到远程服务器,该服务器以任何可用的更新作为响应 。
通过功能do_handshake向固件服务器发出POST请求 。要从文件连接,这需要固件服务器的配置(包括服务器名称,端口和路径) 。
文章插图
配置握手请求
POST请求中包含的数据比shell脚本版本复杂,包括以下内容:
1、车辆VIN –从网关检索和缓存,而不是从文件中读取 。在请求的路径中发送 。
2、VHCS(车辆硬件配置字符串)–基于从网关恢复的hwids.txt的字符串(使用函数fetch_vhcs生成) 。作为POST参数发送 。
推荐阅读
- 解除USB限制原来如此简单
- 淘宝极速推广99元效果怎么样 极速推广效果怎么样
- 淘宝怎么找免费货源 开淘宝店去哪里找货源
- 怎么开淘宝店及货源 怎么选择网店货源
- 超级店长怎么用 超级店长需要付费吗
- 开淘宝店的总结分析 淘宝数据分析怎么做
- 开网店的详细步骤网店 如何开网店具体步骤
- 女生120斤怎么减肥
- 人流后半月查子宫内膜0.2cm怎么回事?
- 茶包是怎么出现的,怎么选择柑普的设施呢