1.1 学习Wireshark工具的基本操作
学习捕获选项的设置和使用,如考虑源主机和目的主机,正确设置 Capture Filter;捕获后设置 Display Filter。
1.2 PING命令的网络包捕获分析
PING命令是基于ICMP协议而工作的,发送4个包,正常返回四个包。以主机210.31.40.41为例,主要实验步骤为:
(1)设置“捕获过滤”:在 Capture Filter 中填写 host 210.31.40.41;
(2)开始抓包;
(3)在 DOS 下执行 PING 命令;
(4)停止抓包。
(5)设置“显示过滤”: IP.Addr=210.31.40.41
(6)选择某数据包,重点分析其协议部分,特别是协议首部内容,点开所有带+号的内容。
(7)针对重要内容截屏,并解析协议字段中的内容,一并写入 WORD 文档中。
通过简单的分析我们可以看到,Ping命令使用ICMP协议,每发送一个包到210.31.40.41后都会收到一个包,一共发送了四个包,收到四个包如所示。分析其中的一个包,可以看到其类型长度为8,数据长度为32byte,见图
1.3 TRACERT 命令数据捕获
观察路由跳步过程。分别自行选择校内外 2 个目标主机。比如,
(1)校内:tracert 210.31.32.8
首先,在执行tracert命令之前,先在Wireshark中过滤选择出210.31.32.8的相关请求。之后,win+r打开cmd界面执行tracert命令
截获到的数据如下图,
通过对该抓包结果的简单分析,可以看出,抓到的协议类型主要有两种即ICMP和DNS协议,选择不同类型的协议来查看其具体内容。
通过上图简单的分析查看可以得知,DNS协议从10.10.215.246到210.31.32.8,同时包含了UDP协议,源端口为61149,目标端口为53。DNS对域名210.31.40.41进行了84次标准查询,可以看到在DNS的事务ID为:0xc39f,在DNS服务器中的查询结果在第185行。
ICMP的内容在之前已经分析过了,在这里不在赘述,从图中对比可以看到,data的数据长度变为了64bytes。
通过简单的分析可以看出,在对搜狗进行抓包时出现了两种协议即ICMP和NBNS协议,其中NBNS协议是 TCP/IP 上的 NetBIOS (NetBT) 协议族的一部分,它在基于 NetBIOS 名称访问的网络上提供主机名和地址映射方法。
1.4 端口扫描数据捕获与分析
(1)各组自行下载和安装某个端口扫描工具,比如 NMAP、SUPERSCAN、SCANPORT、
SSPORT、TCPVIEW。
(2)扫描对方的主机,获得开放的端口号。捕获其所有相关信息和协议内容。显示过滤举例:
在这里,使用Zenmap对本机进行端口扫描,扫描结果如下图。
可以看到,本机开放了6个端口,不同端口提供不同的服务,可以看到其中的80端口为Http服务,说明在本机上部署了自己的网站,用80作为端口。
从图中看到两种协议,TCP和HTTP,这也印证了我之前部署网站的说法。
关闭端口后进行扫描,可以看到被关闭的端口扫描不到了。
1.5 FTP 协议包捕获与分析
登录FTP 服务器:ftp.scene.org,重点捕获其 3 个关键过程:
(1)FTP 服务器的登录
捕获 USER 和 PWD 的内容,分析 FTP、TCP、IP 协议的首部信息。FTP 服务器的端口号为 21,用于控制连接。
在这里使用的是filezilla登陆的FTP服务器,通过对登陆过程的捕获可以看到,登陆的账号为anonymous,密码为[email protected](默认)。
用Wireshark查看FTP、TCP、IP协议的首部信息,如下图。
(2)FTP 文件的下载过程
要求分别下载三个大小不同的文件(小于 1MB、1MB—10MB、10MB 以上),观察 FTP、TCP 和 IP 协议中的数据分片过程。
从图5-3中可以简单看出,下载文件的请求命令为”RETA ”,文件字节大小也不一样。
从发送时间也可以看出来一些差别。介于1MB—10MB的文件可能由于其格式或其他原因,没有正常显示出包的大小和传输时间。不过,通过对比不同的大小的文件,可以得出文件越大TCP切片长度越小,传输的字节越多,所用的传输时间越长。
(3)FTP 服务的退出过程
分析 FTP、TCP、IP 协议的不同内容。
FTP的退出过程在Wireshark的抓包过程中没有捕获到。
1.6 HTTP 协议包的捕获与分析
登录到国内外的一些门户网站上,将主页浏览过程捕获下来,分析其 HTTP、TCP、UDP、
IP 协议的内容。注意 TCP 协议中的端口号。
补充一下HTTP的工作流程:
(1) 客户端通过TCP三次握手与服务器建立连接。
(2) TCP建立连接成功后,向服务器发送http请求
(3) 服务器收到客户端的http请求后,将返回应答,并向客户端发送数据。
(4) 客户端通过TCP四次握手,与服务器断开TCP连接。
国内网站:
国内这里以京东商城为列jd.com(111.13.28.118),捕获主页浏览过程,抓包结果如图。从图中可以看出,No分别为1950、1951、1958时进行了TCP三次握手,此时使用的是TCP协议的80端口。(说明:Wireshark抓包仅限于http,对于https其无法解密识别,国内大部分网站主页都是http,只有在登陆界面或者少数主页是https加密,不过为了掩盖性,大部分网站的头部都以https开头,尽管他们没有发挥任何作用。)
从包的数据中可以分析得出(见图6-2),本机地址10.10.215.246,捕获端口为19651。目标地址为111.13.28.118,开放端口为80,TCP协议数据切片长度为382。在看看HTTP协议,其中http请求头为Mozilla/5.0(Windows NT 10.0;Win64; X64)…以及它的接受语言为中文等等,是正常访问url时向服务器发送的一些数据信息。
1.7 EMAIL 协议包的捕获与分析
登录到校内外的邮件系统,捕获自己的登录信息,重点分析其 SMTP、POP3 协议的内容。注意其端口号分别是 25 和 110。
国内外大部分邮箱采用ssl加密,即https协议,其中http常用端口为80,https常用端口号为443。下面我使用的是foxmail客户端来进行EMAIL协议包的捕获,捕获内容如下图
在Protocol列中可以看到显示的协议有TCP和SMTP。由于SMTP是基于TCP协议的,所以在使用SMTP协议发送邮件之前,首先要通过TCP三次握手建立连接。从图中倒数第三个SMTP包的后面可以看到我发送邮件的邮箱账号。第75帧表示成功登陆邮箱,第78帧表示发送邮件的账户,本例中是****@qq.com。第81帧表示接受邮件的账户,本例中采用qq邮箱为例。第83帧是客户端发送的内容,84帧使用接收了文本的内容。
该界面较为清晰的展示了邮件信息(右键一个SMTP包,选择follow->TCP Stream查看),红色部分为客户端发送的信息,蓝色部分是服务器相应信息。在该界面可以看到客户端的主机名、邮件账户、使用的邮件客户端、邮件内容类型和传输格式等等。也可以看见发送的信息内容,由于内容被转换为base64位格式的信息,进行了加密。
(1)在 FTP 服务中,FTP 数据长度为什么是 1460 字节?
最大传输单元是1460字节是TCP层的报文段(segment)的长度限制。
(2)如何捕获 FTP 服务的结束数据包?
在过滤器中输入ftp,会看到在Information信息列中出现Request:QUIT的内容,表示为ftp的结束包
(3)在端口扫描中,对应的协议有 TCP 和 UDP。应该如何查找某端口对应的服务类型?
在cmd命令行中使用netstat -a -n命令查看。
(4)不指定 IP 地址时,为什么有的邻近主机捕获不到?
每个信息包能够通过网络不同的路径发送,信息包能按照与它们发送时的不同顺序到达。网络协议(IP)仅仅是递送他们,TCP才是能够将它们按照正确顺序组合回原样。IP是一个无连接协议,这就意味着在通信的终点之间没有连续的线路连接。这就导致了会有一些主机捕获不到信息。
(5)PING 命令操作时,为什么会捕获 ARP 协议的数据包?
因为ARP协议是“Address Resolution Protocol” 的缩写。在局域网中,网络中实际传输的是帧,帧里面是有目标主机的MAC地址的。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址以保证通信的顺利进行。
参考文章:
如何关闭139端口及445端口等危险端口
聊一聊HTTPS那些事
TCP协议(1)–TCP首部
wireshark过滤规则及使用方法
wireshark抓包教程
电子邮件抓包分析