汽车介绍
2021 款现代 Ioniq SEL。它是一款不错的节能混合动力车,具有相当多的功能,例如无线 Android Auto/Apple CarPlay、无线手机充电、加热座椅和天窗。
我特别喜欢这辆车的一件事是车载信息娱乐(IVI)系统。正如我之前提到的,它有无线 Android Auto,这在这个价格范围内似乎并不常见,而且它的菜单中有相当漂亮、流畅的动画,这告诉我它的 CPU/GPU 并没有完全动力不足,或者至少是软件它运行起来并不是超级臃肿。
目标
汽车中的 IVI,就像当今的许多东西一样,只是一台计算机。我的目标是破解 IVI 以获得 root 访问权限,并希望能够在上面运行我自己的软件。当然,破解此类设备的第一步是研究。
我查到的一些明显的事情是:
设备正在运行什么?
-IVI 有两个版本,一种是运行 Android 的导航版本,另一种是基于 Linux 的版本。
之前有其他人破解过这个吗?
-
基于 Android 的导航版本很容易通过工程菜单安装您自己的 APK 来破解。
-
基于linux的尚未被黑客攻击。
非导航IVI有工程模式吗?
-
Yes it does 是的,它确实
工程模式
我喜欢开发者设置和测试应用程序。和他们一起玩通常会带来很多乐趣。我想我可能会很幸运,它会有一个启用 SSH 服务器等的选项。
我发现我可以通过 IVI 进入其工程模式,方法是转到“软件更新”屏幕,快速按“更新”按钮左侧 10 次,然后再按一次该按钮右侧。如果屏幕没有立即出现,则将重复按下,直到它起作用为止。
工程模式由 4 位数字密码保护。本指南帮助我找出密码是“2400”。
https://www.oviradio.cz/hyundai-kia-radio-engineering-mode-en/#google_vignette
进入工程模式后,我浏览了菜单,查看所有可用的选项。有大量的诊断、调试读数和隐藏设置。一些菜单引起了我的注意:
-
USB复制
-
该菜单包含将日志复制到 USB 驱动器或从 USB 更新系统各个部分的子选项。
-
其中一个选项表明按住 IVI 上的“Radio”按钮也会触发日志收集。
-
模块信息 > ISV 设置
-
该菜单有一个 ADB TCP 选项,以及“SW Test Tools”的单选按钮。
使用这些设置,我将一堆日志收集到 USB 驱动器上,并尝试使用 ADB 连接到 IVI。
ADB TCP
我将手机与无线 Android Auto 连接以连接 IVI 的 Wi-Fi 网络并尝试对设备进行端口扫描,但无法找到任何开放的 ADB 端口。 🙁 我最终发现这个设置并没有真正做任何事情。
The Logs
事实证明,这些日志是关于 IVI 幕后工作原理的信息宝库。
日志以一个名为“daudio2.0v_{Date}-{Time}.tar.gz”的大 tar.gz 形式传输到 USB。
该存档包含许多文件,包括内核日志、“top”命令的输出、logcat 日志以及来自 BlueLink 的日志。
最有趣的日志文件是 logcat 文件。基本上,IVI 上运行的每个应用程序都会被大量记录,并且所有内容都通过管道传输到此文件。
Hacking It
那时,我知道进入系统并不像打开设置那么容易。我需要实际利用某些东西才能获得访问权限。
我决定弄清楚如何进入的最佳方法是对 IVI 上运行的应用程序进行逆向工程。但要做到这一点,我需要应用程序的文件。我认为最简单的方法就是获取固件更新并解压它。
固件
我最终做了一些更多的研究并浏览了日志。我发现这些 IVI 运行Hyundai Mobis的“D-Audio2V”。 D-Audio2V 是现代第二代 Display Audio OS,用于现代和起亚的多种车辆。我发现现代摩比斯的网站上有一些 D-Audio2 的源代码可供下载。我浏览了一下,但其中大部分只是为了让 Wi-Fi 系统正常工作而对各种开源项目进行的小补丁。 D-Audio2 系统的固件更新可在 update.hyundai.com 的“显示音频软件更新”下找到。不幸的是,我的特定车辆没有更新,所以我只是下载了其他几辆车的更新。
固件文件位于一个简单的 .zip 文件中,其中包含另一个 zip 文件。内部 zip 名为 encsystempackage{version}.zip。查看 systempackage zip 内部,它似乎包含 IVI 中各种模块(如 GPS 和 HD Radio)的固件,以及系统映像本身。
这次更新看起来很有希望,我尝试提取系统映像,并且整个 zip 已加密。
不过,我并没有完全灰心,我的电脑上已经有一些工具,比如 John The Ripper 和 Hashcat,它们可以用来暴力破解 zip 密码。我尝试暴力破解最多 8 个字符的密码,因为这是我的系统在合理时间内可以完成的操作,但这不起作用。我也尝试使用我的一些词汇表,但也失败了。
Cracking it
此时我开始研究我可能能够使用的其他工具或服务。就在那时我遇到了bkcrack。显然,传统的 zip 加密可以使用已知的明文攻击来破解。这意味着,如果我能找到加密 zip 中其中一个文件的至少 12 个字节,我就有可能解密整个 zip。
这次搜寻是为了寻找匹配的文件。我查看了加密 zip 的文件列表,发现了一些适合攻击的候选文件。在“MODEMus”文件夹内有一个 37 字节长的 modem_version.txt 文件。由于它是一个文本文件,因此可能是人类可读的格式。
最初,我在互联网上搜索该文件,希望能找到匹配的文件,但大多数情况下都发现了无效的 FTP 链接,所以我采取了另一种方法。
我希望现代汽车能够在其 IVI 中重用调制解调器模块,从而重用调制解调器的固件文件。如果我能找到另一个 IVI 的未加密调制解调器更新,我就有希望找到匹配的 modem_version.txt 文件。
从现代汽车的更新网站上,我发现现代汽车有一个专门的导航 IVI 更新程序。
我安装了导航更新程序软件并下载了 2020-2021 年现代 Ioniq 导航 IVI 的最新更新。
我转到更新程序下载文件的地方并打开 system_package tar 文件。
里面有一个调制解调器文件夹,里面有一组看起来非常熟悉的文件!但 modem_version.txt 文件的大小错误。 🙁
但是,我知道那里还有大量其他文件也可能是匹配的。但哪些是匹配的呢?
比较两组文件,有一些文件大小相同,但不能保证文件内容相同。
幸运的是,zip 救了我。制作 zip 文件时,会计算其中每个文件的 CRC。 CRC 是一种循环冗余校验,zip 提取程序使用它来验证文件是否正确未加密/解压缩。同一文件应创建相同的 CRC。由于导航的更新文件位于 tar 文件中,而不是 zip 中,因此我将它们解压缩,然后将其压缩。有一对匹配的文件:“partition.mbn”。我找到了我的明文。
我用新发现的明文加载了 bkcrack,然后……它不起作用?但为什么?
我最终只是尽我所能地扔它,看看是否能得到一些钥匙。据我发现,存在很多误报,特别是如果您将 bkcrack 限制为最小 12 字节的明文。
但尝试使用这些密钥只会导致 zip 文件无效
我回到 bkcrack Github 问题页面并阅读了所有问题。正是在那里,我发现所需的“明文”不是原始文件本身,而是原始文件的正确压缩版本。
我需要找出现代摩比斯用来压缩原始 zip 的确切程序和参数。
我使用 Windows 中内置的 zip 创建器压缩了我的partition.mbn 文件。那没有用。然后我在 7Zip 中尝试了每一种参数组合。
我什至用 C# 编写了一个程序,使用压缩库来创建它可以创建的所有组合。但没有任何效果。我认为 Hyundai 不太可能使用深奥的 Windows zip 程序,所以我转向了 Linux。
我使用安装 Kali 时附带的 zip 命令行工具创建了大量具有各种设置的 zip 文件。
然后我一一进行了检查,期间我还发现我使用了错误的bkcrack参数。我需要指定 zip 中的文件条目而不是 zip 本身。在多次浏览我的列表并尝试多个可能的密钥后,bkcrack 找到了它。
我使用了 bkcrack 找到的“主密钥”来制作 zip 并……
最后?
我能够成功地从加密的 zip 中提取每个文件!
bkcrack 还允许您从它找到的主密钥中恢复 zip 的密码,所以我尝试了这一点,但它无法找到任何长达 16 个字符的内容,这是我在 PC 上可以合理破解的长度。
但由于我现在可以使用所有内容,因此我提取了 enc_system 文件夹内的 system.img 文件。我从可用的文件中学到了很多东西,比如 Python 和 Perl 是如何安装在系统中的。我认为这对于将来制作反向 shell 可能会派上用场。
我最终找到了应用程序的存储位置并开始对其进行逆向工程。幸运的是,由于应用程序有大量的调试信息被打印到 Logcat 文件中,因此许多重要的功能对于标记和逆向工程来说都是微不足道的。
免责声明
本公众号所有文章均为用于技术沟通交流,请勿用于其他用途,否则后果自负。
第二十七条:任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序和工具;明知他人从事危害网络安全的活动,不得为其提供技术支持、广告推广、支付结算等帮助
第十二条: 国家保护公民、法人和其他组织依法使用网络的权利,促进网络接入普及,提升网络服务水平,为社会提供安全、便利的网络服务,保障网络信息依法有序自由流动。
任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他合法权益等活动。
第十三条: 国家支持研究开发有利于未成年人健康成长的网络产品和服务,依法惩治利用网络从事危害未成年人身心健康的活动,为未成年人提供安全、健康的网络环境。
原文始发于微信公众号(车联网攻防日记):【车联网】现代汽车Ioniq SEL渗透测试(1)