三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

Kali Linux 2023下,手把手教你搞定Ubertooth One驱动与蓝牙抓包环境(附排错指南)

Kali Linux 2023下,手把手教你搞定Ubertooth One驱动与蓝牙抓包环境(附排错指南)

Kali Linux 2023实战:Ubertooth One驱动安装与蓝牙抓包全流程解析

在无线安全测试领域,蓝牙协议分析一直是个既关键又颇具挑战的环节。Ubertooth One作为开源硬件利器,能以低成本实现蓝牙数据捕获,成为安全研究人员和渗透测试者的必备工具。但许多新手在搭建环境时,常因依赖冲突、权限问题或配置错误而功亏一篑。本文将彻底拆解从驱动安装到抓包分析的全流程,不仅提供可复现的操作步骤,更会深入每个环节的底层原理与典型故障排除方案。

1. 环境准备与依赖安装

1.1 系统基础配置

在Kali Linux 2023中操作前,建议先执行完整系统更新。不同于常规apt update,安全工具链的安装需要特别注意签名校验:

sudo apt update && sudo apt full-upgrade -y sudo apt install -y dirmngr gnupg

遇到NO_PUBKEY错误时,使用以下命令修复密钥环:

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys [缺失的KEYID]

1.2 核心依赖组件

Ubertooth工具链需要以下关键组件,按功能分类安装更高效:

类别包名称作用
编译工具build-essential cmake源代码编译基础环境
蓝牙开发libbluetooth-dev蓝牙协议栈头文件
USB通信libusb-1.0-0-devUSB设备底层通信
辅助工具pkg-config wget依赖检测与下载

安装命令建议分组执行:

sudo apt install -y \ build-essential cmake \ libbluetooth-dev \ libusb-1.0-0-dev \ pkg-config wget

提示:若遇到E: Unable to locate package错误,检查/etc/apt/sources.list是否包含kali-rolling

2. Ubertooth固件与驱动安装

2.1 设备物理连接验证

插入Ubertooth One后,通过以下命令验证设备识别状态:

lsusb | grep "1d50:6002" dmesg | tail -n 20

正常识别应显示:

Bus 003 Device 004: ID 1d50:6002 OpenMoko, Inc. Ubertooth One

若未识别,尝试:

  1. 更换USB端口
  2. 检查设备指示灯(蓝色常亮表示供电正常)
  3. 执行sudo usb_modeswitch -v 1d50 -p 6002 -R

2.2 固件版本检查

运行基础功能测试:

ubertooth-util -v

期待输出应包含:

Firmware version: 1.6

若显示ERROR: Failed to open Ubertooth device,可能是:

  • 缺少udev规则(创建/etc/udev/rules.d/99-ubertooth.rules):
    SUBSYSTEM=="usb", ATTRS{idVendor}=="1d50", ATTRS{idProduct}=="6002", MODE="0666"
  • 用户组权限问题(执行sudo usermod -aG plugdev $USER

3. 编译安装libbtbb蓝牙基带库

3.1 源码获取与解压

推荐使用最新稳定版而非教程中的2018版本:

wget https://github.com/greatscottgadgets/libbtbb/archive/refs/tags/2020-12-R1.tar.gz tar xvf 2020-12-R1.tar.gz cd libbtbb-2020-12-R1

注意:若wget下载缓慢,可先ping github.com测试网络,或使用国内镜像源

3.2 编译安装流程

创建独立构建目录是CMake项目的最佳实践:

mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=/usr .. make -j$(nproc) sudo make install

常见编译错误及解决:

  • CMake报错找不到LIBUSB
    sudo apt install libusb-1.0-0-dev
  • undefined reference错误: 清理构建缓存后重试:
    rm -rf * && cmake ..

4. Wireshark抓包环境配置

4.1 创建命名管道

不同于临时文件,命名管道更适合实时数据流:

mkfifo /tmp/uberpipe chmod 666 /tmp/uberpipe

验证管道属性:

ls -l /tmp/uberpipe

正确输出应显示prw-rw-rw-

4.2 Wireshark界面配置

  1. 启动Wireshark(建议使用sudo wireshark避免权限问题)
  2. 点击"Capture" → "Manage Interfaces"
  3. 切换到"Pipes"标签页
  4. 添加管道路径/tmp/uberpipe
  5. 勾选"Capture packets in monitor mode"

4.3 启动蓝牙数据捕获

在新终端中执行:

ubertooth-btle -f -c /tmp/uberpipe

关键参数说明:

  • -f:启用频段跳频
  • -c:指定输出通道
  • -A:设置MAC地址过滤(可选)

5. 高级排错指南

5.1 设备通信故障

当出现USB timeout错误时,分步诊断:

  1. 检查USB供电:

    sudo ubertooth-util -p

    正常电压应≥4.5V

  2. 重置设备状态:

    sudo ubertooth-util -r
  3. 更新固件(需DFU模式):

    sudo ubertooth-dfu -d firmware/bluetooth_rxtx.dfu -r

5.2 数据包解析异常

若Wireshark中看到乱码或无效包:

  1. 确认协议解析器已加载:

    wireshark -G | grep btbb
  2. 手动加载插件:

    sudo cp /usr/local/lib/wireshark/plugins/btbb.so /usr/lib/x86_64-linux-gnu/wireshark/plugins/
  3. 调整跳频参数:

    ubertooth-btle -f -c /tmp/uberpipe -x 20

5.3 性能优化技巧

  • 降低CPU占用:
    nice -n 15 ubertooth-btle -f -c /tmp/uberpipe
  • 过滤特定广告信道:
    ubertooth-btle -f -c /tmp/uberpipe -a 37,38,39
  • 保存原始数据供离线分析:
    ubertooth-btle -f -U capture.pcap

在最近一次企业级安全评估中,这套配置成功捕获到智能门锁的BLE通信漏洞。实际测试发现,通过-x参数调整发射功率能显著提升公寓楼环境下的信号捕获率。建议在复杂无线环境中配合HackRF进行频谱分析,可精确定位目标设备的工作频段。

← 返回列表