今天记录下有点意思的Xp0int的Misc~
印象最深的是数据包分析:
一段奇怪的流量
解压得到1.pcap
用WireShark打开流量包:
最后URB_INTERRUPT_IN可以看出来是URB协议、输入中断
查了一下USB、数据包、CTF
找到了这篇http://bobao.360.cn/learning/detail/3351.html
参考它可以看出来Leftover Capture Data中的八个字节应该就是USB键盘传输的信息了
(如果Leftover Capture Data没有在上面显示,可以右击下面的域选择应用为列)
查了一波资料,在这里找到了数据格式说明
http://blog.csdn.net/u013771867/article/details/51465193
第一个字节表示特殊按键、第二个字节保留、3-8字节表示按键
这也就是USB键盘同时只能按下六个键的原因啦—多键同按就没有位置传递了嘛!
(当然也可以通过修改协议来增加数据传输位,以及非USB键盘不遵循这个协议)
USB鼠标的数据传输是4个字节,与这题不符
4个字节中第一字节表示按键,第二表示水平移动,第三表示竖直移动,第四保留
之前看到的那篇分享是直接提取第三字节即可,也就是说正常情况下的敲击记录
但是本题可以看出,3-5字节都有信息,它们是同时按下的,处理的时候也要注意一下
(不过知道这点其实没什么卵用,谁输入字符的时候会同时按两个键啦~)
通过WireShark自带的工具可以将数据包的data提取出来:
tshark.exe -r usb2.pcap -T fields -e usb.capdata > usbdata.txt
然后通过脚本处理:
# 1: 'ErrorRollOver9', 2: 'POSTFail9', 3: 'ErrorUndefined9',
mappings = { 4: 'a', 5: 'b', 6: 'c', 7: 'd', 8: 'e', 9: 'f', 10: 'g', 11: 'h', 12: 'i', 13: 'j', 14: 'k', 15: 'l', 16: 'm', 17: 'n', 18: 'o', 19: 'p', 20: 'q', 21: &