文章目录
- 1. 主要教学内容
- 2. Wireshark介绍
- 3. Wireshark下载
- 4. 使用Wireshark捕获包
- 4.1 选择网卡
- 4.2 停止抓包
- 4.3 保存数据
- 5. Wireshark的过滤规则
- 6. Wireshark实例
1. 主要教学内容
- 实验内容:安装、学习使用网络包分析工具Wireshark。
- 所需学时:1。
- 重难点:Wireshark的界面及功能了解。
- 周次:第一周。
- 教材相关章节:1.3。
2. Wireshark介绍
Wireshark 是常用的网络包分析工具。网络包分析工具的主要作用是尝试捕获网络包, 并尽可能详细的显示包的情况。
Wireshark 是Etheral 更高级的版本,包含WinPcap。它具有方便易用的图形界面和众多分类信息及过滤选项,是一款免费、开源的网络协议检测软件 。Wireshatk通常运行在路由器或有路由功能的主机上,这样就能对大量的数据进行监控,几乎能得到以太网上传送的任何数据包。
Wireshark 不是人侵侦测软件。对于网络上的异常流量行为,Wireshark 不会产生警示或任何提示。通过仔细分析Wireshark 捕获的数据包能够帮助使用者对网络行为有更清楚的了解。Wireshark 没有数据包生成器,因而只能查看数据包而不能修改,它只会反映出被捕获的数据包的信息,并对其内容进行分析。
3. Wireshark下载
- 到Wireshark官网:
- 点击
Get started
- 对应系统版本进行下载即可:
- 安装详细教程
- 下载完成后打开界面:
4. 使用Wireshark捕获包
Wireshark的使用主要有三个步骤:
- 选择所要捕捉的物理网卡。
- 选择过滤规则。
- 捕捉数据包。
通过单击捕捉到的数据包, 在下方的窗口中查看数据包头以及数据字段等详细信息。使用者通过对相关协议知识的了解, 再加上实验观察到的现象, 对实验结果进行分析和论证,从而得出所有参数的含义。
一般来说,对于Windows系统,在命令行输入:
ipconfig
之后就会显示对应的物理网卡。又称网络适配器或网络接口卡(NIC),英文名为Network Interface Card。也有直接翻译为Network Card,简称NC。
详细操作,参考:Wireshark详细操作
4.1 选择网卡
打开 Wireshark 后,会直接进入“网卡选择界面”,Wi-Fi:en0
是我连接无线的网卡,我们抓一下这个网卡的流量,双击网卡名,自动开始抓包。
4.2 停止抓包
点击左上角的“红色按钮”,可以停止抓包。
4.3 保存数据
可以直接点击工具栏的保存按钮,保存抓包的数据。
5. Wireshark的过滤规则
Wireshark的一个重要功能就是过滤器(Filter) 。由于Wireshark 所捕捉的数据较复杂,要迅速、准确地获取需要的信息,就要使用过滤 、工具。可以有两次过滤:第一次是捕捉过滤,用于筛选需要的捕捉结果;第二次是显示过滤,只将需要查看的结果显示。
Filter位于工具栏上,可以按照规则输入过滤条件,如:
其中ip.src_host==192.168.1.10
表示过滤出源地址为192.168.1.10的数据包。
常见的过滤规则如下:
- 按协议类型过滤。
Wireshark 支持的协议包括TCP、UDP、ARP、ICMP、HTTP、 SMTP、FTP、DNS、MSN、IP、SSL、OICQ、BOOTP等。
- 例如只查看HTTP协议,则直接输人
http
。
- 按照IP地址过滤。
若仅显示与指定IP地址(例如192. 168.0. 123)通信的记录,则可输人ip.addr==192.168.0.123
。
如果限制为只要从192.168.0.123送来的记录,则输人ip.src==192.168.0.123
。
而得到目的IP地址为192.168.0.123的记录则应输人ip.dst==192.168.0.123
。
- 按照协议模式过滤。
例如HTTP协议可以针对HTTP的请求方式进行过滤:
- 只显示发送GET或POST请求的过滤规则:
http.request.method=="GET"
或http.request.method=="POST"
。
- 按端口过滤。
例如tcp.port eq 80
。不管端口是源还是目标的都只显示满足tcp.port== 80条件的包。
- 按MAC地址过滤。
eth.dst==A0:00:00:04:c5:84 // 过滤目的MAC
eth.src eq A0:00:00:04:c5:84 // 过滤源MAC
- 按包长度过滤。
例如udp.length==26
,这个长度是指udp本身固定长度8加上udp下面的数据包之和。
而tcp.len>=7
指的是IP数据包( tcp 下面数据),不包括tcp本身。ip.len==94
指除了以太网头固定长度为14,其他都算是ip.len,即从IP本身到最后。frame.len==119
指整个数据包长度,从eth开始到最后,即eth–> ip or arp --> tcp or udp --> data。
- 按参数过滤。
例如按TCP参数过滤:
tcp.flags // 显示包含TCP标识的数据包
tcp.flags.syn==0x02 // 显示包含TCP SYN标识的数据包
- 按内容过滤。
例如:
tcp[20] // 表示从20开始取1个字符
tcp[20:] // 表示从20开始取1个字符以上
tcp[20:8] // 表示从20开始取8个字符
- 采用逻辑运算过滤。
过滤语句可利用&&
或者and
(表示“与”)、||
或者or
(表示“或”)、!
或者not
(表示 “ 非”)组合使用多个限制规则,例如(http&&ip.dst==192.168.0.123)||dns
;再如要排除ARP包,则使用!arp
或者not arp
。
6. Wireshark实例
Wireshark面板:
快捷工具栏:
这里以ARP协议为例,演示数据的分析过程。首先启动监听(没有设置捕获过滤器),等过一段时间后,停止抓包。然后在显示过滤器输人arp
(注意是小写)作为过滤条件,按回车。得到ARP包如下:
Wireshark窗口的数据帧列表面板的每行都对应着网络上单独的一个数据包。默认情况下,每行会显示数据包的时间戳、源地址、目的地址 、所使用的协议、关于数据包的一些信息。通过单击此列表中的某一行,可以获悉更详细的信息。
这部分的信息分布与查看的协议有关,一般包含有物理层、数据链路层、网络层、传输层等各层信息。
-
在物理层可以得到线路的字节数和捕获到的字节数 ,还有抓包的时间戳和距离第一次抓包的时间间隔等信息。
-
在数据链路层可以得到源网卡物理地址和目的网卡物理地址以及帧类型。
-
在网络层可以得到版本号、源IP和目的IP地址、报头长度、包的总长度、TTL 和网络协议等信息。
-
在传输层可以得到源端口和目的端口以及序列号和控制位等有效信息。
展开数据包细节中的第一行,该行主要包含一些关于帧的详细信息:
- 帧的编号:1667( 捕获时的编号)。
- 帧的大小:60B。再将4B的CRC计算在里面,就刚好满足最小64B的要求。
- 接下来的信息还有帧被捕获的日期和时间、帧距离前一个帧的捕获时间差、帧距离第一个帧的捕获时间差等,以及表明帧装载的协议是ARP。
展开第2行,该行主要包含地址一类的信息:
展开第3行,主要包含协议的格式:
地址解析协议有硬件类型(以太网)、协议类型(IP)、硬件大小(6)、协议大小(4)、发送方MAC地址、发送方IP地 址、目的MAC地址、目的IP地址等。