我目前正在享受取证 CTF 挑战。我们得到了一个 PCAPNG 文件。在 Wireshark 中打开时,该文件包含来自两个设备的一系列 URB_INTERRUPT 数据包 - 但没有标识任一设备的 GET_DESCRIPTOR 信息。
第一个设备给出一个 8 位数据序列,如下所示:
00:00:00:00:00:00:00:00
00:00:04:00:00:00:00:00
00:00:04:15:00:00:00:00
00:00:00:15:00:00:00:00
00:00:08:15:00:00:00:00
00:00:08:00:00:00:00:00
00:00:00:00:00:00:00:00
02:00:00:00:00:00:00:00
02:00:2d:00:00:00:00:00
00:00:2d:00:00:00:00:00
猜测这是一个键盘,我将序列解码为这条消息:
scanlines-are-real-cool-guys
这似乎是一个提示,对吧?来自第二个设备的 URB_INTERRUPT 数据包的第二个(更长)序列是 7 位数据,如下所示:
01:00:01:00:02:00:00
01:00:00:00:02:00:00
01:00:00:00:01:00:00
01:00:00:00:02:00:00
01:00:01:00:01:00:00
01:00:01:00:02:00:00
01:00:00:00:02:00:00
01:00:01:00:01:00:00
01:00:01:00:00:00:00
01:00:00:00:01:00:00
01:00:ff:ff:01:00:00
01:00:fe:ff:00:00:00
01:00:ff:ff:00:00:00
01:00:ff:ff:00:00:00
01:00:ff:ff:ff:ff:00
01:00:ff:ff:ff:ff:00
01:00:ff:ff:ff:ff:00
01:00:ff:ff:ff:ff:00
我猜测这可能是一只鼠标——尽管大多数鼠标数据似乎只包含 4 位,基于以下事实:
- 只有两个位似乎以任何重要的方式发生了变化——所有其他位似乎都只是
00
,01
, 或ff
- 因此可能是 x 和 y 坐标 - 变量数据保持在 0 到 255 之间
- 鼠标和键盘似乎是使用 URB_INTERRUPT 的最常见设备
根据这个猜测,我通过 AWK 发送了数据:
awk -F: 'function comp(v){if(v>127)v-=256;return v}{x+=comp(strtonum("0x"$3));y+=comp(strtonum("0x"$5))}$1=="01"{print x,y}' hexoutput_second-part.txt > mouse1.txt
然后通过 GNUPLOT - 希望从屏幕键盘上得到一条跟踪消息或其他东西。但没有运气 - 情节最终为:
不是特别有帮助。
所以我的问题是 - 我将如何追踪哪些其他设备可能发送 7 位 URB_INTERRUPT 数据?攻击此识别过程的最佳方法是什么?
谢谢!