USB流量取证
前言
题目及gnuplot分享链接:https://pan.baidu.com/s/10CtWFd_I26lHmF-uUm-Wig 提取码:lhaq
一、USB流量特征是什么?
例:直接百度或者上CSDN搜我就不转载了
二、写题步骤
1.过滤指定流量另存为单独流量包
(本人发现这题若不将指定的flag流量包提取出来便无法进行Data块数据的提取)
a:首先通过过滤器输入:usb.src =="1.3.1"进行过滤 b:然后选择文件→导出特定分组→重命名一个后缀为pcapng的流量包
提取后的流量包如图:
2、DATA块数据提取
a:在winshark中提取USB指定的4个字节
./tshark -r 123.pcapng -T fields -e usb.capdata > out.txt
得到如图的数据:
b:给这些字节添加上冒号,理论上应该是00:01:fe:00这类,所以我们需要利用脚本在每两个字节中加上冒号。
new = open('H:/Python3.0Work/CTF/newA.txt','w')
myStr = "XXXXXX" #直接将十六进制连接起来丢到这里面便可
for i in range(0,len(myStr),8):
newmyStr = myStr[i:i+8]
str = newmyStr[0:2]+':'+newmyStr[2:4]+':'+newmyStr[4:6]+':'+newmyStr[6:8]
print(str)
new.write(str)
new.write('\n')
new.close()
或者用excel(万年office老手)利用数据中的分列分取出四个字节然后用&加冒号连接起来,最后利用ctrl+shift+Enter+↓ 选取指定列然后ctrl+D填充得到全部加好冒号的输出文件 类似如图:
3、利用脚本将这些十六进制字符串转换成坐标序号
丢个别人的脚本(这里我们需要将btn_flag换成1,若是2便是右键,是提取不出来的)
nums = []
keys = open("H:/Python3.0Work/CTF/usb.txt",'r')
f = open("H:/Python3.0Work/CTF/666.txt",'w')
posx = 0
posy = 0
for line in keys:
if len(line) != 12 :
continue
x = int(line[3:5],16)
y = int(line[6:8],16)
if x > 127 :
x -= 256
if y > 127 :
y -= 256
posx += x
posy += y
btn_flag = int(line[0:2],16) # 1 for left , 2 for right , 0 for nothing
if btn_flag == 1 : # 1 代表左键
f.write(str(posx))
f.write(' ')
f.write(str(posy))
f.write('\n')
f.close()
4、得到转换坐标后,利用gnuplot进行展示
进入gnuplot\bin目录执行gnuplot.exe,使用命令plot ‘666.txt’,得到图像镜像 进入画图→旋转→垂直翻转
得到最后的flag
总结
好好学习、天天刷题
|