[蓝牙嗅探-Ubertooth One] 千元开源蓝牙抓包 Ubertooth One 安装和使用

前言

Ubertooth One 是一款软硬件开源的蓝牙抓包器,我们本教程将采用:学习使用、分析代码、分析硬件设计、自己制作一款抓包器的路径来展开。

[蓝牙嗅探-Ubertooth One] 千元开源蓝牙抓包 Ubertooth One 安装和使用

1、编译 Ubertooth tools

1.1、准备工作

Ubertooth 需要用到 Ubertooth tools,该工具依赖 libbtbb (蓝牙 baseband 库),这两个工程都需要自己编译,因此,第一步需要安装为了编译上述工程的工具:

Debian 10 / Ubuntu 20.04 / Kali

sudo apt install cmake libusb-1.0-0-dev make gcc g++ libbluetooth-dev wget \
  pkg-config python3-numpy python3-qtpy python3-distutils python3-setuptools

1.2、编译安装 libbtbb

Bluetooth baseband library (libbtbb) 主要用来解码蓝牙数据包,编译安装操作如下:

wget https://github.com/greatscottgadgets/libbtbb/archive/2020-12-R1.tar.gz -O libbtbb-2020-12-R1.tar.gz
tar -xf libbtbb-2020-12-R1.tar.gz
cd libbtbb-2020-12-R1
mkdir build
cd build
cmake ..

make
sudo make install
sudo ldconfig

1.3、编译安装 Ubertooth tools

Ubertooth 工程包含 host 端代码,主要提供:抓取蓝牙数据包、配置 Ubertooth、升级固件,编译安装操作如下:

wget https://github.com/greatscottgadgets/ubertooth/releases/download/2020-12-R1/ubertooth-2020-12-R1.tar.xz
tar -xf ubertooth-2020-12-R1.tar.xz
cd ubertooth-2020-12-R1/host
mkdir build
cd build
cmake ..

make
sudo make install
sudo ldconfig

1.4、Wireshark 插件

建议用 2.2+ 版本的 Wireshark,自带插件。下面我写了个脚本,可以一键运行并调用 Wireshark 进行抓包。

➜  bluetooth cat ubertooth_wireshark.sh
#!/bin/bash

sudo rm -rf /tmp/pipe
sudo mkfifo /tmp/pipe

echo the mac address is: $2
echo '''
HOW TO SET WIRESHARK:
    1.Click Edit -> Preferences
    2.Click Protocols -> DLT_USER
    3.Click Edit (Encapsulations Table)
    4.Click New
    5.Under DLT, select "User 0 (DLT=147)" (adjust this selection as appropriate if the error message showed a different DLT number than 147)
    6.Under Payload Protocol, enter: btle
    7.Click OK
    8.Click OK
'''

sudo killall wireshark
sudo wireshark -k -i /tmp/pipe &

echo "reset ubertooth"
sudo ubertooth-util -r

if [ "$2" != "NULL" ];then
    echo "-t<address> set connection following target (example: -t22:44:66:88:aa:cc/48)"
    sudo ubertooth-btle -t  $2
fi

if [ "$1" == "-p" ];then
    echo "-p promiscuous: sniff active connections"
    sudo ubertooth-btle -p -I -c /tmp/pipe
elif [ "$1" == "-n" ];then
    echo "-n don't follow, only print advertisements"
    sudo ubertooth-btle -n -c /tmp/pipe
elif [ "$1" == "-f" ];then
    echo "-f follow connections"
    sudo ubertooth-btle -f -I -c /tmp/pipe
else
    echo "INPUT_ERROR: sudo bash ubertooth_wireshark.sh -f BC:23:4C:00:00:01"
    exit 1
fi

echo the mac address is: $2
</address>

1.5、更新固件

当完全安装好 Ubertooth tools 之后,需要将固件更新到和上面工具软件相匹配的版本(参考第2.1节)。

2、更新及开发固件

2.1、更新固件

获取最新版本的 Ubertooth,然后解压进入 ubertooth-one-firmware-bin 目录,之后运行:

$ ubertooth-dfu -d bluetooth_rxtx.dfu -r
Switching to DFU mode...

Checking firmware signature
........................................

........................................

................

设备将会自动进入 DFU 模式然后更新固件。

[蓝牙嗅探-Ubertooth One] 千元开源蓝牙抓包 Ubertooth One 安装和使用

注:在处于非 DFU 模式,可以用 ubertooth-util -v 获取固件的信息。

2.2、开发固件

安装支持 ARM Cortex-M3 工具链:

sudo apt-get install gcc-arm-none-eabi libnewlib-arm-none-eabi

或这直接下载:https://launchpad.net/gcc-arm-embedded

编译:

cd firmware/bluetooth_rxtx/
make

烧写:

ubertooth-dfu -d bluetooth_rxtx.dfu -r

3、效果展示

运行抓包命令:

sudo bash ubertooth_wireshark.sh -f  dc:23:4D:0c:2f:5f

自动调用 wireshark 显示数据:

[蓝牙嗅探-Ubertooth One] 千元开源蓝牙抓包 Ubertooth One 安装和使用

附录

