蓝牙嗅探

前言

最近对蓝牙(BLE)感兴趣, 近期的几篇文章都与之有关:

Snap! 蓝牙驱动库一文中, 我们实现了:

  • 在 MicroBlocks 中建立了 BLE eco server
  • 在 Snap! 中建立了 BLE eco client

由于 MicroBlocks, Snap! 都是的个人计算环境,拥有强大的 liveness 能力,这使得它们成为出色的黑客工具。 既然我们能够完全在个人计算环境中控制通信的整个过程(发送和接收信号)。

我们似乎就有了绝佳的练习场: 练习使用蓝牙 hack 工具以及信号分析工具。

我喜欢建构主义式的学习, 在项目实践中学习, 而不是学完了理论和工具使用手册再去实践。

真实的环境有时候过于狂野, 容易摔跤和挫败信心。 拥有一个安全的学习环境有时是重要的, 在这个环境中我们可以控制变量, 如果信号的收发端都是完全可理解和可控的, 我们就能够专注在 hack 过程上, 即使 hack 工具捕获的信息经过和混淆和加密和加密,由于我们可以控制实际传输的内容,我们就可以推断两者中的联系。

尤其是debug时,某些部分时确定的,避免了安全回退。

“关注点分离” 是编程实践中,最强大的原则之一。

一旦我们在这个安全练习场掌握了工具的使用, 我们习得的能力就可以在野外使用了。

建立理解

我喜欢将 hack 过程分解为两个部分:

  1. 建立对系统的理解
  2. 将这种理解转化为行动

The challenge is not building it but understanding it – Bret 《Seeing Spaces》

第 1 部分通常占据大部分时间。 个人计算环境能够很好地增强可理解性。

本文工具是展示一些工具的使用,作为笔记

我们 MicroBlocks echo server 和 Snap 中的 echo client

在个人计算环境中探索蓝牙

使用 btlejack 捕获数据,使用 wireshark 分析

BtleJack: BLE 瑞士军刀

Btlejack提供了嗅探、干扰和劫持蓝牙低功耗设备所需的一切。

参考