唉,现在流量分析真好出,我估计出这个题只要5分钟,却能让我坐牢一整天,下次我也出

附件:链接: https://pan.baidu.com/s/1uHcQDS0v4iVb8Lq-xKRNzA?pwd=8x1n 提取码: 8x1n 复制这段内容后打开百度网盘手机App,操作更方便哦
--来自百度网盘超级会员v4的分享

之前从没做过这样的,写个wp记录下坐牢一天都干了什么

拿到手里,一眼丁真,usb流量,先以源头排序,找到几个有点东西的源头

1.10.1
1.9.1
localhost()

然后再以序号排序倒回去查看设备

1.10.1 --> bString: USB-HID Keyboard
1.9.1 --> bString: USB Optical Mouse
localhost() --> Remote Name: Pixel Buds A-Series

所以说1.10是某种键盘,1.9是某种鼠标,还有一个蓝牙耳机

先看键盘,不多说了,提取hiddata,再简单处理一下得到敲得内容

radio.chal.hitconctf.com

sorry, no flag here. try harder. but i can tell you that the flag format is hitcon{lower-case-english-separated-with-dash}
again, this is not the flag

可以得知flag格式以及一个网站

网站点进去就是放never gonna give you up的,不好说

鼠标的内容这里也不多说了,啥也没有,就是正常用鼠标的轨迹

然后就是蓝牙耳机的流量,一条条跟进发现从4116那条开始传输了很多数据

并且这些数据都有相同的47fc00的开头,结合蓝牙耳机猜测是在听歌啥的,传输的则是音频数据

选中其中一个右键decode as,然后选择BT AVDTP

这时候再去看,就可以看到传输的数据类型

一眼丁真,火速去找文章

但是翻阅了各种文档跟wiki之后没发现这和流量里的数据有什么相似

之后卡了很久甚至还想过流量重放(

这时发现了一个帖子

https://stackoverflow.com/questions/35915317/decode-mpeg-2-4-aac-lc-latm-bitstream-for-a2dp

我测,这不和我手上的数据一模一样吗

这时候就知道了应该是水果家的某种音频格式叫做latm

然后再搜,找到这个issue

https://github.com/mstorsjo/fdk-aac/issues/85?ysclid=lmctpnlou7322358229

然后找到了这个解码器

https://github.com/dhavalbc/MPEG2-4-AAC-DECODER

随便提取了一段数据去解码就可以得到aac数据流然后直接ffmpeg就可以转化成wav之类的

简单看了下他所做的应该就是把这一条改成了adts格式的aac比特流,每一条相当于音频里的一帧,知道这个就好办了

先tshark提取所有latm数据

tshark -r release-7ecaf64448a034214d100258675ca969d2232f54.pcapng -T fields -e data.data | sed '/^\s*$/d' > 1.txt

然后写脚本简单转化下

f = open('1.txt').readlines()

with open('data.latm','wb') as ff:
    for i in f:
        dataa = bytes.fromhex("FFF1108052DFFD") + bytes.fromhex(i[24:])
        ff.write(dataa)
ff.close()

这里面使用FFF1108052DFFD补上了adts header并且把原来的header去掉了

然后就得到了一大段完整的adts形式的aac比特流

直接ffmpeg转化

ffmpeg -i data.latm 1.wav

再打开音频就可以听到清晰的人声读flag了

令人感叹,看似是蓝牙其实还是音频方面的知识点,坐牢坐麻了