USB流量分析
对CTF中USB做个了断,先摆定义
USB是universalserial bus(通用串行总线)的缩写,是外部总线标准,通过对接口流量的监听,取得键盘敲击,鼠标移动与点击,存储设备的明文传输通信,USB无线网卡网络传输内容等等
lsusb命令
显示本机的USB设备列表及详细信息
BUS 002:指名设备连接哪条总线
Device 002:表明这是连接总线的第二台设备
ID :设备ID
VMware, Inc. Virtual Mouse:生产商名字和设备名
tshark常用参数
-r:设置tshark分析的输入文件
-T:设置解码结果输出的格式,包括fileds,text,ps,psml和pdml,默认text
-e:导出协议字段
-Y:对应过滤的过滤条件
把tshark的`-e`(导出协议字段)放在了python 命令行参数里,适用下面两种情况灵活选择
若显示的是 HID Data
-e usbhid.data
若显示的是 Leftover Capture Data
-e usb.capdata
键盘流量
以往接触到的,USB协议数据部分在`Leftover Capture Data`域中,数据长度为`8`个字节。 击键信息集中在第`3`个字节,每次击键都会产生一个数据包。所以如果看到给出的数据包中的信息都是` 8 `个字节,并且只有第 3 个字节不为 `0000`,那么几乎可以肯定是一个键盘流量了。
现在在比赛中常见的(2021国赛初赛有个例题),是这种,Leftover Capture Data
——>HID Data
这个改变需要注意什么呢,需要注意tshark导出数据时的过滤器字段,看这个对应的过滤器字段,去wireshark的英文文档里找。
tshark -r 数据包文件 -T fields -e 过滤器字段
tshark -r demo.pcap -T fields -e usb.capdata
这个usb.capdata就是Leftover Capture Data的field name(字段名)
tshark -r demo.pcap -T fields -e usbhid.data
同样的,这个usbhid.data就是HID data的field name
鼠标流量
第一个字节代表按键,当取 0x00 时,代表没有按键、为 0x01 时,代表按左键,为 0x02 时,代表当前按键为右键。
第二个字节可以看成是一个 signed byte 类型,其最高位为符号位,当这个值为正(小于127)时,代表鼠标水平右移多少像素,为负(补码负数,大于127小于255)时,代表水平左移多少像素。
第三个字节与第二字节类似,代表垂直上下移动的偏移。
第四个是扩展字节,关于滚轮的操作记录
0 - 没有滚轮运动
1 - 垂直向上滚动一下
0xFF - 垂直向下滚动一下
2 - 水平滚动右键一下
0xFE - 水平滚动左键单击一下
鼠标发送 00 01 fc 00,表示鼠标右移 01 像素,垂直向下移动 124 像素
标签:分析,tshark,鼠标,流量,字节,Data,USB
From: https://www.cnblogs.com/yang-ace/p/18066856