如何用Wireshark捕获USB数据?

现在越来越多的电子设备采用USB接口进行通讯,通讯标准也在逐步提高。那么,我们就会好奇这些设备是如何工作的?而无论你是一个硬件黑客,业余爱好者或者只是对它有一点兴趣的,USB对我们都是具有挑战性的。

事实上通过wireshark,我们可以捕获到usb设备发送给我们主机的数据,这样就可以进一步研究了。
本文中,我们将向大家介绍怎样通过wireshark捕获usb数据,使用的环境如下:
l Wireshark 2.0.1(SVN)
l Linux kernel 4.1.6
你也可以用其他版本的wireshark,只要是1.2.0以上的都行。这里并没有测试window上能不能行。
简介
在开始前,我们先介绍一些USB的基础知识。USB有不同的规格,以下是使用USB的三种方式:
l USB UART
l USB HID
l USB Memory
UART或者Universal Asynchronous Receiver/Transmitter。这种方式下,设备只是简单的将USB用于接受和发射数据,除此之外就再没有其他通讯功能了。
HID是人性化的接口。这一类通讯适用于交互式,有这种功能的设备有:键盘,鼠标,游戏手柄和数字显示设备。
最后是USB Memory,或者说是数据存储。External HDD, thumb drive / flash drive,等都是这一类的。
其中使用的最广的不是USB HID 就是USB Memory了。
每一个USB设备(尤其是HID或者Memory)都有一个供应商ID(Vendor Id)和产品识别码(Product Id)。Vendor Id是用来标记哪个厂商生产了这个USB设备。Product Id用来标记不同的产品,他并不是一个特殊的数字,当然最好不同。如下图:

上图是连接在我电脑上的USB设备列表,通过lsusb查看命令。
例如说,我有一个无线鼠标Logitech。它是属于HID设备。这个设备正常的运行,并且通过lsusb这个命令查看所有usb设备,现在大家能找出哪一条是这个鼠标吗??没有错,就是第四个,就是下面这条:
Bus 003 Device 010: ID 046d:c52f Logitech, Inc. Unifying Receiver
其中,ID 046d:c52f就是Vendor-Product Id对,Vendor Id的值是046d,并且Product Id的值是c52f。Bus 003 Device 010代表usb设备正常连接,这点需要记下来。
准备
我们用root权限运行Wireshark捕获USB数据流。但是通常来说我们不建议这么做。我们需要给用户足够的权限来获取linux中的usb数据流。我们可以用udev来达到我们的目的。我们需要创建一个用户组usbmon,然后把我们的账户添加到这个组中。
addgroup usbmon
gpasswd -a $USER usbmon
echo 'SUBSYSTEM=="usbmon", GROUP="usbmon", MODE="640"' > /etc/udev/rules.d/99-usbmon.rules
接下来,我们需要usbmon内核模块。如果该模块没有被加载,我们可以通过以下命令家在该模块:
modprobe usbmon
捕获
打开wireshark,你会看到usbmonX其中X代表数字。下图是我们本次的结果(我使用的是root):

如果接口处于活跃状态或者有数据流经过的时候,wireshark的界面就会把它以波形图的方式显示出来。那么,我们该选那个呢?没有错,就是我刚刚让大家记下来的,这个X的数字就是对应这USB Bus。在本文中是usbmon3。打开他就可以观察数据包了。

