汽车安全入门05:硬件选型——CANtact / Macchina M2 / HackRF

导语:前四讲已经把汽车网络协议讲透,从 CAN 帧结构到 UDS 诊断服务都摸熟了。理论归理论,要真的把仪器接上车,首先得挑对工具。车载渗透没有万能板——OBD-II 嗅探、多协议总线、无线电分析,三件事需要三类完全不同的硬件分别担当。

三款车载攻击硬件对比

一、CANtact:OBD-II 入门首选

CANtact(cantact.io)是一台单通道 USB CAN 适配器,通过 USB-B 线接电脑,另一端通过 DE9 排针连到汽车的 OBD-II 接口。它的原理很简单——把车内 CAN 总线的 0V/1V 差分信号转成 USB 能收的 TTL 信号,SocketCAN 驱动把它识别成 can0 网卡,接下来的操作和普通以太网一模一样。

关键参数:

  • 单通道 CAN(CAN High/Low),通过跳线切换
  • 支持 CandleLight 固件(开源,Github 可下载)
  • Linux/macOS/Windows 全平台驱动
  • DFU 模式刷固件(Linux/macOS 用 dfu-util)
  • 提供 Python/Rust/C API 二次开发

CANtact 的最大优势是开箱即用——插上 OBD-II 转 DE9 线,刷完固件就能抓包。candump can0 是刚入门时用的最多的命令。它唯一的短板是只有单通道,高级玩家遇到多总线车辆需要换设备。

红队视角:CANtact 是外部渗透的”敲门砖”。拿到 OBD 口就能执行 UDS 诊断服务,在 ECU 里刷参数、读故障码、甚至改码。大部分普通家用车 OBD 口是没有物理锁的,攻击者只要钻进车里就能碰。

实用命令示例(SocketCAN 栈):

# 启动虚拟接口
sudo ip link add can0 type can bitrate 500000
sudo ip link set up can0
# 抓包
candump can0
# 发送诊断请求(UDS 0x22 读 DID)
cansend can0 7DF#0222F190

一条 cansend 就能触发 ECU 响应——从外部没接触到 CAN 总线之前,很多人以为这需要专业工具,其实一百美元不到的 CANtact 就能做到。

CANtact 的短板:只有单通道 CAN,当车里存在多个 CAN 总线(动力域 500kbps、底盘域 250kbps、车身域 125kbps)时,用 CANtact 单通道只能串行扫描,漏检风险不低。遇到多总线车辆要换设备,或者挂一个 Switch。


二、Macchina M2:多功能改装板

Macchina M2(macchina.cc)不是一个简单的 CAN 适配器——它是一块开源汽车电子开发板,兼顾硬件原型和渗透工具两种用途。

核心硬件:

  • 双通道 CAN + 双通道 LIN/K-LINE + J1850 VPW/PWM + 单线 CAN(GMLAN)
  • 6 路通用驱动电路,每路可输出 12V / 1A——可以直接驱动门锁、车窗电机、灯光继电器
  • XBee 接口,插上就能扩展 BLE/WiFi/GSM/LTE/GPS
  • 处理器板可外接 Raspberry Pi、Arduino 或 Intel Edison,总线从 M2 引出
  • EEPROM 存储变量,断电不丢配置

红队视角:M2 不是纯粹的嗅探工具——驱动电路让它能直接控制车载执行器。比如拿到车内之后,用 M2 的 12V 输出触发电装信号,就能远程开门、启动发动机,把渗透测试从”窃听”升级成”操控”。它也适合做长期植入——借助 XBee 模块把攻击流量转发到云端,车里留一块板就能从外部持续发 CAN 指令。

M2 的定位介于 CANtact 和 HackRF 之间:价格高于 CANtact,但多了 LIN/K-LINE 和 12V 驱动,在车内渗透中攻守两用。社区版是开源硬件,可以在 Kickstarter 上找到原版,现在可以自己焊接。


三、HackRF One:软件定义无线电

