HowIHackedMyCar 2021款 现代IONIQ (一)

admin 2024年4月25日20:16:38评论3 views字数 6027阅读20分5秒阅读模式

车辆

    去年夏天,我买了一辆2021年款的现代Ioniq SEL。这是一辆不错的省油混动车,配备了一些不错的功能,如无线Android Auto/苹果CarPlay、无线手机充电、加热座椅和天窗。

HowIHackedMyCar  2021款 现代IONIQ (一)

    我特别喜欢这辆车的一个东西是车载信息娱乐系统(IVI)。正如我之前提到的,它配备了无线Android Auto,这在这个价格范围内似乎是不常见的。像我拿到的许多新设备一样,我想玩弄一下,最终看看我能做些什么。

目标

    车载信息娱乐系统(IVI)就像现在许多东西一样,只是一台电脑。我的目标是入侵IVI以获取root权限,希望能够在上面运行自己的软件。当然,破解这样的设备的第一步是进行研究。

我查找的一些明显的东西包括:

- 设备运行什么?    - IVI有两个版本,一个是运行安卓的导航版本,另一个是基于Linux的版本。- 是否有其他人曾经入侵过?    - 基于安卓的导航版本很容易通过在工程菜单中安装自己的APK文件来入侵。    - 基于Linux的版本尚未被入侵。- 非导航IVI是否有工程模式?    - 是的

工程模式

    我喜欢开发者设置和测试应用程序。通常可以通过与它们交互来获得很多乐趣。我甚至认为我可能会幸运地找到一个选项来启用SSH服务器或类似的东西。

    我发现通过进入软件更新屏幕,快速按下更新按钮左侧10次,然后再按下按钮右侧一次,就可以进入我的IVI的工程模式。HowIHackedMyCar  2021款 现代IONIQ (一)如果屏幕没有立即出现,按键操作会一直重复,直到成功为止。

HowIHackedMyCar  2021款 现代IONIQ (一)

工程模式由4位数引脚保护。这个指南帮助我弄清楚了引脚是“2400”。

进入工程模式后,我浏览了菜单,查看所有可用的选项。有大量的诊断,调试读数和隐藏设置。有几个菜单吸引了我的眼球:

  • USB拷贝

    • 此菜单有子选项,可将日志复制到USB驱动器或从USB更新系统的各个部分。

    • 其中一个选项表明按住IVI上的“Radio”按钮也会触发日志收集。

  • 模块信息> ISV设置

    • 该菜单有一个ADB TCP选项,以及“SW Test Tools”(软件测试工具)单选按钮。

使用这些设置,我收集了一堆日志到我的USB驱动器,并试图使用ADB连接到IVI。

ADB TCP