最后
那么我们获取到了这些有什么用呢?通过这些,我们可以了解到usb设备与主机之间的通信过程和工作原理,也许我们就可以把这些知识用到逆向工程中,得到一些东西。好了,就到这里!!!
*参考来源:Xathrya.id,FB小编老王隔壁的白帽子翻译,转载请注明来自FreeBuf黑客与极客(FreeBuf.COM)
如何用Wireshark捕获USB数据?的更多相关文章
- CentOS 7下Wireshark捕获USB数据包
1. 软件准备 安装Wireshark # yum install wireshark wireshark-gnome .csharpcode, .csharpcode pre { font-size ...
- Wireshark数据抓包教程之Wireshark捕获数据
Wireshark数据抓包教程之Wireshark捕获数据 Wireshark抓包方法 在使用Wireshark捕获以太网数据,可以捕获分析到自己的数据包,也可以去捕获同一局域网内,在知道对方IP地址 ...
- Wireshark数据抓包教程之认识捕获分析数据包
Wireshark数据抓包教程之认识捕获分析数据包 认识Wireshark捕获数据包 当我们对Wireshark主窗口各部分作用了解了,学会捕获数据了,接下来就该去认识这些捕获的数据包了.Wiresh ...
- 使用Wireshark 抓取数据包
Wireshark 是一个网络封包分析软件.网络封包分析软件的功能是获取网络封包,并尽可能显示出最为详细的网络封包资料.Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换. 一 ...
- WireShark Wifi认证数据包分析(论文idea)
1.使用 wireShark捕获802.11数据帧结构分成三种,管理帧.控制帧.数据帧. 使用的过滤语法: 过滤MAC 地址: Waln.bssid eq=8c:23:0c:44:21:0f 过滤特定 ...
- wireshark捕获/显示过滤器表达式书写规律说明
一.说明 1.1 背景说明 对于大多数刚开始接触wireshark的使用者而言,经常是开始的时候时候看到wireshark能把所有数据包都拦截下来觉得强无敌,但是面对一大堆的数据包要问有什么用或者说想 ...
- 设置USB数据监听
设置USB数据监听 在Kali Linux中,USB也是作为一个通信端口进行存在.常见的鼠标.键盘.U盘都是通过USB接口传输数据.所以,对于USB接口也可以实施监听,类似网络接口一样.在进行US ...
- 结合Wireshark捕获分组深入理解TCP/IP协议之以太网帧
摘要: 本文摘抄并整理了以太网相关理论知识,包括CSMA/CD协议机制及工作.LAN互连,详细分析了Ethernet II帧格式,最后给出Ethernet II帧实例. 一.以太网[1] 1. ...
- 结合Wireshark捕获分组深入理解TCP/IP协议栈之DNS协议
摘要: 本文简单介绍了DNS协议理论知识,给出URL解析步骤,详细讲述了DNS报文各个字段含义,并从Wireshark俘获分组中选取DNS相关报文进行分析. 一.概述 1.1 DNS ...
随机推荐
- 20145212《Java程序设计》实验报告二 《 Java面向对象程序设计》
20145212 实验二< Java面向对象程序设计> 实验内容 单元测试 三种代码 伪代码 百分制转五分制: 如果成绩小于60,转成"不及格" 如果成绩在60与70之 ...
- xutils 3.0 post 使用
github:https://github.com/wyouflf/xUtils3 xUtils3简介 xUtils 包含了很多实用的android工具. xUtils 支持超大文件(超过2G)上传, ...
- Robot Framework--08 List Variables-List变量及其用法
转自:http://blog.csdn.net/tulituqi/article/details/7907981 一.List变量及其用法 在我们前面几篇文章里用到了很多List变量,相信以后各位也会 ...
- 事务环境下的CombGuid
一直使用osharp,osharp3使用的是combguid,代码如下 /// <summary> /// 返回Guid用于数据库操作,特定的时间代码可以提高检索效率 /// </s ...
- Helixoft VSdocman 是一个集成于Visual Studio并提供了命令行版本的帮助文档编译工具
http://www.helixoft.com/vsdocman/overview.html https://blog.fishlee.net/2016/01/14/helixoft-vsdocman ...
- sqlmap注入小结
sqlmap注入时: 1.判断可注入的参数 2.判断可以用那种SQL注入技术来注入 3.识别出哪种数据库 4.根据用户选择,读取哪些数据 sqlmap支持五种不同的注入模式: 1.基于布尔的盲注,即可 ...
- js的元素对象
元素对象(element对象) ** 要操作element对象,首先必须要获取到element, - 使用document里面相应的方法获取 ...
- CSS学习点滴
1.CSS :link 选择器 a:link { background-color:yellow;text-decoration:none } 参考:http://www.w3school.com.c ...
- HTTP 学习
*** *** http://www.w3school.com.cn/xml/xml_http.asp *** *** http://www.cnblogs.com/shenliang123/arch ...
- spring的PathMatchingResourcePatternResolver-通配符的Resource查找器
PathMatchingResourcePatternResolver是一个通配符的Resource查找器,包括: /WEB-INF/*-context.xml com/mycompany/**/ap ...