看不见的无线安全:浅谈 BLE 攻防 lazydog 议程 BLE 应用场景它又是怎样工作的 又如何分析 BLE 通讯内容呢 案例分享 如何防御 BLE 应用场景它又是怎样工作 的? BLE 一些特 性 低成本、短距离、可互操作; 基于 2.4Ghz ISM 频段无线通讯; 通讯速率不高,但对功耗极为敏感; BLE 应用场景 智能设备 物联网 BLE 协议栈结构 Physical Layer BLE 属于无线通讯,其通讯的介质就是一定频 率范围内的频带资源 BLE 市场定位又是民用、个体,所以使用了免 费的 ISM 频段 (2.400-2.4835Ghz) Link Layer 经过 Physical Layer 的定义,通信需要用的的 物理通道已经就绪,这时就需要我们的 Link Layer 在这些物理通道上收发数据。 接着就是确保数据传输的可靠性。 Link Layer 状态 机 1. Standby 状态,不发送也不接受根据上层命 令切换任何一种状态,除了 Connection 。 2. Advertising 状态,通过广播包发送数据的状 态,连接成功后切换至 Connection 状态 3. Scanning 状态,可通过广播包接受数据的状 态。 4. Initiating 状态,接收 Advertiser 广播的 connectable 的数据,并在接收到数据后,发 送连接请求,以便和 Advertiser 建立连接。 5. Connection 状态,已和另外一个设备建立了 单独通道的状态。 GAP GAP(Generic Access Profile) ,即 通用访问配置文件,它定义了连接至 各个蓝牙设备的链路管理、若干个设 备角色,其中主要的两个是:外围设 备( Peripheral )和中心设备 ( Central )。 GATT GATT(Generic Attribute Profile) , 即通用属性配置文件,它定义两个 BLE 设备通过使用名为 Service 和 Characteristic 的东西进行通信。 只有理解了 GATT ,我们才 能进一步的去“破解” BLE 设 备。 图中 FEE7 就是一个私有的 Service 说了那么多协议上的事,那我们又该如何分析协议呢? 测试又需要哪些东西? 1. 2. 3. 4. 一台智能手机 一台电脑 一个 CSR4.0 蓝牙适配器 nRF51822 或 cc2540 又有哪些工具可以辅助我? 1. bluez bluez-utils 2. lightblue 、 ble scanner 3. pygatt 通过 Wireshark 、 SmartRF packet sniffer 捕捉 BTLE 的包 寻找一个牵扯到 ble 的功能点,然后 进行测试,接着分析数据包。 利用 gatttool 帮助我们进行测 试 [root@ld ~]# gatttool -i hci0 -b D1:02:02:BA:46:20 -t random –I [D1:02:02:BA:46:20][LE]> connect Attempting to connect to D1:02:02:BA:46:20 Connection successful 使用 pygatt 编写 poc 1. 2. 3. 4. 5. 扫描 ble 设备 对扫描的设备列表进行过滤 将分析出的 value 进行编码 连接设备 最后对相应的 handle 写入 value 寻找一个牵扯到 ble 的功能点,然后 进行测试,接着分析数据包。
2017-《浅谈BLE攻防》
温馨提示:如果当前文档出现乱码或未能正常浏览,请先下载原文档进行浏览。
本文档由 张玉竹 于 2022-04-08 09:05:28上传分享