[SUCTF2019]protocol
下载附件,发现是一个pcapng
流量分析的文件,使用wireshark打开,发现是USB,但是不确定是鼠标流量还是键盘流量。
然后打开Leftover Capture Data
,查看发现既不是鼠标也不是键盘
我们使用tshark
导出一下数据
tshark -r usbtraffic.pcapng -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt
参考文献:
http://www.ga1axy.top/index.php/archives/22/#%E5%89%8D%E8%A8%80
得到以下信息
发现有png文件头
这样我们就可以吧前面多余的0删除,拖到结尾发现也有一堆没用的0我们也可以删除
注意这里删除要在ae 42 60 82 后面再留一个00,这是png文件尾
得到以下信息
然后将内容复制到winhex中
保存成一个png文件,然后放到kali里面foremost以下,会得到一堆图片
在观察期间发现里面有很多png文件头,所以我们才会直接删除文件头和尾部没用的信息
发现每15个图片后跟着10个黑色图片
我们返回wireshark中,排序一下长度
观察红框内的数字
前15个是
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
然后查看一下下面的10个流量信息
继续观察红框信息
得到
06 07 0e 04 01 0d 00 02 0b 09
然后根据之前图片的顺序,再次往下数15个流量包,发现和之前的是一样的
所以猜测有字的图片都是以下数据
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
我们只要数黑色的10张图片就行
得到以下信息
01 0e 08 06 0d 0c 00 05 09 0b
02 09 03 05 01 07 0d 0b 0e 04
06 0d 0a 08 09 04 0b 03 0c 02
跟上面总结一下数据就是
这就是所有数据
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
06 07 0e 04 01 0d 00 02 0b 09
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
01 0e 08 06 0d 0c 00 05 09 0b
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
02 09 03 05 01 07 0d 0b 0e 04
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
06 0d 0a 08 09 04 0b 03 0c 02
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
# 将重复多余的删除就是得到
04 03 02 01 00 09 08 07 06 05 0e 0d 0c 0b 0a
06 07 0e 04 01 0d 00 02 0b 09
01 0e 08 06 0d 0c 00 05 09 0b
02 09 03 05 01 07 0d 0b 0e 04
06 0d 0a 08 09 04 0b 03 0c 02
然后我们将10张黑色的图片和15张有字图片进行对应
比如:
黑色图片第一个是06
,然后15个流量信息中找06
并且数一下06在哪个位置
发现06跟第一行的第9个信息相同
然后打开之前分离的那一堆图片,找第九张图片是S
这里面图片都是倒的
然后根据上面第二个数据是07
按照之前操作,继续数一下07
在15个信息中的位置,发现在第八个位置上,找到第八个图片,对应的是u
第三个0e
在第11
个数据上对应的图片信息是c
以此类推得到flag
suctf{My_usb_pr0toco1_s0_w3ak}