
项目2 Wireshark抓包实验
项目介绍
本项目介绍了Wireshark的使用方法。读者阅读本项目后,将会了解到如何使用Wireshark工具查看分析需要的数据信息。
任务目的
1. 掌握Wireshark软件的安装。
2. 掌握Wireshark软件的基本使用。
任务环境
Wireshark抓包实验的拓扑如图2-1所示。

图2-1 实验拓扑
实验环境镜像配置说明如表2-1所示。
表2-1 实验环境镜像配置说明

注:系统默认的账户为root/root@openlab、openlab/user@openlab。
任务内容
1. 安装Wireshark网络数据包分析软件。
2. 使用Wireshark抓包工具抓取网卡数据,并进行报文的过滤与分析。
实验原理
Wireshark是一个免费开源的网络数据包分析软件,用于截取网络数据包并尽可能显示出最为详细的网络数据包数据。为了安全考虑,Wireshark只能查看封包,而不能修改封包的内容,或者发送封包。Wireshark能够对大部分局域网协议进行解析,具有界面简单、操作方便、实时显示捕获数据的优点。Wireshark不是入侵侦测系统,对于网络上的异常流量行为,Wireshark不会产生警示或任何提示。然而,仔细分析Wireshark截取的封包能够帮助使用者对于网络行为有更清楚的了解。Wireshark的用途很广,网络管理员可以使用Wireshark检测网络问题,网络安全工程师可以使用Wireshark检查资讯安全相关问题,开发者可以使用Wireshark为新的通信协议除错,普通使用者可以使用Wireshark学习网络协议的相关知识。在使用Wireshark工具时,可以按如下流程进行。
(1)确定在哪个目录下启动Wireshark。若目录选择错误,将无法抓取到预期的数据包。
(2)选择捕获接口。一般选择连接到Internet网络的接口,才能捕获到与网络相关的数据。
(3)使用捕获过滤器。通过设置捕获过滤器,可以避免产生过大的捕获文件。用户在分析数据时,不会受其他数据干扰,还可以为用户节约大量的时间。
(4)使用显示过滤器。为了使过滤的数据包更细致,可以使用显示过滤器进行过滤。
(5)使用着色规则。通常用显示过滤器过滤后的数据,都是有用的数据包。如果想更加突出地显示某个会话,可以使用着色规则高亮显示。
(6)构建图表。如果用户想要更明显地看出一个网络中数据的变化情况,使用图表的形式可以很方便地展现数据分布情况。
(7)重组数据。由于传输的文件较大,信息分布在多个数据包中。为了能够查看到整个图片或文件,这时候就需要使用重组数据的方法来实现。
实验步骤
1. 安装Wireshark
步骤1 单击终端图标,打开终端,执行su root命令,切换到root用户。
步骤2 执行apt-get install wireshark命令,安装Wireshark,安装过程如下所示。

说明:如果软件已经安装,将会提示“wireshark is already the newest version”的信息。
步骤3 执行wireshark命令,打开Wireshark。
说明:执行wireshark命令后可能会弹出报错信息,关闭报错弹框后,Wireshark可以正常使用。
步骤4 查看Wireshark的主界面,如图2-2所示。

图2-2 Wireshark主界面
其中,第一行是Wireshark的主界面操作菜单;第二行是一些常用的快捷按钮,可以将鼠标指针移动到某个图标上以获得其功能说明。
2. 使用Wireshark
步骤1 选择需要抓包的网卡。
Wireshark捕获机器上某一块网卡的网络包,当机器上有多块网卡时,需要选择一个网卡。请按下面的方式选择网卡。
• 方式一
选择网卡“eth0”,单击开始按钮,如图2-3所示。

图2-3 方式一选择网卡
• 方式二
在菜单栏选择“Capture >Interfaces”,进入选择网卡的页面,如图2-4所示。

图2-4 方式二选择网卡
选择网卡“eth0”,单击“Start”,进入抓包页面。
步骤2 单击浏览器图标,打开浏览器,在浏览器上访问www.sdnlab.com进行抓包。
说明:如果实验环境无法连接外网,则将命令中的www.sdnlab.com替换为OneLab实验平台的地址。
步骤3 单击停止按钮停止抓包,抓包结果如图2-5所示。

图2-5 Wireshark抓包信息
其中
• 图2-5中①为DISPLAY FILTER(显示过滤器),用于查找捕捉记录中的内容。
• 图2-5中②为PACKET LIST PANE(封包列表),封包列表中显示所有已经捕获的封包。可以看到发送或接收方的MAC/IP地址、TCP/UDP端口号、协议或封包的内容。
• 图2-5中③为PACKET DETAILS PANE(封包详细信息),这里显示的是在封包列表中被选中项目的详细信息。
• 图2-5中④为DISSECTOR PANE(十六进制数据查看面板),这里显示的内容与“封包详细信息”相同,只是以十六进制的格式表述。
步骤4 根据抓包结果,分析抓包数据。
• 在封包列表部分选择一条TCP数据,如图2-6所示。

图2-6 TCP数据
• 双击该数据,进入详细信息页面,或直接在封包详细信息窗口查看详细信息,如图2-7所示。

图2-7 TCP封包详情
其中
Frame:表示物理层数据帧概况。
Ethernet II:表示数据链路层以太网帧头部信息。
Internet Protocol Version 4:表示互联网IP包头信息。
Transmission Control Protocol:表示传输层数据段头部信息,此处为TCP。
• 展开报文内容,查看报文详情,如图2-8所示。

图2-8 TCP报文详情
其中
数据链路层显示源MAC地址和目的MAC地址。
网络层IP的版本信息显示为IPv4,协议为TCP,源IP地址30.0.1.12即本机IP地址,目的IP地址91.189.89.240即远端服务器地址。
源端口为38755,目的端口为80。
步骤5 过滤报文信息。
• 过滤源IP地址。
如查找源地址为30.0.1.12的报文,则在过滤框中输入ip.src==30.0.1.12进行过滤,如图2-9所示。

图2-9 过滤源IP地址
• 过滤目的IP地址。
如查找目的地址为91.189.89.240的报文,则在过滤框中输入ip.dst==91.189.89.240进行过滤,如图2-10所示。

图2-10 过滤目的IP地址
• 过滤端口。
如过滤80端口,则在过滤框中输入tcp.port==80||udp.port==80进行过滤,如图2-11所示。

图2-11 过滤端口
• 过滤协议。
如过滤TCP,则在过滤框中输入协议名tcp进行过滤,如图2-12所示。

图2-12 过滤协议
• 使用连接符and过滤。
过滤两种条件时,使用and连接,如过滤IP为30.0.1.12并且是TCP的报文,则在过滤框中输入ip.src==30.0.1.12 and tcp,如图2-13所示。

图2-13 使用连接符过滤
步骤6 保存Wireshark抓包数据。
捕获的数据信息可以保存在文件中,这样就可以随时在Wireshark中打开此文件进行分析,而无需再次捕获同样的数据。关闭数据捕获屏幕或退出Wireshark时,系统会提示保存信息。
项目总结
本项目详细介绍了Wireshark工具的安装和使用流程,如过滤器的具体使用方法,以及具体数据包的内容分析方法。每台连接到网络的主机获取的数据包都种类繁多、数量庞大,因此,使用Wireshark时要注意确定它截取数据的类型和位置,如果没有一个明确的指定,启动Wireshark之后用户会花费很长时间捕获并不需要的数据,并对网络状况的分析产生干扰。Wireshark等网络相关工具的出现让开发者的效率大大提高,它们清晰地展示了网络状况,比直接使用Linux操作命令更方便。