如何用Wireshark捕获USB数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Wireshark捕获USB数据相关的知识,希望对你有一定的参考价值。

1、打开菜单项“Capture”下的子菜单“CaptureOptions”选项;2、找到设置面板中有一项“Captureallinpromiscuousmode”选项;3、“Captureallinpromiscuousmode”选项默认是选中状态,修改该状态为未选中状态;4、开始抓包。原理分析:1)在网络中,混杂模态允许一个网络装置窃听而且阅读抵达的每个网络包。这个运行模式有时在网络侦听服务器上运行,用来捕获及保存所有的数据包,以便分析。(比如,对于监听网络使用情况);2)在一个以太区域网络(LAN)中,混杂模态是指被传输的每个数据小包都能被一个网络转接器接到而且阅读的操作模式。混杂模态必须被每个网络转接器支持,也必须被主机操作系统的输入/输出驱动器支持。混杂模态时常用来监督网络使用率。3)混杂模态是和非混杂模态相对的。当一个数据小包在非混杂模态传输时候,所有的区域网络装置“听到”数据并且判断被包含在数据小包之中的网络位址是否是他们的。如果它不是,数据小包进入下一个区域网络装置,直到到达具有正确网络位址的装置。然后那个装置接收而且读取数据;4)在WinXP下大部分无线网卡不支持混杂模式,支持混杂模式的无限网卡价格不菲。 参考技术A 用wireshark只能捕获到程序安装所在计算机上的数据包,dns解析是一个涉及不同域名服务器的过程,你无法在本机上得知全部过程,但是能捕获到解析请求和最终的返回结果。 1、首先打开wireshak,开始捕捉。 2、打开浏览器,访问网站 大概的过程就这些,等网站被打开,你所描述的数据基本上都有了。 分析其中的数据,dns、tcp握手等都在其中。看协议类型即可。 ip地址、mac地址也在数据包中,wireshark默认不显示mac地址,你可以在column preferences中添加新栏目hardware src(des) address即可 下面是数据包的截图,前两个dns,后面是tcp握手,接下来就是http请求和数据了,访问的是新浪网站,浏览器为maxthon4。 话说你要浏览器和网站截图干什么??那个与分析过程无关。 参考技术B 使用的环境如下:
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。打开他就可以观察数据包了。

如何用wireshark对tcp进行抓包

参考技术A 这个问题比较简单就可以实现,首先,你要先在交换机上镜像出来一组你需要监控的数据。
然后,打开wireshark,选择列出抓包接口,选择要抓包的接口,
这时候别点开始,点倒数第二个按钮,【选项】。
在出来的窗口里面,双击你刚才选中接口,又弹出一个窗口,
这时候,在最下面填上过滤条件【tcp】,
点击【确定】。
然后点击下面的【开始】,
就可以了,抓出来的包全是tcp的。
如果抓之前,你没过滤,已经把所有的包都抓出来了,
这时候,把数据包打开,在最上面的过滤条件里面输入tcp,就可以了。
过滤条件有很多命令格式,多记住几个经常用的就可以了。

以上是关于如何用Wireshark捕获USB数据的主要内容,如果未能解决你的问题,请参考以下文章

如何用wireshark查看网络流量

Windows 7:嗅探到本地主机的 TCP 套接字

如何用wireshark分析抓包

如何用wireshark对tcp进行抓包

如何用wireshark抓取两个路由器之间的数据包

使用wireshark抓包,捕获get访问请求,如何得到图示数据