【流量分析】USB键盘与鼠标流量分析

本文介绍了如何通过USB流量分析来获取键盘和鼠标活动,特别是在CTF(网络安全竞赛)中的应用。利用tshark工具提取数据,然后通过特定的键码转换表解析键盘输入的数字密码。对于鼠标流量,解析数据中的移动轨迹信息。文章提供了详细的操作步骤,包括在Linux和Windows环境下使用tshark提取数据,并展示了如何将这些数据转化为可读的键位和鼠标移动信息。

0x00 USB流量包分析

USB流量指的是USB设备接口的流量,攻击者能够通过监听usb接口流量获取键盘敲击键、鼠标移动与点击、存储设备的铭文传输通信、USB无线网卡网络传输内容等等。
在CTF中,USB流量分析主要以键盘和鼠标流量为主。
下面通过简单的讲解与例题的展示,分析键盘流量与鼠标流量。

例子中用到的文件为usb.pcap和usb2.pcap,我一起打包了放在云盘上,链接如下:
蓝奏云-usb.zip

0x01 键盘流量分析

USB协议数据部分在Leftover Capture Data域中,数据长度为八个字节,其中键盘击健信息集中在第三个字节中,相关对应信息如下链接中所示;

  1. 🔗在线-USB HID to PS/2 Scan Code Translation Table
  2. 🔗蓝奏云-USB HID to PS/2 Scan Code Translation Table.pdf
  3. 🔗在线-USB协议中HID设备描述符以及键盘按键值对应编码表
  4. 🔗蓝奏云-USB协议中HID设备描述符以及键盘按键值对应编码表.pdf

如下所示,在使用wireshark捕捉到的流量中,我们主要看第三个字节的内容,将它与按键值相对以得出按键内容。
在这里插入图片描述
在这里插入图片描述

题目背景

安全测评人员在对某银行卡密码输入系统进行渗透测试,截获了一段通过USB键盘输入6位数字密码的流量,其中也包含了一些其他无关的USB设备的流量,你能从中恢复出6位数字密码吗?最终提交的flag格式为flag{xxxxxx}。

解题思路

使用 kali linux中的tshark命令把cap data 提取出来,
根据《USB键盘协议中的键码》中的HID Usage ID将数据还原成键位;

1 使用命令tshark把cap data 提取出来

🔗tshark-wireshark官方文档
在这里插入图片描述

Linux中使用tshark

安装:sudo apt-get install tshark
tshark -v
tshark -h

tshark -r usb.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt
  
  -r:设置tshark 分析的输入文件
  -T:设置解码结果输出的格式。包括fields,text,ps,psml和pdml,默认为text

如图可以看到生成了usbdata.txt

在这里插入图片描述

Windows中使用tshark

wireshark在安装时会自带一些工具,tshark便是其中之一,它可以在wireshark的安装路径中找到。
在这里插入图片描述

#使用cmd或powershell进入安装路径后,执行以下命令
.\tshark.exe -r D:\Downloads\usb.pcap -T fields -e usb.capdata >D:\Downloads\usbdata.txt

在D:\Downloads\目录下便可看到文件usbdata.txt,此时的文件还有着默认的空行,我们使用脚本(或其他方式)删除空行

#使用脚本删除空行
with open('usbdata.txt', 'r', encoding='utf-8') as f:
    lines = f.readlines()
lines = filter(lambda x: x.strip(), lines)
with open('usbdata.txt', 'w', encoding='utf-8') as f:
    f.writelines(lines)

2 将文件用冒号进行分隔

#将上面的文件用脚本分隔,加上冒号;
f=open('usbdata.txt','r') 
fi=open('out.txt','w')
while 1:
  a=f.readline().strip() 
  if a:
    if len(a)==16:#键盘流量的话len为16鼠标为8 
      out=''
      for i in range(0,len(a)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值