创建自定义固件
现代和起亚汽车中的非导航 D-Audio 2V 音响主机运行相当简单的 Linux 版本。通过我的研究和逆向工程,我已经能够弄清楚固件更新过程,直到可以为这些系统开发自定义固件。
为了让您创建自己的固件修改,您需要验证一些事情。
-
您车辆的主机正在运行 D-Audio。特别是显示音频 Gen2V。为了验证您的主机运行的版本是否正确,请比较现代网站上的图像。
-
您的车辆主机的固件更新应该可用。现代汽车的更新可以在这里找到,起亚汽车的更新可以在这里找到。 D-Audio 2 系统的更新可以在“显示音频软件更新”下找到。
3.访问 Linux 计算机。
然后,您需要下载车辆的固件更新,可以在上面的更新站点下找到该更新。更新文件应该是一个 zip 文件,其中包含另一个名为“encsystempackage_{version}.zip”的 zip 文件。将此内部 zip 文件解压缩到 Linux 计算机上。
我创建了一组脚本来帮助自动提取和修改这些更新。
下载这些脚本并将它们解压到一个空文件夹中,然后将固件文件复制到同一文件夹中。
该文件夹应如下所示:
修改设置(可选)
现在,如果您想更改脚本使用的文件夹,则可以选择编辑 settings.sh 文件。这些目录将自动创建,因此无需自己创建。可用的设置如下:
“` ZIPPASSWORDFILE 包含固件更新 ZIP 密码的文本文件的位置。
ENCRYPTIONKEYFILE 加密密钥文件 包含用于解密加密文件的 AES 密钥的文本文件的位置。
ENCRYPTIONIVFILE 加密IV文件 包含用于解密加密文件的 AES IV 的文本文件的位置。
RSAPRIVATESIGNINGKEYFILE=keys/rsa_private.pri 用于签署固件更新的 RSA 私钥的位置。
SYSTEMIMAGEMOUNT_DIR 系统镜像挂载到的目录。
UPDATEEXTRACTTEMP_DIR 保存正在编辑的固件文件的目录。
KEYS_DIR 包含 Zip 密码和加密/签名文件的目录。 “`
设置文件中的所有文件位置都应相对于 settings.sh 文件。
设置环境
现在运行“./setupEnvironment.sh”,这将创建settings.sh 文件中指定的文件夹和文件。
运行此文件后,您的设置应如下所示:
现在必须填写 KEY_DIR 目录中的键。输入这些值时,请确保文件中只有一行,并且文件中不包含多余的空格。
zipPassword.txt 应包含:“ahqltmTkrhk2018@@”(不带引号)
该密码是通过以下方式找到的:访问现代摩比斯的开源网站,从任何拥有该文件的车辆上下载“D-Audio2V R1”文件,然后提取“daudio_2.0value.yocto.poky.zip”zip并从“scripts/”中读取linuxenvsetup.sh”文件,其中“zip”命令与“-P”(密码)参数一起使用
-
aes_key.txt 应包含:“2b7e151628aed2a6abf7158809cf4f3c”
aes_iv.txt 应包含:“000102030405060708090a0b0c0d0e0f”
这些值来自 zip 所在的同一个“linuxenvsetup.sh”文件,可以在generateaes128encryption 函数中找到它们。
这些值实际上是 NIST 文档 SP800-38A 中列出的第一个 AES 128 位 CBC 示例 key/iv。
rsa_private.pri 可以在这里下载
我通过从主机的恢复映像中对 updateAgent 应用程序进行反编译和逆向工程,然后在 Google 上搜索公钥来获得此信息。
现代摩比斯使用的公钥/私钥是一个非常常见的测试密钥:/并且可以在很多地方找到
提取更新
填写完所有密钥和密码后,可以通过运行 ./extract_update.sh {更新文件的路径}来提取更新文件。
脚本:
1.如果尚未清理 UPDATEEXTRACTTEMP_DIR,请清理它。
2.使用 zip 密码文件提取更新文件。
3.将system.img文件挂载到SYSTEMIMAGEMOUNT_DIR(这需要sudo/输入密码)
修改固件
现在系统映像已挂载(默认为 system_image 目录),并且可以根据您的意愿进行修改。
您可以在第 2 部分中看到我添加到系统中的后门
ADB 后门
另一个可以添加的简单后门是通过将 adbd(Android 调试桥守护进程)TCP 服务器添加为 systemd 服务来启用它。 Android 调试桥是调试 Android 设备的常用方法,允许将文件拉取和推送到设备以及启动交互式 shell。 Android 调试桥守护程序的一个版本位于这些非 Android 主机上,可能用于开发过程中的调试。
要启用 Android 调试桥,您可以下载此 zip 文件并将其解压到 settings.sh 文件所在的位置。然后你可以简单地运行:“sudo ./createADBDBackdoor.sh”。
注意:该脚本需要 sudo 才能访问已安装的系统映像内的 systemd 路径。添加的服务将在启动时在主机上的端口 5555 上运行 ADB 服务器,可以在主机网络上使用 Google 的 adb 命令行实用程序连接到该服务器。
有关安装后如何使用 ADB 后门的信息,请查看有关 ADB 的其他信息部分。
编译固件
修改系统映像后,可以使用 ./compile_update.sh 脚本对其进行编译
由于涉及散列,该脚本可能需要一点时间才能运行。该脚本执行以下步骤:
-
Runs sync to verify changes are saved to the mounted system image. 运行同步以验证更改是否已保存到已安装的系统映像中。
-
Unmounts the system image. 卸载系统映像。
-
Calculates the new update file list for the update and generates a new hash for the modified system.img file. 计算更新的新更新文件列表,并为修改后的 system.img 文件生成新的哈希值。
-
Signs the update file list with the RSA private key. 使用 RSA 私钥对更新文件列表进行签名。
-
Generates the update zip file. 生成更新 zip 文件。
创建的文件将被命名为“encsystempackagePUTVERSION_HERE.zip”,因为我懒得让它真正命名正确。
您所要做的就是将创建的 zip 文件重命名为与原始固件更新 zip 相同的名称,并将其放入 FAT 格式闪存驱动器的根目录中。
然后可以将闪存驱动器插入您的汽车并按照正常的安装步骤进行。
注意:更新过程可能需要一段时间。
您修改后的固件已安装在您的汽车中。
更多的adb 信息
一旦 ADBD TCP 服务器服务在您的主机上运行,您就可以连接到它。
为了连接到它,您的主机网络上必须有一台计算机。有两种方法可以做到这一点:
-
如果您的主机有 Wi-Fi 热点,请连接到 Wi-Fi
-
如果您的主机有无线 Android Auto/Apple CarPlay,您可以按照以下步骤转储 Wi-Fi 密码:
-
将闪存驱动器插入主机的 USB 端口。
-
进入主机上的设置屏幕
然后进入 Wi-Fi 设置并按“生成新的 Wi-Fi 密钥”按钮
-
按住物理“Radio”按钮 30 秒或从工程模式中的 USB 设置转储日志。在这两种情况下,都会出现一个弹出窗口,允许您将日志复制到 USB 驱动器。
-
从 USB 驱动器中提取日志并提取它们。
-
打开 Logcat 文件并搜索术语“passphrase”,日志条目将如下所示:
-
使用密码连接 Wi-Fi
-
使用 RTL8152/8153 USB 转以太网适配器连接至主机
-
预装了 RTL8152/8153 以太网适配器的驱动程序。带 USB 集线器的适配器将无法工作。这个适配器对我有用。
-
您的计算机不会分配 IPv4 地址,因此您必须使用 Wireshark 等工具来查找主机的链路本地 IPv6 地址。
连接后:下载 adb 命令行工具并通过运行以下命令连接到主机:
adb connect 192.168.0.1
如果您使用以太网适配器,则必须将 192.168.0.1 替换为主机的 IPv6 地址。
然后您可以使用以下命令启动 shell:
adb shell /bin/bash
免责声明:
本公众号所有文章均为用于技术沟通交流,请勿用于其他用途,否则后果自负。
第二十七条:任何个人和组织不得从事非法侵入他人网络、干扰他人网络正常功能、窃取网络数据等危害网络安全的活动;不得提供专门用于从事侵入网络、干扰网络正常功能及防护措施、窃取网络数据等危害网络安全活动的程序和工具;明知他人从事危害网络安全的活动,不得为其提供技术支持、广告推广、支付结算等帮助
第十二条: 国家保护公民、法人和其他组织依法使用网络的权利,促进网络接入普及,提升网络服务水平,为社会提供安全、便利的网络服务,保障网络信息依法有序自由流动。
任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得危害网络安全,不得利用网络从事危害国家安全、荣誉和利益,煽动颠覆国家政权、推翻社会主义制度,煽动分裂国家、破坏国家统一,宣扬恐怖主义、极端主义,宣扬民族仇恨、民族歧视,传播暴力、淫秽色情信息,编造、传播虚假信息扰乱经济秩序和社会秩序,以及侵害他人名誉、隐私、知识产权和其他合法权益等活动。
原文始发于微信公众号(车联网攻防日记):【车联网】现代汽车Ioniq SEL渗透测试(5)