工具推荐: 汽车CAN总线分析框架CANToolz
aka YACHT (又一个汽车黑客工具)
CANToolz 是一个分析控制局域网络CAN(Controller Area Network) 和设备的框架。该工具基于不同的模块组装在一起,可以被安全研究人员和 汽车业/OEM 的安全测试人员使用进行黑盒分析等,你可以使用本软件发现电子控制单元ECU,中间人攻击测试,模糊测试,暴力破解,扫描或 R&D测试和验证。
该平台试图将所有需要的 技巧/工具 和其他你可以对CAN总线做的事情结合在一起。我发现,有许多可用的工具,从 Charlie Miller 和 Chris Valasek 工具 到Craig Smith 开发的 UDS/CAN。
它们都有很出色并且有效,但它们仍然很难在每一天的工作中使用(至少对我来说),并且你需要 修改/编写 代码才能得到你想要的东西(MITM,有逻辑的扫描仪)。
如果有更多的人可以提供模块,这会使其更有价值。它提供了一个简单的方法来添加模块并根据你的需要使用“扩展”版本(比如选择ECU自定义暴力破解等)。没有任何其他目的,这里仅仅想推荐给大家一个好的工具被更多的人使用。
还有一点:这是基于模块的引擎,所以你可以使用它作为您的测试过程的一部分,或者当你需要和CAN总线工作时,添加更复杂的 场景/软件。
“我不明白为什么大家始终在发布新的“汽车黑客工具”。我和 @nudehaberdasher 在 2013 年发布的工具仍然运作的很好。” (c) Charlie Miller (@0xcharlie)
使用硬件
CANToolz 可以利用以下硬件与 CAN 网络协同工作:
- USBtin
- CANBus Triple
依赖项
python 3.4
pip install pyserial
pip install numpy
for MIDI_to_CAN
pip install mido
安装
python setup.py install
快速启动
sudo python cantoolz.py -g w -c examples/can_sniff.py
然后在浏览器中访问 http://localhost:4444
模块
- hw_CANBusTriple - CANBus Triple HW 的 IO 模块
- hw_USBtin - USBtin 的 IO 模块
- mod_firewall - 通过 ID 阻塞 CAN 报文模块
- mod_fuzz1 - 简单‘代理’模糊(1字节)可以与 gen_ping/gen_replay结合使用
- mod_printMessage - 打印 CAN 报文
- mod_stat - CAN 报文统计 (使用 .csv 文件 输出)分析选项(c mod_stat a)试图找到 UDS/ISO TP 报文
- gen_ping - 使用选择 IDs (ECU/Service discovery) 生成 CAN 报文
- gen_replay - 保存重发数据包
附言:我们致力于支持其他类型的I/O硬件和模块。欢迎加入我们!主要想法是希望产生不同的模块对以上8个模块提供帮助。
监看和UDS检测实例,如下图所示:
Python 2.7最终稳定版本: https://github.com/eik00d/CANToolz/tree/Python_2.7_last_release
使用示例
在示例文件夹中可以查看更多的用例:
- CAN 开关过滤器扫描检测哪个 CAN 帧可以通过诊断接口到 HU 并返回
- 中间人与防火墙 (ECU ID 检测),检测哪些包对应选定的“行为”
- 重放发现,检测哪些包对应选定的“行为”
- Ping 发现( 使用 ISO TP 和 UDS 支持), 检测 UDS 等
有许多其他可能的选择,你只要根据需要选择模块。例如 使用 DIFF 模式,找到开锁命令。
备注:目前的版本是 uber-beta。缺乏充分的测试,代码不够整洁和美观,可能还有一些尚未发现的 bug。很抱歉,有很多不需要的 IF,糟糕的代码,奇怪的 RPINTs 等,请随意修正或直接忽略。
*原文:CANToolz,小番番编译,转自须注明来自FreeBuf黑客与极客(FreeBuf.COM)
- jQuery 效果使用
- 几款更换WordPress 后台UI 的插件推荐
- 入门:构建简单的Web API
- WordPress 编辑器快捷键——让写作来得更方便些吧!
- ASP.NET Web API: 宿主(Hosting)
- 在 Windows Phone上使用QQConnect OAuth2
- WordPress 开发之使用WordPress 3.8+后台图标(dashicons)
- 基础(二)
- Ionic:高级的 HTML5 移动APP(Web App)开发框架
- 为WordPress 评论框添加HTML5 表单验证
- Sass 基础(一)
- 送上段模拟圣诞节下雪的javascript 代码
- 互联网:解开大脑之迷
- NEC 框架规范 template media
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Django的form,model自定制
- 排序算法与查找算法
- nginx学习(1): openresty安装
- 2020年8月26日更新WINDOWS服务器同时安装多个版本的MYSQL的方法,MQYSQL5和MQYSQL8的共存。
- python 自动化测试(3):数据库连接与使用
- 微信小程序实战开发二:微信小程序 WEUL组件之 画廊组件
- 关于Cookie和Session
- 微信小程序实战开发一:在小程序中使用useExtendedLib方法引入官方UI
- python 自动化测试(4):日志类封装
- 微信小程序实战开发三:小程序之全局配置APP.JSON之底部菜单栏tabBar
- python 自动化测试(5):页面基类封装
- 微信小程序实战开发四:小程序获取用户信息流程及信息存储方式解析
- python 自动化测试(6):jar包调用
- 微信小程序实战开发五:使用自定义组件配置一个通用的图片轮播组件。
- 亿级流量系统如何玩转 JVM