HackRF One(greatscottgadgets.com)与前两款完全不同——它不接 CAN 总线,而是做无线电层的信号收发。

关键参数:

  • 频率范围:1 MHz ~ 6 GHz,覆盖车钥匙(315/433/868 MHz)、TPMS(315 MHz)、蓝牙(2.4 GHz)、车载 Wi-Fi(5 GHz)
  • 半双工(Half-Duplex):不能同时收发,适合监听和 replay
  • USB 2.0 接口,GNU Radio / SDR# 配套
  • 开源硬件 + 开源固件,设计文件全部公开
  • 价格约 300 美元

红队视角:在汽车渗透中 HackRF 的定位是无线入口。RollJam 攻击(Samy Kamkar,DEFCON 23 演示)就靠 HackRF 截取汽车钥匙的滚动码,延迟转发后让车以为钥匙正常解锁,攻击者在现场就能劫持开门。蓝牙车钥匙、无钥匙进入系统(PKE)、胎压传感器(TPMS)——这些无线设备都是 HackRF 的攻击面。

HackRF 与 GNU Radio 的配合方式:录制 → 重放 → 频谱分析。在渗透测试里可以按以下顺序走:

  1. 用 HackRF 扫描指定频段,确认目标设备使用的协议和频率
  2. 录制真实钥匙开锁信号
  3. 在 GNU Radio 里做频谱偏移和延迟重放
  4. 实车验证——很多现代车虽然加了抗重放机制,但低价车型的 Rolling Code 算法依然可以被预测

价格与定位:约 300 美元,是三款里最贵的,但它是唯一能覆盖车钥匙蓝牙 TPMS Wi-Fi 所有无线攻击入口的通用工具。如果是车载红队背包,HackRF 可以配上 HackRF One + ANT500 天线,凑齐常用频段覆盖。


四、三款硬件选型对照

维度CANtactMacchina M2HackRF One
总线支持单通道 CAN双 CAN + LIN + K-LINE + J1850RF 1MHz–6GHz
价格区间~$100~$150–$200~$300
上手难度⭐⭐⭐⭐⭐⭐⭐⭐
红队场景OBD-II 快速嗅探CAN 写入 / 执行器控制 / 植入钥匙 / 蓝牙 / TPMS 无线攻击
平台Linux/macOS/WindowsArduino / Pi / 独立GNU Radio / SDR#
无线扩展无XBee BLE/WiFi/LTE本身是 SDR

一句话总结:拿 OBD 口做快速嗅探选 CANtact;要做总线写入和执行器控制选 M2;要打无线入口(钥匙、蓝牙、胎压)选 HackRF。三者配合使用,是从外到内把车”剥光”的标准配置。

动手建议:入门阶段买 CANtact 就够了——花一百美元先跑通 candump → 识别 DBC 文件 → 发送诊断请求这条链。等对汽车总线有感觉了再入手 M2(多协议)和 HackRF(无线),否则一堆硬件摆在桌上不会用,成本比丢钱包还痛。


五、思考题

  1. 协议识别:你拿到一个未知车载设备,没有 OBD 口,只有一根拆出来的 CAN 线——用什么命令判断总线速率是 500kbps 还是 125kbps?
  2. RollJam 实战:用 HackRF 录制一段 433 MHz 钥匙开锁信号,replay 时发生了什么现象?为什么 Rolling Code 机制没有拦住这次攻击?
  3. 下期预告:既然硬件选好了,下一讲进入 Linux 上的软件工具栈——SocketCAN + can-utils 原生命令行工具链。

本期素材出处

  • awesome-vehicle-security #123 CANtact:https://cantact.io/cantact/users-guide.html
  • awesome-vehicle-security #139 Macchina M2:https://www.macchina.cc/m2-introduction
  • awesome-vehicle-security #132 HackRF One:https://greatscottgadgets.com/hackrf/
  • CANtact 固件与驱动:https://github.com/cantact/cantact-fw(开源仓库)
© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容