一个计算机技术爱好者与学习者

0%

Wireshark入门篇

1. Wireshark简介

Wireshark: The world’s most popular network protocol analyzer.

Wireshark最初是一个名为Ethereal的项目,在2006年更名为Wireshark。Wireshark是一个免费且开源的网络协议分析工具,可以用于捕获和分析网络数据包。它支持超过2,000种协议,并且可以深入分析每个协议的细节。

参考文档:

2. 安装抓包工具

2.1. 安装Wireshark

1、安装wireshark
访问Wireshark下载页,下载对应系统版本的Wireshark,双击安装。

2、配置命令行启动wireshark
macos中,wireshark默认安装路径为/Applications/Wireshark.app/Contents/MacOS/Wireshark
想要在命令行中直接启动wireshark,最好是配置一个软链

1
2
3
ln -s /Applications/Wireshark.app/Contents/MacOS/Wireshark /usr/local/bin/wireshark
which wireshark
wireshark

2.2. 安装Tshark

Tshark是Wireshark的命令行版本,可以在终端中使用。它可以用于捕获和分析网络数据包。

1、安装 epel 扩展源

1
yum install -y epel-release

2、安装wireshark

1
yum install -y wireshark

wireshark包含了tshark工具。

3、验证安装

1
tshark -v

参考文档:Tshark - INSTALL

2.3. 安装tcpdump

tcpdump是另一个命令行网络协议分析工具,可以用于捕获和分析网络数据包。

1、安装tcpdump

1
yum install -y tcpdump

2、验证安装

1
tcpdump --version

3. 抓取数据包

3.1. Wireshark抓包

场景:访问www.voidking.com,抓取数据包。

1、打开Wireshark,选择要捕获的接口。

2、在“Capture Options”对话框中,可以选择要捕获的协议和过滤器。
本例中,选择host过滤器,对应输入host www.voidking.com
本步骤可以省略,直接抓取所有的流量,然后在抓包后进行过滤。

3、点击“Start”按钮开始捕获数据包。

4、浏览器访问http://www.voidking.com

5、Wireshark中捕获到指定域名的数据包,可以进行分析了。
捕获到的数据包,可以再次进行过滤,例如使用http过滤器,对应输入http

我们可以点击任意一个 HTTP 数据包来查看其详细信息,如请求方法、请求头、响应状态码、响应头、响应内容等。
也可以右键点击一个数据包,并选择“Follow > HTTP Stream”来查看整个 HTTP 会话的内容。

请注意,如果使用HTTPS协议进行通信,Wireshark将无法直接解密和查看通信内容。但是,Wireshark仍然可以捕获加密的数据包,包括TLS握手和加密的应用数据,可以通过分析这些数据包来获取有关通信的一些信息。

3.2. Tshark命令抓包

场景:访问www.voidking.com,抓取数据包。

1、查看可以抓包的网络接口

1
tshark -D

2、捕获数据包

1
tshark -i eth0 -f "host www.voidking.com" -w stream.pcap

3、再开一个终端 curl www.voidking.com

4、读取数据包

1
2
3
tshark -r stream.pcap
tshark -r stream.pcap -V
tshark -r stream.pcap -Y "http" -V

参考文档:Tshark - Capture Pcap

3.3. tcpdump命令抓包

场景:访问www.voidking.com,抓取数据包。

1、查看可以抓包的网络接口

1
tcpdump -D

2、查看www.voidking.com域名主机

1
ping www.voidking.com

主机为:8.136.13.58

3、捕获数据包

1
tcpdump -i eth0 host 8.136.13.58 -w stream.pcap

4、读取数据包

1
2
3
4
5
tcpdump -r stream.pcap
tcpdump -r stream.pcap -v
tcpdump -r stream.pcap -vvv

tshark -r stream.pcap -V

参考文档:在 Linux 命令行中使用 tcpdump 抓包

4. 查看数据包

1、Wireshark打开捕获到的数据包文件(.pcap文件)。

2、Wireshark将显示捕获到的所有数据包。

3、可以使用过滤器过滤出特定的流量。

4、点击任何数据包以查看其详细信息,包括协议、源和目标地址、时间戳和数据内容等。

5. Wireshark过滤器表达式

Wireshark过滤器表达式是用来过滤和搜索数据包的一种机制。这些表达式是基于BPF过滤器的语法,并支持大量的协议和字段过滤器。

5.1. 逻辑运算符

Wireshark支持逻辑运算符“and”、“or”和“not”。可以使用这些运算符将多个过滤条件组合起来。
例如,“tcp and port 80”表示同时过滤TCP流量和端口为80的流量。

5.2. 比较运算符

Wireshark支持比较运算符“==”、“!=”、“>”、“<”、“>=”和“<=”。可以使用这些运算符比较数据包中的字段值。
例如,“ip.src == 192.168.1.1”表示源IP地址为192.168.1.1的数据包。

5.3. 字段过滤器

Wireshark支持许多字段过滤器,这些过滤器用于过滤和搜索特定的协议字段。
例如,“tcp.port”表示TCP端口,而“http.request.uri”表示HTTP请求的URI字段。可以在过滤器表达式中使用这些字段过滤器来定位特定的数据包。

5.4. 协议过滤器

Wireshark支持多种协议过滤器,这些过滤器用于过滤特定的协议流量。
例如,“tcp”表示TCP流量,“udp”表示UDP流量,“http”表示HTTP流量等。

5.5. 限制表达式

Wireshark支持一些限制表达式,这些表达式用于限制过滤器的搜索结果。
例如,“ip.src == 192.168.1.1 limit 10”表示仅显示源IP地址为192.168.1.1的前10个数据包。

6. Wireshark与TCP报文

参考文档:工具:Wireshark介绍及抓包分析

7. Wireshark视图

7.1. 时间显示格式

视图,时间显示格式,选择方便阅读的格式。

8. Wireshark统计

8.1. 已解析地址

统计,已解析地址,查看IP地址对应的域名。

8.2. 会话

统计,会话,查看会话的通信量。

8.3. I/O图表

统计,I/O图表,查看整个会话周期或者特定时间段内的数据包情况。

8.4. 流量图

统计,流量图,查看会话的流量情况。
能够直观看到TCP/IP握手、挥手和数据传输,适合分析丢包、重传、重复ACK等情况。

8.5. HTTP分组计数器

统计,HTTP,分组计数器,查看HTTP请求的应答情况。
能够直观看到HTTP会话的应答情况,比如说200 OK的数量,404的数量等。

8.6. TCP流图形

统计,TCP流图形。
能够看到整个会话周期或者特定时间段内会话的吞吐量、往返时间、窗口尺寸等情况。

9. Wireshark分析

9.1. 专家信息

分析,专家信息。
专家信息可展示出数据包所有分组的问题,并自动进行问题分级,便于查看数据包的错误情况。

找到相应的错误后,右击”作为过滤器应用”->”选中”,即可过滤出该类型的所有数据包。

9.2. 追踪流

在分析数据包时,找到了有问题的一帧,想看看此帧所属的TCP流的情况。
分析,追踪流。
或者,鼠标落在此帧上右击,找到”追踪流”,选中”TCP流”即可过滤出此帧所属的TCP会话。

10. 后记

多学,多试,多用,熟能生巧!

  • 本文作者: 好好学习的郝
  • 原文链接: https://www.voidking.com/dev-wireshark-start/
  • 版权声明: 本文采用 BY-NC-SA 许可协议,转载请注明出处!源站会即时更新知识点并修正错误,欢迎访问~
  • 微信公众号同步更新,欢迎关注~