Wireshark简介
Wireshark(前称Ethereal)是一个网络封包分析软件。网络封包分析软件的功能是撷取网络封包,并尽可能显示出最为详细的网络封包资料。Wireshark使用WinPCAP作为接口,直接与网卡进行数据报文交换。在过去,网络封包分析软件是非常昂贵的,或是专门属于盈利用的软件。Ethereal的出现改变了这一切。在GNUGPL通用许可证的保障范围底下,使用者可以以免费的代价取得软件与其源代码,并拥有针对其源代码修改及客制化的权利。Ethereal是全世界最广泛的网络封包分析软件之一。
软件下载路径:wireshark官网(我现在网络不行 打不开)。按照系统版本选择下载,下载完成后,按照软件提示一路Next安装。
如果是Win10系统,安装完成后,选择抓包但是不显示网卡,下载win10pcap兼容性安装包
Wireshark主要分为这几个界面
1. Display Filter(显示过滤器),? 用于设置过滤条件进行数据包列表过滤。菜单路径:Analyze -->?Display Filters。
?2. Packet List Pane(数据包列表), 显示捕获到的数据包,每个数据包包含编号,时间戳,源地址,目标地址,协议,长度,以及数据包信息。 不同协议的数据包使用了不同的颜色区分显示。
3. Packet Details Pane(数据包详细信息), 在数据包列表中选择指定数据包,在数据包详细信息中会显示数据包的所有详细信息内容。数据包详细信息面板是最重要的,用来查看协议中的每一个字段。各行信息分别为
? (1)Frame:???物理层的数据帧概况
? (2)Ethernet?II:?数据链路层以太网帧头部信息
? (3)Internet Protocol Version 4:?互联网层IP包头部信息
? (4)Transmission Control Protocol:??传输层T的数据段头部信息,此处是TCP
? (5)Hypertext Transfer Protocol:??应用层的信息,下面是HTTP协议
?从这个可以看到wireshark捕获到的TCP包中的每个字段。
? 4. Dissector Pane(数据包字节区)。
wireshark过滤器表达式的规则
1、抓包过滤器语法和实例
?? 抓包过滤器类型Type(host、net、port)、方向Dir(src、dst)、协议Proto(ether、ip、tcp、udp、http、icmp、ftp等)、逻辑运算符(&& 与、|| 或、!非)
(1)协议过滤
? 比较简单,直接在抓包过滤框中直接输入协议名即可。
? TCP,只显示TCP协议的数据包列表
? HTTP,只查看HTTP协议的数据包列表
? ICMP,只显示ICMP协议的数据包列表
(2)IP过滤
? host 192.168.1.104
src host?192.168.1.104
dst host?192.168.1.104
(3)端口过滤
? port 80
? src port 80
? dst port 80
(4)逻辑运算符&& 与、|| 或、!非
? src host 192.168.1.104 && dst port 80 抓取主机地址为192.168.1.80、目的端口为80的数据包
?host 192.168.1.104 || host 192.168.1.102 抓取主机为192.168.1.104或者192.168.1.102的数据包
? !broadcast 不抓取广播数据包
2、显示过滤器语法和实例
(1)比较操作符
? 比较操作符有== 等于、!= 不等于、> 大于、< 小于、>= 大于等于、<=小于等于。
(2)协议过滤
比较简单,直接在Filter框中直接输入协议名既可以了。注意:协议名称需要输入小写。
? tcp,只显示TCP协议的数据包列表
? http,只查看HTTP协议的数据包列表
? icmp,只显示ICMP协议的数据包列表
(3) ip过滤
?? ip.src ==192.168.1.104 显示源地址为192.168.1.104的数据包列表
?? ip.dst==192.168.1.104, 显示目标地址为192.168.1.104的数据包列表
?? ip.addr == 192.168.1.104 显示源IP地址或目标IP地址为192.168.1.104的数据包列表
(4)端口过滤
? tcp.port ==80,? 显示源主机或者目的主机端口为80的数据包列表。
? tcp.srcport == 80,? 只显示TCP协议的源主机端口为80的数据包列表。
? tcp.dstport == 80,只显示TCP协议的目的主机端口为80的数据包列表。
5) Http模式过滤
? http.request.method=="GET",?? 只显示HTTP GET方法的。
(6)逻辑运算符为 and/or/not
? 过滤多个条件组合时,使用and/or。
Wireshark抓包分析TCP三次握手
(1)TCP三次握手连接建立过程
??? Step1:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;
??? Step2:服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;
?? Step3:服务端发送一个SYN=0,ACK=1的数据包给客户端端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。
第一次握手数据包: 客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接
第二次握手的数据包:?服务器发回确认包, 标志位为 SYN,ACK.
第三次握手的数据包:?客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方.