![计算机网络安全实验指导](https://wfqqreader-1252317822.image.myqcloud.com/cover/930/35276930/b_35276930.jpg)
第1章
绪论
1.1 用Wireshark分析典型TCP/IP体系中的协议
1.1.1 实验内容
1. 实验目的
通过Wireshark软件分析典型网络协议数据包,理解典型协议格式和存在的问题,为后续学习和相关实验打下基础。
2. 实验内容与要求
(1)安装Wireshark,熟悉功能菜单。
(2)通过HTTP、HTTPS进行访问目标网站(如学校门户网站)、登录邮箱、ping等操作,用Wireshark捕获操作过程中产生的各层协议数据包(要求至少包括IP协议、ICMP协议、TCP协议、UDP协议、HTTP协议),观察数据包格式(特别是协议数据包首部字段值),定位协议数据包中的应用数据(如登录时的用户名和口令在数据包中的位置;如果使用加密协议通信,则看不到应用数据,应明确指出)。
(3)将实验过程的输入及运行结果截图放入实验报告中。
3. 实验环境
(1)实验室环境,实验用机的操作系统为Windows。
(2)最新版本的Wireshark软件(https://www.wireshark.org/download.html)。
(3)访问的目标网站可由教师指定,邮箱可用自己的邮箱。
1.1.2 Wireshark简介
Wireshark的前身是Ethereal,2006年6月,因为商标的问题,Ethereal更名为Wireshark。Wireshark使用WinPcap作为接口,直接与网卡进行数据报文交换。
下面简要介绍Wireshark的安装与使用。需要说明的是,不同系统平台上不同版本的Wireshark的安装和用户界面可能会有所不同。本书示例使用的Wireshark版本为Windows操作系统下的Stable Release 3.2.5, Windows Installer 64-bit。
注意:除了操作系统平台(如Windows、Linux、macOS)不同,同种操作系统也有64位和32位的差别。下载时,需根据计算机的相关信息选择合适的版本,如果选择的版本不对,安装时系统会给出错误提示。
1. Wireshark的安装
从Wireshark官网上下载软件后,进行解压,双击安装文件,弹出安装窗口,单击“Next”按钮即开始安装。在Windows环境下,安装过程中一般直接单击“Next”按钮就可以了。
需要说明的是,Wireshark要求安装Npcap或WinPcap接口(如果系统中没有安装,则在安装过程会提示安装,如图1-1所示)。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-009-1.jpg?sign=1738859353-1xxZjtRyUJrDpkFmOMxYHpOkeGUvRsGk-0-25d307f33f06f8b57b4d0354bd3c4faa)
图1-1 安装Wireshark所需的Npcap
在安装Npcap时,有一些选项可以设置(如图1-2所示),通常情况下,使用默认设置即可。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-009-2.jpg?sign=1738859353-rmOUaDoAqW32hlHC3lKOib3dk7a5I7Lp-0-e3c79e7d3187c3bc446997a331ad7cf1)
图1-2 Npcap安装可选项
2. Wireshark的使用
Wireshark主界面如图1-3所示。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-010-1.jpg?sign=1738859353-TKSecY68hq3ZcUeboVXNGvL5qyZnz0JB-0-5d92b5cf8afdba5cf951842538747cf3)
图1-3 Wireshark主界面
主界面上显示了Wireshark能够感知的所有网络接口,也可以通过执行菜单命令“捕获”→“选项”弹出“捕获接口”对话框,在对话框中的“输入”选项卡下也能看到网络接口信息,如图1-4所示。通常情况下,如果主机是通过有线局域网连接的,对应的网络接口是图1-4所示的“以太网”;如果是通过Wi-Fi连接的,对应的网络接口是图1-5所示的“WLAN”。如果Wireshark启动后,软件找不到任何一个网络接口,在Windows 10(Windows 7)操作系统中,一个可能的原因是用普通用户身份启动的Wireshark,用管理员身份启动Wireshark即可解决,启动方法如图1-6所示;其他可能的原因有WinPcap版本或安装过程有问题、没有启动NPF服务等。观察接口名称右边的流量曲线图,即可知网络接口上是否有网络流量,如果没有流量,则是一条直线,如图1-3所示的本地连接*7、*8。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-010-2.jpg?sign=1738859353-3CIwvTo37iMdK2at1VeEfivd3hmCufdq-0-c2c2edc30ee2c5976d5f81fa3ae0140b)
图1-4 “捕获接口”对话框中的网络接口信息
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-011-1.jpg?sign=1738859353-SDtJdJDBCTvI5UO2JdLHVEO9cCWgZuTy-0-28db88c4a2641e9cd2516779735c66e9)
图1-5 WLAN接口
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-011-2.jpg?sign=1738859353-J7FG0CrNd2Py4LiA68HkKXYUd9MajDIs-0-3a78f09af01aeb289c171f0962301f95)
图1-6 在Windows 10中用管理员身份启动Wireshark
为了监听网络流量,需要勾选图1-4中的“在所有接口上使用混杂模式”选项。
如果不勾选“在所有接口上使用混杂模式”选项,则Wireshark只能捕获本机上流入流出的数据包。假如在其他应用中将网络接口设置为混杂模式,而在Wireshark中关闭了这一选项,则Wireshark中该网络接口依旧使用混杂模式进行数据包捕获。但同时也应注意到,设置为混杂模式后,并非就能够获取局域网中的所有数据包,在交换网络中Wireshark依旧只能捕获本机上流入流出的数据包。
“捕获接口”对话框中还有“输出”“选项”等选项卡,一般情况下使用默认设置即可。
在开始捕获网络数据包之前,可以为指定网络接口上的捕获过程设置过滤器,也就是只捕获指定类型的网络数据包,如图1-7所示(单击图1-7下部“所选择接口的捕获过滤器”右边的小橘黄块,弹出预定义的过滤器供用户选择)。Wireshark定义了一些常用的过滤器,如图1-8所示,在该界面中可以新增()、删除(
)过滤器。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-012-1.jpg?sign=1738859353-nbHDAkkihdurpiAont6AnIE6TDH5a5By-0-a635f8a8816426a1ccfbd6db37652810)
图1-7 为指定网络接口上的捕获过程设置过滤器
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-012-2.jpg?sign=1738859353-b6SclLaqzLfLI3VyRi3wgKRZO4M3jDqn-0-6a17a21008ff647ae7a4fbfb720bdd19)
图1-8 常用的过滤器
捕获过滤器语法规则如下:
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-012-01.jpg?sign=1738859353-kZHnZ37YPQm9CcdTFePGDOR7Fpc6IIRq-0-e422f756772735e57cc5cd1404ee4ba2)
各字段说明如下。
• Protocol:指定捕获的协议,常见协议包括ether、fddi、ip、arp、rarp、decnet、lat、sca、moprc、mopdl、tcp、udp等。如果不指明协议,默认支持全部协议。
• Direction:指定数据包方向,选项包括src、dst、src and dst、src or dst。如果不指明方向,默认使用src or dst。
• Host(s):指定主机,选项包括net、port、host、portrange,默认使用host。
• Logical Operations:指定逻辑运算符,选项包括not、and、or,其中not具有最高优先级,and、or优先级相同,从左向右运算。
下面给出几个过滤器示例:
(1)捕获目标端口为23的TCP协议包:tcp dst port 23。
(2)捕获来源IP地址为18.11.3.22的IP协议包:ip src host 18.11.3.22。
(3)捕获来源端口号在2000~3000之间的TCP协议包:tcp src portrange 2000-3000。
(4)捕获端口号在7000~8000之间和80的TCP协议包:tcp portrange 7000-8000 and port 80。
(5)捕获非TCP协议的包:not tcp。
选择好过滤器或使用默认过滤器就可以开始捕获数据包,单击主界面功能图标行最左边的蓝色小图标(也可以通过“捕获”菜单项进入),即启动了捕获过程,捕获结果窗口如图1-9所示。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-013-1.jpg?sign=1738859353-9y072NzzFdXq4AmlHnxiE06hlWqg7QrL-0-3e41ed15f7a07c38887a28e2690182ea)
图1-9 捕获结果窗口
如图1-9所示,结果显示主要包括三部分:上部为数据包列表项,按时间先后顺序列出了每一个数据包的简要信息,主要包括时间、源地址、目的地址、协议、长度、简要信息等,每个数据包一行。中间部分显示指定数据包(上部数据包列表部分被选中的数据包)的协议信息,从上到下分别显示出该数据包的封装协议,图1-9中所示的HTTP协议数据包通过TCP协议传输,TCP数据包通过IPv4协议传输,IPv4协议包通过Ethernet协议传输等。下部为指定协议(中部协议列表部分被选择的协议)的数据包内容,通常是以十六进制数来表示的。
双击中间部分的某一协议可以弹出该协议的详细信息显示窗口。
由于捕获过程中捕获了各种协议的大量数据包,显示在图1-9所示的结果窗口上部,不利于查看。因此,Wireshark为结果显示提供了显示过滤功能。如图1-10所示,在结果查看过滤器输入处选择了“http.request.method = = “POST””过滤器,则上部的捕获结果窗口只显示HTTP协议的POST请求数据包。不同协议支持的过滤器有所不同,用户在输入协议名称时,软件会适时地提示可供选择的过滤器的主要内容。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-014-1.jpg?sign=1738859353-grEXLEn68jYWFuo9m9jy6Wq9BI9I9wf1-0-72181ed4870687ea587796e730656c11)
图1-10 捕获结果查看过滤器
显示过滤器语法如下:<协议> <字段> <比较运算符> <值>。
其中,比较运算符包括==、!=、<、>、>=、=,逻辑运算符包括and、or、not(没有条件满足)、xor(有且仅有一个条件满足)。
例如,
(1)显示TCP协议的包:tcp。
(2)显示TCP协议源端口为23的包:tcp.srcport==23。
(3)显示UDP协议目标端口大于3000的包:udp.dstport>3000。
(4)显示TCP协议中长度大于512的包:tcp.len>512。
如果要结束数据包捕获,只需单击主界面功能图标行的第2个红色方块小图标即可(也可以通过“捕获”菜单中的下拉菜单来停止)。捕获结束后,软件提供了各种统计分析功能。
1.1.3 实验示例
本节给出实验要求中的部分内容示例(截图对一些敏感信息进行了涂黑处理)。
启动Wireshark并开始监听。
1. 登录某不加密的Web邮箱
Web邮箱登录界面主要部分如图1-11所示。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-015-1.jpg?sign=1738859353-VpTafbGRk5t8lOEWU72hNGPWpykG4SsY-0-29673146f90d319cbcb4574728c71898)
图1-11 Web邮箱登录界面主要部分
在捕获结果窗口中,设置显示过滤器,只显示HTTP协议的POST请求(通过这个请求来提供用户名和口令),结果如图1-12所示。
在下部POST请求数据包内容部分,我们可以看到输入邮箱名(wulifa)和口令(nnnn)的明文(如图1-12中红框所示),说明该Web邮箱没有启用HTTPS加密传输,而是采用HTTP协议明文传输。需要注意的是,实验时,输入用户名和口令时,不要输入自己真实的用户名和口令,以免泄露自己的隐私信息。
2. 登录支持加密的Webmail(以vip.163.com为例)
登录界面如图1-13所示。
利用Wireshark捕获登录过程的交互数据包,如图1-14所示。从该图中可以看出,登录wulifa@vip.163.com过程中的HTTP协议报文作为TLS安全协议的数据被加密,无法看到用户提交的任何信息。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-016-1.jpg?sign=1738859353-W75htlAmlMdoTEfVZkrm9IpX2J1ZLANN-0-30e4257cfafba1ab3ec6321f644fdd86)
图1-12 Web邮箱登录请求数据包捕获
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-016-2.jpg?sign=1738859353-hF8VimAX44xDfAxIdtacMzE87TXN10qf-0-a15edc4f439bc7f68e3a44cde6890d40)
图1-13 登录wulifa@vip.163.com
通过登录过程数据包还可以观察到TCP协议的三次握手过程,图1-15所示的是连接请求(第一次握手),图1-16所示的是对请求的响应(第二次握手),图1-17所示的是对响应的响应(第三次握手)。同时,还可以从TCP协议首部数据包中看到相关序列号、源端口、目的端口等信息。图1-18是数据包详细信息弹出窗口中显示的TCP包固定首部的20个字节的内容。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-017-1.jpg?sign=1738859353-AmtCIPHcd3m6vTq51LqjT1JupVPSQbNq-0-899475a128623c735f4d012cee34b53e)
图1-14 登录wulifa@vip.163.com过程中的协议数据包
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-017-2.jpg?sign=1738859353-5XtAurJtROL5ThX9BDZsVl4rPB1GKZbe-0-4e5fda70d6a9c1ad35940451e18650a2)
图1-15 TCP连接的第一次握手(SYN标志置位)
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-018-1.jpg?sign=1738859353-nZEpPRNYCnMBL1km4VeheZfdjSLWLphl-0-0edfb98d65b45fd462e79ec2f915dbae)
图1-16 TCP连接的第二次握手(SYN、ACK标志置位)
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-018-2.jpg?sign=1738859353-pA66k6E2S30GzFTYjqW3dzCz2fV3qgAg-0-003a908a60acb29914f9a982b851ad01)
图1-17 TCP连接的第三次握手(ACK标志置位)
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-019-1.jpg?sign=1738859353-beOWLjEkvw7GBDIs7p1tZR3xpDiCybxT-0-e37f81b5f41880ecde587e9ad5531232)
图1-18 TCP协议固定首部(20个字节)
3. 通过ping操作观察ICMP协议数据包
启动一个命令窗口(cmd),在命令窗口中执行命令:ping www.njupt.edu.cn,即可用Wireshark捕获到ping命令所产生的ICMP协议报文,如图1-19所示。图中显示ping命令使用的是ICMPv6协议,而不是ICMPv4协议。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-019-2.jpg?sign=1738859353-iCRbpSszgOG55sWjpQ3mTLoAGO1vt1jV-0-d0e0c3fedfa0342de9f402ea3784c880)
图1-19 ICMPv6协议
4. 观察IPv4协议数据包格式
在前述操作过程中,一般都可以捕获到IP协议数据包。IPv4协议数据包示例如图1-20所示。图1-21所示的是在数据包详细信息弹出窗口中显示的IPv4数据包固定首部信息(20个字节),单击首部中某一字段,即可定位到该字段在数据块中的位置,图1-22所示的是源IP地址字段。
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-020-1.jpg?sign=1738859353-rOpXQ3iAO67vAZMlNh1OuSIEKVDfYO05-0-da0ecae036c72c5a1d960f706824865f)
图1-20 IPv4协议数据包示例
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-020-2.jpg?sign=1738859353-tRjLcFzqPzJK9yzUFZwmuGnr9nwEXUzJ-0-110212e5c3adca584149fe20cff5c055)
图1-21 IPv4数据包固定首部信息
![](https://epubservercos.yuewen.com/7E3453/18822094208349606/epubprivate/OEBPS/Images/39779-00-021-1.jpg?sign=1738859353-0flbCvG9QTdnlN9QbPt2vt8P9kE1C4l7-0-296f14068194e2e3dd78f73dd8144000)
图1-22 IPv4首部展开后源IP地址字段内容