我用无线Android Auto连接我的手机,以进入IVI的Wi-Fi网络,并试图端口扫描设备,但我找不到任何开放的ADB端口。:(我最终发现这个设置并没有真正做任何事情。

日志

这些日志被证明是IVI如何在引擎盖下工作的数据库。

日志被传输到一个名为“daudio2.0v_{Date}-{Time}.tar.gz”的大tar.gz中的USB。

HowIHackedMyCar  2021款 现代IONIQ (一)

该归档文件包含许多文件,包括内核日志、“top”命令的输出、logcat日志和来自BlueLink的日志。HowIHackedMyCar  2021款 现代IONIQ (一)

最有趣的日志文件是logcat文件。基本上,在IVI上运行的每个应用程序都有大量的日志记录,所有这些都通过管道传输到这个文件。HowIHackedMyCar  2021款 现代IONIQ (一)

Hacking It

在这一点上,我知道进入系统不会像打开设置那么容易。我需要利用一些东西才能进入。

我决定弄清楚如何进入的最好方法是对IVI上运行的应用程序进行逆向工程。但要做到这一点,我需要应用程序的文件。我认为最简单的方法就是简单地更新固件并将其拆包。

固件

最后我做了更多的研究,浏览了日志。我发现这些IVIs运行现代摩比斯的“D-Audio 2 V”。D-Audio 2 V是现代显示音频操作系统的第二代,用于现代和起亚的各种车辆。我发现现代摩比斯的网站上有一些D-Audio 2的源代码可以下载。我浏览了一下,但大部分都只是各种开源项目的小补丁,以使Wi-Fi系统正常工作。D-Audio 2系统的固件更新可在update.hyundai.com的“Display Audio Software Update”(显示音频软件更新)下找到。不幸的是,我的特定车辆没有更新,所以我只是下载了其他几辆车的更新。

固件文件包含在一个简单的.zip文件中,其中包含另一个zip文件。内部zip文件名为enc_system_package_{version}. zip。查看system_package zip,它似乎包含了IVI中各种模块的固件,如GPS和HD Radio,以及系统映像本身。

更新看起来很有希望,我试图提取系统映像,HowIHackedMyCar  2021款 现代IONIQ (一)整个zip文件都是加密的。

尽管如此,我并没有完全灰心,我已经在我的电脑上有一些工具,比如John The Ripper和Hashcat,可以用来暴力破解zip密码。我尝试了暴力破解密码,最多尝试8个字符,因为这是我的系统在合理的时间内可以完成的,但是没有成功。我还尝试使用一些我的密码列表,但也没有成功。

破解它

在这一点上,我开始研究其他可能可以使用的工具或服务。就在那时,我发现了bkcrack。显然,传统的zip加密可以通过已知明文攻击来破解。这意味着如果我能找到至少一个存在于加密zip内的文件中的12字节数据,我可能就可以解密整个zip文件。

搜索是为了找到匹配的文件。我查看了加密的zip文件列表,看到了一些适合攻击的候选文件。在“MODEMus”文件夹内,有一个名为modem_version.txt的文件,长度为37字节。由于它是一个文本文件,很可能是以人类可读的格式编写的。HowIHackedMyCar  2021款 现代IONIQ (一)

最初,我在互联网上搜索文件,希望能找到匹配的文件,但大多数结果都是失效的FTP链接,所以我采取了另一种方法。

我希望现代汽车会在他们的IVI中重新使用调制解调器模块,因此也会重新使用调制解调器的固件文件。如果我能找到另一个IVI的未加密调制解调器更新,我就有希望找到一个匹配的modem_version.txt文件。

从现代汽车的更新网站上,我发现他们为他们的导航IVI提供了一个特殊的更新程序。HowIHackedMyCar  2021款 现代IONIQ (一)

我安装了导航更新软件,并下载了2020-2021年现代Ioniq导航IVI的最新更新。

我去了更新程序下载文件的地方,打开了system_package tar文件。HowIHackedMyCar  2021款 现代IONIQ (一)

里面有一个调制解调器文件夹,里面是一组非常熟悉的文件!但是modem_version. txt文件的大小不对。:(HowIHackedMyCar  2021款 现代IONIQ (一)

但是我知道里面还有很多其他的文件也可能是匹配的。但哪些是匹配的呢?

对比两组文件,有几个大小相同,但不能保证文件的内容相同。HowIHackedMyCar  2021款 现代IONIQ (一)

幸运的是,zip文件救了我。当制作一个zip文件时,它会计算每个文件的CRC值。CRC是循环冗余校验,是zip解压程序用来验证文件是否被正确解密/解压的。相同的文件应该产生相同的CRC值。由于导航的更新文件是在一个tar文件中而不是一个zip文件中,我先提取了它们,然后将它们压缩成了zip格式。HowIHackedMyCar  2021款 现代IONIQ (一)有一对文件匹配:“partition.mbn”。我找到了我的明文。

我把新发现的明文加载到bkcrack里...HowIHackedMyCar  2021款 现代IONIQ (一)这不起作用?但为什么呢?

最后,我只是尽可能地试验各种方法,看看能否得到一些密钥。正如我所发现的,尤其是如果你将bkcrack限制在最小的12字节明文范围内,会有很多误报。bkcrack失败了。HowIHackedMyCar  2021款 现代IONIQ (一)

但尝试使用这些密钥将只会导致一个无效的zip文件。HowIHackedMyCar  2021款 现代IONIQ (一)HowIHackedMyCar  2021款 现代IONIQ (一)HowIHackedMyCar  2021款 现代IONIQ (一)

我回到了bkcrack的Github问题页面,并阅读了所有的问题。在那里,我发现所需的“明文”不是原始文件本身,而是原始文件的正确压缩版本。

我需要找出现代汽车Mobis用来压缩原始zip文件的确切程序和参数。

我使用Windows内置的zip创建程序压缩了我的partition.mbn文件,但没有成功。然后我尝试了7Zip中的每一个参数组合。HowIHackedMyCar  2021款 现代IONIQ (一)

我甚至编写了一个使用压缩库创建尽可能多的组合的C#程序。但是什么都没用。我觉得现代汽车不太可能使用一个奇特的Windows zip程序,所以我转向了Linux。

我使用我安装的Kali自带的zip命令行工具创建了大量具有各种设置的zip文件。HowIHackedMyCar  2021款 现代IONIQ (一)

然后我逐个进行了测试,在此期间我还发现我为bkcrack使用了错误的参数。我需要指定zip文件中的文件条目,而不是zip文件本身。经过多次检查我的列表并尝试多个可能的密钥后,bkcrack终于找到了正确的密钥。HowIHackedMyCar  2021款 现代IONIQ (一)

我使用bkcrack找到的“主密钥”制作了一个zip文件,然后...HowIHackedMyCar  2021款 现代IONIQ (一)HowIHackedMyCar  2021款 现代IONIQ (一)HowIHackedMyCar  2021款 现代IONIQ (一)

Finally?

我成功地从加密的zip文件中提取了每个文件!

bkcrack还允许你从它找到的主密钥中恢复zip文件的密码,所以我尝试了一下,但它没能找到任何长达16个字符的密码,这已经是我在我的电脑上可以合理破解的最长长度了。

但既然现在我可以访问所有的文件了,我提取了enc_system文件夹中的system.img文件。仅仅从可用的文件中,我就学到了很多东西,比如系统中安装了Python和Perl。我觉得这对将来制作反向shell可能会有帮助。

最终,我找到了应用程序存储的位置,并开始对它们进行逆向工程。幸运的是,由于应用程序将大量的调试信息打印到Logcat文件中,很多重要函数的标记和逆向工程都变得相当简单。HowIHackedMyCar  2021款 现代IONIQ (一)

网络接入

我还发现安装了RTL 8152/8153 USB以太网适配器的驱动程序。HowIHackedMyCar  2021款 现代IONIQ (一)

我购买了多个基于RTL8153的USB以太网适配器,希望能找到一些开放的端口。我买的适配器中有一个带有内置的USB集线器,这使得它与IVI不兼容,但我买的第二个适配器是一个直接的以太网适配器,让我成功地连接到了系统。不幸的是,它只允许我访问CarPlay和Android Auto服务器,没有其他可用的端口。

在逆向工程“automotivefw”二进制文件的过程中,我发现工程模式中的ADB TCP设置将eth0的IP地址设置为192.168.7.110。HowIHackedMyCar  2021款 现代IONIQ (一)使用日志,我发现eth0应该具有MAC地址“F4:50:EB:2E:58:00”。我希望如果我能够改变我的RTL8153适配器的MAC地址,我就可以访问这个网络,这个网络有希望能够提供ADB访问。

我将我的RTL适配器传递给了我的Kali虚拟机,并尝试使用ethtool为其烧入一个新的MAC地址。但我很快发现RTL8153的MAC地址无法使用ethtool编辑。

我在网上搜索了任何能帮助我的工具,但我读到的所有内容都让我相信这些芯片的MAC地址设置是无法编辑的。在网上搜索了几个小时后,我找到了Realtek的RtPGtoolUI实用程序的图片。根据我所了解的信息,它看起来是制造商用来设置这些USB以太网适配器的实用程序,包括烧录它们的MAC地址。通过我读过的所有文档,我还发现许多这些适配器使用了一种叫做EFuses的东西,而不是传统的闪存存储。如果我的适配器使用EFuses,即使使用了正确的工具,我也有可能无法更新它,但我仍然抱着希望并继续搜索。

我花了无数个小时试图找到应用程序的下载。最终,我找到了合适的可疑的中国论坛,并下载了该软件。RtPGtoolUIHowIHackedMyCar  2021款 现代IONIQ (一)

经过一番摸索,我成功地将一个新的MAC地址烧录到了我的适配器上,尽管它使用了EFuses。

网络访问?

我将新烧录的以太网适配器插入汽车的USB端口,但却发现没有任何变化。通过Wireshark也没有看到不同的流量。我可以看到MAC地址的更改是成功的,但它并没有给我额外的访问权限,甚至没有给我一个IPv4地址。

我扫描了192.168.7.110地址,它确实指向了IVI,但只有相同的CarPlay/Android Auto端口是开放的。

在这之后,我查看了日志,意识到eth0设备是一种内置的以太网适配器,总是处于离线状态。无论我使用什么样的USB适配器,它始终出现为eth1。同时,我也意识到当Wi-Fi密码生成时,它被记录在日志中,这意味着我可以使用Wi-Fi连接。连接到Wi-Fi产生了与以太网适配器相同的访问权限,只是我的笔记本终于获得了一个正确的IPv4地址。

由于网络访问途径失败了,而且我无法通过逆向工程找到任何后门或易受攻击的漏洞,我决定尝试进行固件更新过程。

Firmware更新

如果我能够弄清楚固件更新的所有安全措施,我就可以修改现有的系统映像,加入我的后门,从而获得对IVI的完全访问权限。

在系统映像中,我找不到处理固件更新的任何二进制文件。工程模式应用程序和设置应用程序指示,一旦在设置中按下更新按钮,IVI将启动到恢复模式。HowIHackedMyCar  2021款 现代IONIQ (一)在固件更新的enc_system文件夹中有一个enc_updateboot.img文件。我猜想这个映像包含了恢复系统。不幸的是,7Zip无法像提取system.img文件那样提取这个映像,用Notepad++打开映像文件揭示了其中的原因。HowIHackedMyCar  2021款 现代IONIQ (一)

没有可读的字符串,文件被加密了。我想这就是“enc_”前缀的意思。

查看更新中的其他文件,所有带有“enc_”前缀的文件都已加密。

我又被卡住了。如果没有加密密钥,我将无法了解更多的系统更新过程。我决定继续搜索我已经掌握的所有信息。我继续对所有我能找到的应用程序进行逆向工程,我搜索了我提取的日志,我查看了我之前下载的Mobis网站上的开源代码

Did I read that right?

在浏览Mobis网站上的源代码时,我搜索了所有shell脚本文件。在结果中,我发现了一个名为Linux的shell脚本文件。HowIHackedMyCar  2021款 现代IONIQ (一)

这个文件打开了一切。原来这是创建系统更新zip文件的脚本。HowIHackedMyCar  2021款 现代IONIQ (一)

原来我的硬盘上一直有系统更新的zip密码。HowIHackedMyCar  2021款 现代IONIQ (一)

很有帮助的是,加密方法、密钥和IV也在脚本中。HowIHackedMyCar  2021款 现代IONIQ (一)

该脚本还暗示使用RSA签名,但不幸的是,用于此的密钥不在源代码中。HowIHackedMyCar  2021款 现代IONIQ (一)

但至少我有密钥。为了验证没有其他人已经得到了这一点,我谷歌了加密密钥。HowIHackedMyCar  2021款 现代IONIQ (一)

Google Git? Apple? Chegg????

原来该脚本中的加密密钥是NIST文档SP800—38A中列出的第一个AES 128位CBC示例密钥。HowIHackedMyCar  2021款 现代IONIQ (一)

现代摩比斯肯定不会用这把钥匙,这只是测试用的,对吧?HowIHackedMyCar  2021款 现代IONIQ (一)没有错误?不不可能...

我可以在7Zip中打开文件,但它只有一个损坏的条目。HowIHackedMyCar  2021款 现代IONIQ (一)

但是,在该文件上运行binwalk显示updateboot.img文件已成功解密,并且其中有大量内容。HowIHackedMyCar  2021款 现代IONIQ (一)

在binwalk中使用-e(提取)参数,我提取了img文件,显示了一个基本的Linux设置。HowIHackedMyCar  2021款 现代IONIQ (一)

在/usr/bin文件夹中,我发现了一个名为updateAgent的二进制文件,它看起来很有希望。HowIHackedMyCar  2021款 现代IONIQ (一)

由于我已经有了zip密码和加密密钥,我决定寻找签名密钥,幸运的是,他们不仅留下了公钥,还留下了私钥。

在搜索了一些关键字,如“RSA”,我找到了公钥,但没有私钥。HowIHackedMyCar  2021款 现代IONIQ (一)

我再次在谷歌上搜索了私钥的一部分,以进行合理性检查。HowIHackedMyCar  2021款 现代IONIQ (一)

哦,他们又一次使用了一个非常常见的密钥。我不禁想知道他们是否使用了那个链接的“RSA Encryption & Decryption Example with OpenSSL in C”教程…

等待的游戏

现在我已经拥有了所有的“城堡之钥”,但仍然没有针对我的特定车型的固件更新。我不想冒险破坏我新车的主机单元,所以我选择等待更新的到来。

本合集共7部分,本篇为第一部分

来源:programmingwithstyle.com,感谢greenluigi1

HowIHackedMyCar  2021款 现代IONIQ (一)

HowIHackedMyCar  2021款 现代IONIQ (一)

原文始发于微信公众号(安全脉脉):HowIHackedMyCar 2021款 现代IONIQ (一)

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年4月25日20:16:38
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   HowIHackedMyCar 2021款 现代IONIQ (一)http://cn-sec.com/archives/2689161.html

发表评论

匿名网友 填写信息