在前两部分中,我们了解了如何在我们的机器上安装汽车模拟器以及我们应该使用的必要程序以及我们所需的必要设备。在今天的文章中,我们将详细介绍开发过程。
我们现在将了解 SavvyCAN 是什么,并将其与 ICSIM 结合使用。之后,我们将了解如何使用 SavvyCAN 进行模糊测试和脚本编写。
SavvyCAN
有各种软件可以帮助您监控和过滤 CAN 通信。
有昂贵的专有工具,也有免费的开源工具。
本文的目的是帮助您免费开始汽车黑客攻击。因此昂贵的工具不在我们的列表中。
我已经详细介绍了这些昂贵的 CAN 通信工具的廉价和免费替代品。can-utils、Wireshark 等工具就很好用。
但 SavvyCAN 提供的功能远不止这些。对于初学者来说,它提供了一个不错的 GUI,可帮助您轻松导航、过滤包、ID 等。对于已经涉足汽车黑客领域的人来说,SavvyCAN 提供了真正出色的功能。我个人最喜欢的功能包括在 CAN 框架中运行脚本的能力,
让我们从他们的网站上看看 SavvyCAN 的定义。
尽管有 can-utils ,但我发现使用 SavvyCAN 非常容易。同样,我们不要争论哪个工具最好,哪个工具不好,只要它能满足你的目的就行。
SavvyCAN 安装
安装 SavvyCAN 的过程非常简单。您可以从https://www.savvycan.com下载适用于 Linux、Mac 和 Windows 的预制二进制文件。
在 Ubuntu 上安装并运行
wget https://github.com/collin80/SavvyCAN/releases/download/V199.1/SavvyCAN-305dafd-x86_64.AppImage
下载应用程序映像后无需安装,使其可执行并运行它!
chmod 744 SavvyCAN-305dafd-x86_64.AppImage
# and
./SavvyCAN-305dafd-x86_64 .AppImage
您可以运行 SavvyCAN
您可以先试用一下 SavvyCAN 接口。如果您想将 SavvyCAN 与 Macchina M2 或任何其他兼容硬件一起使用,则无需进行任何额外安装。
我们计划将 SavvyCAN 与 ICSim 一起使用,因此我们需要安装qtserialbus。
打开 SavvyCAN 窗口后,导航至连接 -> 打开连接窗口 -> 添加新连接,您将看到qtserialbus已关闭。
让我们从安装qtserialbus开始,以便我们可以将它与 ICSim 一起使用。
安装 qt5
$ wget https://download.qt.io/official_releases/qt/5.14/5.14.4/qt-opensource-linux-x64-5.14.2.run
下载qt5后,需要安装/运行它
$ chmod a + x ./qt-opensource-linux-x64-5.14.2.run
$ sudo ./qt-opensource-linux-x64-5.14.2.run
记下路线名称,稍后您将需要它。
安装 qt5 后,您需要安装 qtserialbus,因为它不包含在官方 Ubuntu 存储库中。所以我们必须自己做。
安装 qtserialbus
$ sudo apt install qtdeclarative5-dev qttools5-dev g++
$ git clone https://github.com/qt/qtserialbus
$ cd qtserialbus
chmod 744 SavvyCAN-305dafd-x86_64.AppImage0
chmod 744 SavvyCAN-305dafd-x86_64.AppImage1
chmod 744 SavvyCAN-305dafd-x86_64.AppImage2
构建 SavvyCAN
对于 qtserialbus 的使用,其 SavvyCAN App Image,您之前下载的文件将不起作用。SavvyCAN 必须使用 qmake 构建。
chmod 744 SavvyCAN-305dafd-x86_64.AppImage3
安装需要一些时间。
安装完所有程序后,启动 ICSim 模拟器,启动除 can-utils 之外的所有程序。我们将使用 SocketCAN 来记录 CAN 通信,而不是使用 can-utils。
启动 SavvyCAN
启动我们刚刚创建的 SavvyCAN,而不是我们之前下载的 appimage。
请记住,如果您想在真正的汽车上运行它而不是将其与 qtserialbus 一起使用,您可以继续使用 appimage,而不必经历构建 SavvyCAN 的所有麻烦。
chmod 744 SavvyCAN-305dafd-x86_64.AppImage4
您现在可以打开登录窗口,您会注意到 QT SerialBus 已启用。
将 vcan0 添加到 SocketCAN
要与 SavvyCAN 建立新连接,
打开 SavvyCAN
菜单上的转换登录->打开登录窗口->添加新设备连接
选择具有以下设置的连接
连接类型为QT SerialBus 设备
SerialBus 设备类型为socketcan
端口为vcan0
然后创建一个新连接。
连接完成后,您可以看到 CAN 框架出现在 SavvyCAN 窗口中,这是一个好兆头,表明一切运行正常。
为了更好地理解 SavvyCAN,让我们使用 can-utils 做之前做过的相同的事情,但这次使用 SavvyCAN。
SavvyCAN 提供了一个美观、直观的界面来过滤 ID 帧。您可以从右侧窗格中删除不需要的 ID 选项。这样您就可以快速识别关联的 ID。
另一个非常好的功能是“替换模式”。如果启用此选项,帧将按相同顺序替换。
重放攻击
使用 SavvyCAN 执行重放攻击要容易得多。您可以在“发送帧”菜单中打开播放选项。您可以从文件上传数据,也可以直接从记录的数据中上传数据。您还可以从 ID 过滤器菜单中选择要重复的 ID。
仲裁ID的确定
很多人问我这个问题,如何识别汽车上的哪个 ID 起什么作用。有时寻找仲裁 ID 非常困难。
SavvyCAN 提供了很多 RE 工具。我最常用的工具之一是“嗅探器”。它允许我“淡化”非活动字节并快速识别 ID。
例如,让我们看看转速表 ID。为了识别转速表 ID,我将打开嗅探器并停用非活动字节。
我识别它们的方法是,假设有 20 个 ID 可用。我关闭至少三分之一 — 我打开汽车/ICSim 的电源 — 我注意到帧数发生了变化。我这样做直到只剩下一个 ID。
让我们看一下 Sniffer,它是 SavvyCAN RE 工具之一。
图片太大,微信原因无法展示,可自行下载观看:
https://miro.medium.com/v2/resize:fit:1400/0*h520_FnsOlkC4TwQ.gif
或链接: https://pan.baidu.com/s/1mJ_hTfNeqr-GnFTrrfRVWw?pwd=a6hq 提取码: a6hq
--来自百度网盘超级会员v8的分享
在这里,我没有发现与我的操作相对应的字节有任何变化。所以我将转向其他 ID。
看来 0x244 就是我们要找的。踩下油门时,您可以注意到变化字节中的模式。随着速度的增加,转速表显示第 3 和第 4 个字节的变化(从第零字节开始计算)
您可以对 ICSim 中可用的所有操作执行此操作。
发送自定义框架
SavvyCAN 还有另一项功能,您可以在发送自定义帧时随时修改包。要执行此操作,您必须从“发送帧”菜单中打开“帧发送器”。
让我们“欺骗”转速表。从上面的例子中,当我们清洁包装时,我们注意到转速表是如何工作的。
第 3 和第 4 个字节随着油门的增加而增加。因此,我们要做的就是发送自定义帧,随时修改字节,以观察转速表的变化。
数据列将由十六进制值组成,ID 必须为 0x123,触发器必须是毫秒为单位的值,每帧之间的延迟和修改必须由字节为单位的修改组成。
例如,我想要做的是,我想将数据发送到总线 0、ID 0x244(转速表),数据为 0x00 0x00 0x00 0x00 0x00,并且每次将第 3 个字节增加 2,因此在修改时,您可以写入 d3 = d3 +2。完成后,请确保选中“启用”复选框。
汽车黑客指南系列到此结束。
推荐站内搜索:最好用的开发软件、免费开源系统、渗透测试工具云盘下载、最新渗透测试资料、最新黑客工具下载……
还没有评论,来说两句吧...