解题过程
下载下来是一个蓝牙流量包,随便翻翻发现存在 SMP 协议,全称是 Secure Manager Protocol,是蓝牙用来定义配对和密钥分发的
配对后的流量是被加密的,但是有个工具 crackle 是可以解密这种数据包的,这个工具解密蓝牙流量有三个前提,这也在官方的 FAQ 中提到了:
https://github.com/mikeryan/crackle/blob/master/FAQ.md
首先要有完整的配对过程流量,要使用链路层加密(有些开发者会自己实现加密),且只适合于传统配对(legacy pairing)
安装 crackle
git clone https://github.com/mikeryan/crackle.git
cd crackle
make
make install
如果提示下图则需要安装相关依赖 sudo apt-get install libpcap-dev
安装完成后我们使用 crackle 解密发现如下提示,它不支持 BLUETOOTH_LE_LL
但是在它的 issues 中发现有人讨论过这个问题
用这个人的 crackle 再解一遍发现已经可以识别
加个参数 -o 可以保存出解密的数据包
crackle -i uploads_2022_04_11_h5kAcZEg_ble.pcapng -o de.pcapng
保存出来的数据包用 wireshark 打开后发现了一些值
把这些值提取出来之后发现一共有四组不同的,对他们进行两次十六进制编码后拼接,得到了 flag