如何用Wireshark捕获USB数据?

简介:

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

如何用Wireshark捕获USB数据?

事实上通过wireshark,我们可以捕获到usb设备发送给我们主机的数据,这样就可以进一步研究了。

如何用Wireshark捕获USB数据?

本文中,我们将向大家介绍怎样通过wireshark捕获usb数据,使用的环境如下:

 Wireshark 2.0.1(SVN)
 Linux kernel 4.1.6

你也可以用其他版本的wireshark,只要是1.2.0以上的都行。这里并没有测试window上能不能行。

简介

在开始前,我们先介绍一些USB的基础知识。USB有不同的规格,以下是使用USB的三种方式:

 USB UART
 USB HID
 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用来标记不同的产品,他并不是一个特殊的数字,当然最好不同。如下图:

如何用Wireshark捕获USB数据?

上图是连接在我电脑上的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设备与主机之间的通信过程和工作原理,也许我们就可以把这些知识用到逆向工程中,得到一些东西。好了,就到这里!!!


作者:老王隔壁的白帽子

来源:51CTO

相关文章
|
7月前
|
域名解析 网络协议
网络协议与攻击模拟-02-wireshark使用-显示过滤器
网络协议与攻击模拟-02-wireshark使用-显示过滤器
63 0
|
17天前
|
安全 Linux
嵌入式Linux系统关闭串口调试信息的输出
嵌入式Linux系统关闭串口调试信息的输出
13 1
|
3月前
|
网络协议
你知道Wireshark 最重要的功能是什么吗?
你知道Wireshark 最重要的功能是什么吗?
|
3月前
|
Ubuntu 网络协议 安全
Tcpdump 抓包分析指令使用方法
tcpdump是一个强大的网络数据包抓包分析工具,用于抓取数据包和分析网络流量。并以可阅读的格式展示,包括源和目标地址、端口、协议类型等信息。
71 0
|
7月前
|
网络协议
【五一创作】网络协议与攻击模拟-01-wireshark使用-捕获过滤器
【五一创作】网络协议与攻击模拟-01-wireshark使用-捕获过滤器
37 0
|
8月前
|
Shell iOS开发
iOS 逆向编程(九 - 2)将端口映射、USB连接手机封装成 .sh 脚本
iOS 逆向编程(九 - 2)将端口映射、USB连接手机封装成 .sh 脚本
89 0
|
10月前
|
运维 网络协议
网络协议分析与抓包工具:Wireshark的高级用法
在网络开发和故障排查中,深入了解网络协议和网络流量是至关重要的。Wireshark作为一款强大的网络协议分析和抓包工具,为开发人员提供了丰富的功能和高级用法。本文将介绍Wireshark的高级用法,包括过滤器的应用、统计信息的分析以及自定义协议的解析。通过掌握这些技巧,您将能够更加深入地分析网络流量,识别问题并加速故障排查过程。
490 0
|
监控 API Windows
好工具推荐系列:Wireshark v3.x可以捕捉本地数据了,WinPcap已替换为NPcap
好工具推荐系列:Wireshark v3.x可以捕捉本地数据了,WinPcap已替换为NPcap
758 0
好工具推荐系列:Wireshark v3.x可以捕捉本地数据了,WinPcap已替换为NPcap
|
C# 网络协议
C# 基于SharpPcap的局域网数据包捕获 之二 监听代码
C# 基于SharpPcap的局域网数据包捕获 之二 监听代码 1.配置好sharpPcap引用和安装好winPcap后,添加引用 using PacketDotNet; using SharpPcap; using SharpPcap.AirPcap; using SharpPcap.LibPcap; using SharpPcap.WinPcap; 2.获取网卡,至于为什么会有两个注释掉的获取网卡方法。
3310 0
|
监控 网络协议
如何使用shARP检测网络中的嗅探器
版权声明:转载请注明出处:http://blog.csdn.net/dajitui2024 https://blog.csdn.net/dajitui2024/article/details/79396291 参考文章 shARP是一种防ARP欺骗程序,使用主动扫描过程来识别任何ARP欺骗事件。
1228 1