原理参考 【流量分析】USB键盘与鼠标流量分析_ctf usb流量分析-优快云博客

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

在使用wireshark捕捉到的流量中,我们主要看第三个字节的内容,将它与按键值相对以得出按键内容,例如 09=fF

tshark提取Leftover Capture Data
tshark -r usb.pcap -T fields -e usb.capdata | sed '/^\s*$/d' > usbdata.txt
-r:设置tshark 分析的输入文件
-T:设置解码结果输出的格式。包括fields,text,ps,psml和pdml,默认为text
python脚本提取第三字节并翻译
mappings = {
'04': "A",
'05': "B",
'06': "C",
'07': "D",
'08': "E",
'09': "F",
'0A': "G",
'0B': "H",
'0C': "I",
'0D': "J",
'0E': "K",
'0F': "L",
'10': "M",
'11': "N",
'12': "O",
'13': "P",
'14': "Q",
'15': "R",
'16': "S",
'17': "T",
'18': "U",
'19': "V",
'1A': "W",
'1B': "X",
'1C': "Y",
'1D': "Z",
'1E': "1",
'1F': "2",
'20': "3",
'21': "4",
'22': "5",
'23': "6",
'24': "7",
'25': "8",
'26': "9",
'27': "0",
'28': "\n",
'2a': "[DEL]",
'2B': " ",
'2C': " ",
'2D': "-",
'2E': "=",
'2F': "{",
'30': "}",
'31': "\\",
'32': "~",
'33': ";",
'34': "'",
'36': ",",
'37': "."
}
nums = []
keys = open('data.txt')
for line in keys:
key = line[4] + line[5]
if (key != '00'):
nums.append(key.upper())
keys.close()
# with open('chars.txt', 'w', encoding='utf-8') as file: #存一下筛选完的数据
# for item in nums:
# file.write(str(item) + '\n') # 确保转换为字符串并添加换行符
print(nums)
flagstr = ''
for n in nums:
if n in mappings:
flagstr += mappings[n]
else:
flagstr += ''
print(flagstr.lower())
答案:flag{pr3550nwardsa2fee6e0} 提交的时候要删除-
1382

被折叠的 条评论
为什么被折叠?



