前言

针对汽车的攻击和入侵是当前最前沿的领域和最热门的话题之一。随着自动驾驶汽车技术的发展,在未来这个领域将变得更加重要。作为汽车黑客快速发展的一部分,我最喜欢的黑客工具之一Metasploit也开发了连接汽车的功能和模块。

如果你当前使用的Metasploit版本没有硬件模块,请进行版本更新获取最新添加的模块。不得不说的是,这只是Metasploit迈向该领域的一小步,而且框架在汽车黑客方面的能力也相当有限,但我相信在不久的将来会有更多更好的汽车黑客模块被添加进来。现在我们的任务是“如何将Metasploit框架连接到汽车网络上”?

如果你之前已阅读过我关于汽车黑客攻击的相关文章,那么你应该知道汽车的汽车中的主导协议是CAN且为串行协议。我们要做的就是通过串行接口连接到汽车的CAN协议。这样,我们就能够通过Metasploit中的几个预建模块在汽车网络上发送恶意流量了。

步骤 1:获取 OBD II 连接器硬件

首先,我们一个可以连接到汽车的ODC II连接器的设备。这里我选择的是相对便宜的ODB II ELM327 蓝牙迷你接口,亚马逊上的价格为8.49美元,可有效地与汽车的CAN网络通信,并通过蓝牙使用Metasploit连接到你的系统。因此你需要配备内置蓝牙的计算机或购买USB蓝牙适配器。有关蓝牙协议的更多信息,请参阅 “Bluetooth Hacking, Part 2: Bluetooth Reconnaissance”一文。

步骤 2:安装 Serial Port(串口)

CAN协议是一个串行协议,因此我们需要安装 ruby gem “serialport” 。

kali > gem install serialport

步骤 3:连接蓝牙适配器

接下来,我们需要连接我们的蓝牙适配器与我们汽车中的ELM 327适配器通信。

要连接到ELM 327设备,我们就需要获取到它的MAC地址。我们可以通过使用内置的hcitool工具,扫描蓝牙设备来获取MAC地址。

kali > hcitool scan

根据扫描结果,这里我的MAC地址为00:19:6D:36:4A:9D。

现在,我们使用该MAC地址将我们的蓝牙适配器连接到ELM 327设备。 注意:这里要用双引号将MAC地址括起来,如下所示。

kali > rfcomm connect /dev/rfcomm1 "00:19:6D:36:4A:9D"

步骤 4:运行 ELM 327 继电器

下一步是运行ELM 327继电器,使Metasploit能够与ELM 327芯片组通信。你可以在/usr/share/metasploit-framework/tools/hardware目录下找到它。

kali > cd /usr/share/metasploit-framework/tools/hardware

kali > ls -l

在运行它之前,让我们先来查看下它的帮助信息。

kali > ruby elm327_relay.rb -h

可以看到,我们只需设置两个参数;速度(默认值为115200)和串行设备(默认为/dev/ttyUSB0)。这里的串行设备,可以通过dmesg | grep ttyS*命令进行确定。

现在,使用串行设备运行elm327继电器,并将speed保持为默认值,如下所示。

kali >ruby  elm327_relay.rb -s /dev/ttyS0

步骤 5:启动 Metasploit

现在,我们已经将Kali Linux配置为与ELM 327设备通信,我们需要创建一个到Metasploit的硬件桥接。Metasploit被构建用于TCP/IP的通信,而我们现在需要它通过串口与汽车原生的CAN协议进行通信

首先,我们启动Metasploit。

kali > msfconsole

然后,搜索汽车模块。

kali > search automotive

可以看到,只有少数几个汽车模块,且功能也非常的有限。

我们选择使用auxiliary/client/hwbridge/connect模块。

msf >use auxiliary/client/hwbridge/connect

加载该模块后,我们可以输入info命令来获取有关此模块的详细信息。

kali > info

最后,让我们执行该模块。

msf >exploit

步骤 6:使用 Metasploit 汽车模块

现在,我们已在车辆中创建了Metasploit和CAN协议之间的硬件桥接。这样我们就可以开始使用Metasploit中的汽车模块了。

例如,你想要检索车辆信息。

msf > use post/hardware/automotive/getvinfo

该模块将查询并收集所有车辆DTC(诊断故障码)和其他信息,如速度,冷却液温度,VIN甚至清除DTC。

