解题过程

下载下来是一个蓝牙流量包,随便翻翻发现存在 SMP 协议,全称是 Secure Manager Protocol,是蓝牙用来定义配对和密钥分发的
image.png
配对后的流量是被加密的,但是有个工具 crackle 是可以解密这种数据包的,这个工具解密蓝牙流量有三个前提,这也在官方的 FAQ 中提到了:
https://github.com/mikeryan/crackle/blob/master/FAQ.md
image.png
首先要有完整的配对过程流量,要使用链路层加密(有些开发者会自己实现加密),且只适合于传统配对(legacy pairing)
安装 crackle

  1. git clone https://github.com/mikeryan/crackle.git
  2. cd crackle
  3. make
  4. make install

如果提示下图则需要安装相关依赖 sudo apt-get install libpcap-dev
image.png
安装完成后我们使用 crackle 解密发现如下提示,它不支持 BLUETOOTH_LE_LL
image.png
但是在它的 issues 中发现有人讨论过这个问题
image.png
用这个人的 crackle 再解一遍发现已经可以识别
image.png
加个参数 -o 可以保存出解密的数据包

  1. crackle -i uploads_2022_04_11_h5kAcZEg_ble.pcapng -o de.pcapng

image.png
保存出来的数据包用 wireshark 打开后发现了一些值
image.png
把这些值提取出来之后发现一共有四组不同的,对他们进行两次十六进制编码后拼接,得到了 flag
image.png
image.png