1.完整代码(GITHUB):https://github.com/greatscottgadgets/ubertooth
2.ubertooth 主页:https://greatscottgadgets.com/ubertoothone/
uBertooth 是一千元以下的开源蓝牙抓包器,实际使用存在一定的丢包率~ 专业抓包,还要买 Ellisys 之类的几万或几十万的工具~

[蓝牙嗅探-Ubertooth One] 千元开源蓝牙抓包 Ubertooth One 安装和使用

Original: https://www.cnblogs.com/zjutlitao/p/15075068.html
Author: beautifulzzzz
Title: [蓝牙嗅探-Ubertooth One] 千元开源蓝牙抓包 Ubertooth One 安装和使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/554612/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • 如何高效地写 Form

    工作少不了写”增删改查”,”增删改查”中的”增”和”改”都与 Form 有关,可以说…

    技术杂谈 2023年7月11日
    0107
  • 老司机学Xamarin系列总目录

    Xamarin开发环境及开发框架初探 Xamarin Forms开发框架二探 (Prism vs MvvmCross) Xamarin Forms开发框架之MvvmCross插件精…

    技术杂谈 2023年6月1日
    0123
  • 一文聊透 Netty 核心引擎 Reactor 的运转架构

    本系列Netty源码解析文章基于 4.1.56.Final版本 本文笔者来为大家介绍下Netty的核心引擎Reactor的运转架构,希望通过本文的介绍能够让大家对Reactor是如…

    技术杂谈 2023年7月11日
    0115
  • 青岛啤酒

    原文: https://www.zhihu.com/question/346620159 青岛啤酒到底哪一款好喝呢?直接说答案:小绿瓶(经典)生啤(特色:含有鲜活酵母,但保质期短)…

    技术杂谈 2023年5月31日
    088
  • JDBC学习-连接MySQL数据库(idea,eclipse)

    参考Java MySQL 连接 | 菜鸟教程 (runoob.com) 环境声明:jdk16.0.2 mysql8.0.26 使用软件声明:SQLyog(community) id…

    技术杂谈 2023年6月21日
    0110
  • 网络七层协议地图,报文格式一览无遗。绝对是干货,值得收藏

    从事网络工作的小伙伴们,在排查网络故障时,往往需要抓包,分析问题。所以,要对每一层的报文格式有一定的了解才行。但是,每一层报文协议众多,全部背下来是不可能的。只需要用到的再去查。 …

    技术杂谈 2023年6月21日
    0121
  • mysql-高可用架构:MHA

    mysql-高可用架构:MHA 1. MHA简介 MHA(Master High Availability)是由日本人yoshinorim开发的一款成熟且开源的MySQL高可用程序…

    技术杂谈 2023年7月11日
    074
  • HTTP和Servlet快速入门

    依赖:创建web项目,导入Servlet依赖坐标 Tomcat内置Servlet,若运行时使用该依赖则会导致冲突使用 <scope>provided</scope…

    技术杂谈 2023年7月24日
    083
  • 关于极限分割

    科学诸多的思潮都是由哲学引发的,当然,我说的是真正的哲学. 以前,我们探索过关于芝诺悖论问题的一些证明,继续,我们再来深入探索下极限分割的一些思想. 芝诺悖论采用了一种无限分割空间…

    技术杂谈 2023年5月31日
    0101
  • 【AGC】增长服务2-应用内消息示例

    ​ 前言:上一次笔者给大家带来了AGC 领域的云函数服务的学习。这次我们再继续深化学习AGC 的相关知识。在文章开始之前,再给读者简单介绍一下AGC ,以免第一次来的读者不了解。所…

    技术杂谈 2023年5月31日
    0103
  • 组件库文档工具介绍

    组件库文档工具介绍 涅槃快乐是金 关注 22022.07.06 23:54:42字数 331阅读 118 从 0 到 1 搭建一个全新的组件库文档工具不是最优的选择,本人先在网上搜…

    技术杂谈 2023年6月1日
    096
  • 谷粒商城实战基础篇

    参考博客:https://blog.csdn.net/weixin_44190665/article/details/121043585 1.项目介绍 1.1 谷粒商场微服务架构图…

    技术杂谈 2023年7月23日
    091
  • spring中特殊赋值处理

    字面量赋值:之间调用value赋值就行 赋值null: 特殊符号赋值: 1. Original: https://www.cnblogs.com/bieyinan/p/166971…

    技术杂谈 2023年7月11日
    099
  • MySQL慢查询优化问题-解决办法

    根据发现的问题,找到原因,然后对症下药 发现问题(主动/被动) 问题点:数据库查询过程中速度过慢的SQL语句 主动:数据库默认情况下slow_query_log的值为OFF,表示慢…

    技术杂谈 2023年6月21日
    0104
  • Wireshark抓包工具使用教程以及常用抓包规则

    Wireshark是一个非常好用的抓包工具,当我们遇到一些和网络相关的问题时,可以通过这个工具进行分析,不过要说明的是,这只是一个工具,用法是非常灵活的,所以今天讲述的内容可能无法…

    技术杂谈 2023年6月1日
    0101
  • 【源码笔记】FutureTask

    /* * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free s…

    技术杂谈 2023年7月24日
    073
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球