如何使用Metasploit进行汽车安全性测试
前言
针对汽车的攻击和入侵是当前最前沿的领域和最热门的话题之一。随着自动驾驶汽车技术的发展,在未来这个领域将变得更加重要。作为汽车黑客快速发展的一部分,我最喜欢的黑客工具之一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进行汽车安全性测试的更多相关文章
- OWASP固件安全性测试指南
OWASP固件安全性测试指南 固件安全评估,英文名称 firmware security testing methodology 简称 FSTM.该指导方法主要是为了安全研究人员.软件开发人员.顾问. ...
- 初识App安全性测试
目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...
- Web系统测试Web安全性测试
WEB安全性测试介绍WEB安全性测试--拒绝服务攻击WEB安全性测试--文件上传漏洞WEB安全性测试--跨站攻击WEB安全性测试--SQL注入一WEB安全性测试--SQL注入二WEB安全性测试--SQ ...
- 安全性测试入门:DVWA系列研究(二):Command Injection命令行注入攻击和防御
本篇继续对于安全性测试话题,结合DVWA进行研习. Command Injection:命令注入攻击. 1. Command Injection命令注入 命令注入是通过在应用中执行宿主操作系统的命令, ...
- 安全性测试入门:DVWA系列研究(一):Brute Force暴力破解攻击和防御
写在篇头: 随着国内的互联网产业日臻成熟,软件质量的要求越来越高,对测试团队和测试工程师提出了种种新的挑战. 传统的行业现象是90%的测试工程师被堆积在基本的功能.系统.黑盒测试,但是随着软件测试整体 ...
- 安全性测试:OWASP ZAP使用入门指南
免责声明: 本文意在讨论使用工具来应对软件研发领域中,日益增长的安全性质量测试需求.本文涉及到的工具不可被用于攻击目的. 1. 安全性测试 前些天,一则12306用户账号泄露的新闻迅速发酵,引起了购票 ...
- H5测试点总结-UI测试、功能测试、兼容性测试、体验相关(弱网、资源、手机操作等)、安全性测试、性能测试
一.概述 1.1 什么是H5 H5 即 HTML5,是最新的 Web 端开发语言版本,现如今,大多数手机 APP 页面会用 H5 实现,包括 PC Web 站点也会用它开发实现.所以 Web 的通用测 ...
- 入门级----黑盒测试、白盒测试、手工测试、自动化测试、探索性测试、单元测试、性能测试、数据库性能、压力测试、安全性测试、SQL注入、缓冲区溢出、环境测试
黑盒测试 黑盒测试把产品软件当成是一个黑箱子,只有出口和入口,测试过程中只要知道往黑盒中输入什么东西,知道黑盒会出来什么结果就可以了,不需要了解黑箱子里面是如果做的. 即测试人员不用费神去理解软件里面 ...
- android手机安全性测试手段
罗列一下自己常用的android手机安全性测试攻击手段: 1. fiddler和tcpdump+wireshark抓包分析,模拟修改http请求参数,检验漏洞 2. 修改AndroidManifest ...
随机推荐
- 跟我学Shiro目录贴
转发地址:https://www.iteye.com/blog/jinnianshilongnian-2018398 扫一扫,关注我的公众号 购买地址 历经三个月左右时间,<跟我学Shiro&g ...
- SmartCode
SmartCode(https://github.com/Ahoo-Wang/SmartCode) SmartCode = IDataSource -> IBuildTask -> IOu ...
- 简单的api实现以及动态函数调用
实现一个简单的api功能,环境python2.7 请求方法:curl http://ip:8000/?name={api中的方法名}|python -m json.tool 只需编写api的方法即可 ...
- Fakes中Shim的2种方法
Fakes自动生成的Shim代码,有两种可能:(目前尚不清楚生成规律) //属性型 public static FakesDelegates.Func<string, bool, string& ...
- Direct2D 学习笔记(3)图层 Layer
利用图层Layer绘制资源网址:https://docs.microsoft.com/zh-cn/windows/win32/direct2d/direct2d-layers-overview 1 ...
- 网络编程(socket).WinSocket_recvfrom出错,GetLastError()为10054
1.在写 我的Qt598(vs2017)x64版本的 shadowsocks程序时遇到的. 具体问题情况 大概是这样:QUdpSocket(假设是sktA) connect接收函数,sktA侦听 端口 ...
- 最新 边锋网络java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.边锋网络等10家互联网公司的校招Offer,因为某些自身原因最终选择了边锋网络.6.7月主要是做系统复习.项目复盘.Leet ...
- 如何查看USB是不是3.0版本
打开设备管理器 找到>便携设备 对应U盘,打开属性>查看详细信息>如果设备描述为Data Traveler 3.0 那么这就是3.0的U盘
- java多线程上篇(二) -- 进程的控制、同步
一.进程的控制 进程的基本数据信息是操作系统控制管理进程的数据集合,这些信息就是用来控制进程的,此处我们说的进程控制就是进程的管理. 比如进程有状态,那么进程的创建.终止,状态的切换,这都不是进程自主 ...
- [二叉树算法]让树所有叶子节点连成一个单链表,让rchild作为 next指针
//让树所有叶子节点连成一个单链表,让rchild作为 next指针 LNode *head=null,*pre=null;//全局变量 LNode *InOrder(BTNode *T){ if(T ...