现在,我们可以将我们的Linux系统和Metasploit 框架直接连接到汽车网络,直接与汽车的设备进行通信!

有关更多汽车黑客方面的教程,请关注我即将推出的汽车黑客课程!

如何使用Metasploit进行汽车安全性测试的更多相关文章

  1. OWASP固件安全性测试指南

    OWASP固件安全性测试指南 固件安全评估,英文名称 firmware security testing methodology 简称 FSTM.该指导方法主要是为了安全研究人员.软件开发人员.顾问. ...

  2. 初识App安全性测试

    目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...

  3. Web系统测试Web安全性测试

    WEB安全性测试介绍WEB安全性测试--拒绝服务攻击WEB安全性测试--文件上传漏洞WEB安全性测试--跨站攻击WEB安全性测试--SQL注入一WEB安全性测试--SQL注入二WEB安全性测试--SQ ...

  4. 安全性测试入门:DVWA系列研究(二):Command Injection命令行注入攻击和防御

    本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令, ...

  5. 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御

    写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...

  6. 安全性测试:OWASP ZAP使用入门指南

    免责声明: 本文意在讨论使用工具来应对软件研发领域中,日益增长的安全性质量测试需求.本文涉及到的工具不可被用于攻击目的. 1. 安全性测试 前些天,一则12306用户账号泄露的新闻迅速发酵,引起了购票 ...

  7. H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试

    一.概述 1.1 什么是H5 H5 即 HTML5,是最新的 Web 端开发语言版本,现如今,大多数手机 APP 页面会用 H5 实现,包括 PC Web 站点也会用它开发实现.所以 Web 的通用测 ...

  8. 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试

    黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...

  9. android手机安全性测试手段

    罗列一下自己常用的android手机安全性测试攻击手段: 1. fiddler和tcpdump+wireshark抓包分析,模拟修改http请求参数,检验漏洞 2. 修改AndroidManifest ...

随机推荐

  1. iOS通知注意点

    之前以为控制器发送通知,只有你满足:1>注册接收通知:2>进入本页面才能接收到值. 今天朋友问了一个问题: 他的逻辑如下: 退出登录发送通知,需要好几个界面会收到通知,然后这几个界面进行网 ...

  2. 过滤emoji表情的方法

    public static function replaceEmoji($str) { $str = preg_replace_callback( '/./u', function (array $m ...

  3. 三节课MINI计划第三周

    第一部分     微信读书的产品分析 一.任务背景 二.做什么 三.TASK8     业务流程图 四.TASK9 五.周会 六.周报

  4. [转载]C# MemoryStream(内存流)

    MemoryStream位于System.IO命名空间,为系统内存提供流式的读写操作.常作为其他流数据交换时的中间对象操作. 1.MemoryStream类封装一个字节数组,在构造实例时可以使用一个字 ...

  5. 1、2 建立list(RestController),并postman测试

    1.主义实体类id   为String 类型(有用) @Entity(name = "t_student") public class Student { @Id private ...

  6. SQLite基础-1.SQL简介

    目录 一.SQLite简介 二.SQLite命令 三.SQLite安装 在 Windows 上安装 SQLite 四.SQLite 点命令 一.SQLite简介 最近在使用Python+Flask框架 ...

  7. (七)Session 对象知识点总结(来自那些年的笔记)

    如果你想要转载话,可不可以不要删掉下面的 作者信息 呀!: 作者:淮左白衣 写于 来源笔者自己之前学javaWeb的时候,写的笔记 : 目录 Session对象 Session和cookie的主要区别 ...

  8. Essential C++ Reading Notes

    Chapter1 P6, 1.2 Why //#include<string> we still can use "string user_name"? -->c ...

  9. Vue基础知识学习(后端)

    ### Vue学习(后端) Vue安装 -引入文件安装,直接在官网下载vue.js引入项目中 -直接引用CDN -NPM安装(构建大型应用使用,在这不用) -命令行工具(构建大型单页应用,在这不用) ...

  10. 写CSDN博客

    文章目录 前言 写博客的规范 写博客的小技巧 版权声明模板 博客表格模板 更改博客字体和颜色 LaTeX 数学公式 前言 这是一篇关于写CSDN博客的文章.记录我的博客规范,技巧,模板,心得. 写博客 ...