网络访问
我还发现 RTL8152/8153 USB 以太网适配器的驱动程序已安装。
我购买了多个基于 RTL8153 的 USB 以太网适配器,希望有一些开放端口。我买的一个适配器有一个内置的 USB 集线器,这使得它与 IVI 不兼容,但我买的第二个是一个直接以太网适配器,它允许我成功连接到系统。不幸的是,它只允许我访问 CarPlay 和 Android Auto 服务器,没有其他可用端口。
在对“automotivefw”二进制文件进行逆向工程时,我发现工程模式中的 ADB TCP 设置将 eth0 的 IP 地址设置为 192.168.7.110。使用日志我发现 eth0 的 MAC 地址应该是“F4:50:EB:2E:58:00”。我希望如果我可以更改 RTL8153 适配器的 MAC 地址,我就可以访问该网络,该网络有望具有 ADB 访问权限。
我将 RTL 加密狗传递给 Kali VM,并尝试使用 ethtool 为其刻录新的 MAC 地址。我很快发现 RTL8153 的 MAC 地址无法使用 ethtool 进行编辑。
我在网上搜索了任何可以帮助我解决此问题的工具,但我读到的所有内容都让我相信这些芯片上的 MAC 地址设置无法编辑。经过几个小时的在线搜索后,我找到了 Realtek 的 RtPGtoolUI 实用程序的图像。根据我所能找到的信息,它看起来像是制造商用来设置这些 USB 以太网适配器的实用程序,包括烧录其 MAC 地址。通过我阅读的所有文档,我还发现许多适配器使用了一种称为 EFuse 的东西,而不是传统的闪存。如果我的适配器使用 EFuses,即使使用正确的工具,我也有可能无法更新它,但我仍抱有希望并继续搜索。
我花了无数的时间试图找到该应用程序的下载。最终我找到了合适的论坛并进行了下载。
经过一点摆弄,我能够成功地将新的 MAC 地址刷新到我的适配器,即使它使用了 EFuse。
# 如何网络访问?
我将新刷新的以太网适配器插入汽车的 USB 端口,却发现没有任何变化。我没有看到通过 Wireshark 的流量有什么不同。我可以看到 MAC 地址更改成功,但它没有给我额外的访问权限,甚至没有 IPv4 地址。
我扫描了 192.168.7.110 地址,该地址确实指向 IVI,但它只打开了相同的 CarPlay/Android Auto 端口。
之后,我查看了日志,意识到 eth0 设备是某种始终处于离线状态的内置以太网适配器。无论我使用什么 USB 适配器,它总是显示为 eth1。也正是在这一点上,我意识到 Wi-Fi 密码在生成时已转储到日志中,这意味着我可以改用 Wi-Fi 连接。连接到 Wi-Fi 产生了与以太网适配器相同的访问权限,只是我的笔记本电脑最终获得了正确的 IPv4 地址。
由于网络访问路线已被破坏,并且我无法通过逆向工程找到任何后门或容易利用的漏洞,因此我决定尝试进行固件更新过程。
固件更新
如果我能弄清楚固件更新的所有安全措施,我就可以使用自己的后门修改现有的系统映像,从而使我能够完全访问 IVI。
我在系统映像中找不到任何处理更新固件的二进制文件。工程模式应用程序和设置应用程序表明,一旦在设置中按下更新按钮,IVI 将启动进入恢复模式。在固件更新的 encsystem 文件夹中,有一个 encupdateboot.img 文件。我猜这个图像包含恢复系统。不幸的是,7Zip 无法像 system.img 文件一样提取图像,在 Notepad++ 中打开图像揭示了原因。
没有可读的字符串,文件已加密。我猜这就是“enc_”前缀的意思 ́(ツ)/́。
查看更新中的其他文件,所有带有“enc_”前缀的文件都已加密。
我再次被困住了。如果没有加密密钥,我将无法弄清楚系统更新过程。我决定继续搜索我已有的所有信息。我继续对所有可能的应用程序进行逆向工程,搜索提取的日志,并查看之前下载的 Mobis 网站上的开源代码。
我没有读错吗?
在浏览 Mobis 网站上提供的源代码时,我搜索了所有 shell 脚本文件。在结果中我找到了一个名为 linux_envsetup.sh 的 shell 脚本文件。
这个文件打开了一切。原来这是创建系统更新 zip 文件的脚本。
结果我的硬盘上一直保存着系统更新的 zip 密码。
加密方法、密钥和 IV 也在脚本中,很有帮助。
该脚本还暗示使用了 RSA 签名,但不幸的是,用于该签名的密钥不在源代码中。
但至少我有加密密钥。为了验证没有其他人知道这一点,我在谷歌上搜索了加密密钥。
Google Git? Apple? *Chegg*????
结果该脚本中的加密密钥是 NIST 文档 SP800-38A 中列出的第一个 AES 128 位 CBC 示例密钥。
现代摩比斯肯定没有使用这个钥匙,这只是用于测试,对吧?没有错误吗?不,这不可能……
我可以在 7Zip 中打开该文件,但它只有一个损坏的条目。
但是,对该文件运行 binwalk 显示 updateboot.img 文件已成功解密,并且其中包含大量内容。
使用 binwalk 的 -e(提取)参数,我提取了 img 文件,显示了准系统的 Linux 设置。
在 /usr/bin 文件夹中,我发现了一个名为 updateAgent 的二进制文件,它看起来很有前途。
由于我已经有了 zip 密码和加密密钥,因此我决定寻找签名密钥,幸运的是他们不仅留下了公钥,还留下了私钥。
在搜索“RSA”等关键字后,我找到了公钥,但没有找到私钥。
我再次在谷歌上搜索了私钥的一部分作为健全性检查。
哦,他们又用了一把很普通的钥匙。我想知道他们是否使用了链接的“C 中 OpenSSL 的 RSA 加密和解密示例”教程……
现在我拥有了城堡的所有钥匙,但仍然没有适用于我的特定汽车的固件更新。我不想冒险毁掉我新车的主机。所以我等待更新的到来。
查看我如何破解我的汽车第 3,4部分:制作后门
免责声明
本公众号所有文章均为用于技术沟通交流,请勿用于其他用途,否则后果自负。
第二十七条:任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序和工具;明知他人从事危害网络安全的活动,不得为其提供技术支持、广告推广、支付结算等帮助
第十二条: 国家保护公民、法人和其他组织依法使用网络的权利,促进网络接入普及,提升网络服务水平,为社会提供安全、便利的网络服务,保障网络信息依法有序自由流动。
任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他合法权益等活动。
第十三条: 国家支持研究开发有利于未成年人健康成长的网络产品和服务,依法惩治利用网络从事危害未成年人身心健康的活动,为未成年人提供安全、健康的网络环境。
原文始发于微信公众号(车联网攻防日记):【车联网】现代汽车Ioniq SEL渗透测试(2)