更多相关内容可查看
在一个阳光明媚的周五清晨,一起快乐的玩耍一下Wireshark
Linux版下载
1.使用yum安装wireshark
yum -y install wireshark
2.使用yum安装wireshark-gnome
yum -y install wireshark-gnome
3.启动会自动弹出Wireshark
sudo wireshark
4.指定网络接口进行数据包捕获
5.我这里选择了我的服务器-start
6.查看数据
Windows版下载
附官网地址:https://www.wireshark.org/download.html
1.按照系统版本选择下载,下载完成后,按照软件提示一路Next安装即可
Wireshark使用
Linux与Windows界面稍有不同,因Linux在上文已经描述过了,所以这里以windows的为例,来进行抓包尝试
1.打开Wireshark网络分析器,我这里选择了WLAN第一个进行抓包,就可以进行玩耍了
2.进行数据过滤--会发现有很多大量的信息数据,想找一个自己想要的数据去分析比较费劲
这里是ping的huawei的地址
ping www.huawei.com
过滤条件为
ip.addr == 122.5.53.109 and icmp
3.针对华为输出的数据进行数据分区
4.数据列表区分析
5.数据详细区分析
Wireshark捕获的网络数据包的详细信息,分为以下四部分:
Frame Information(帧信息):
- Frame 1380: 这是数据包的序号,表明这是捕获的第1380个数据包。
- 74 bytes on wire (592 bits): 数据包在网络上传输时的大小是74字节,或者592位。
- 74 bytes captured (592 bits): 实际捕获的数据包大小也是74字节,或者592位。
Ethernet Information(以太网信息):
- Ethernet II: 表示使用的是Ethernet II帧类型,这是最常见的以太网帧格式。
- Src: Intel_52:62:e6 (3c:f0:11:52:62:e6): 源MAC地址是3c:f0:11:52:62:e6,制造商是Intel。
- Dst: Cisco_fff:ff:20 (00:00:0c:ff:ff:20): 目标MAC地址是00:00:0c:ff:ff:20,制造商是Cisco。
IP Information(IP信息):
- Internet Protocol Version 4: 表明这是一个IPv4数据包。
- Src: 10.46.184.213: 源IP地址是10.46.184.213。
- Dst: 122.55.53.109: 目标IP地址是122.55.53.109。
Protocol Information(协议信息):
- Internet Control Message Protocol: 表明数据包使用的是ICMP协议,这是用于发送错误消息和操作信息的网络层协议。
Wireshark测试Tcp三次握手
Tcp三次握手流程:
- 第一步:客户端发送一个SYN=1,ACK=0标志的数据包给服务端,请求进行连接,这是第一次握手;
- 第二步:服务端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它,可以通讯了,并且让客户端发送一个确认数据包,这是第二次握手;
- 第三步:服务端发送一个SYN=0,ACK=1的数据包给客户端,告诉它连接已被确认,这就是第三次握手。TCP连接建立,开始通讯。
1.ping一下百度,进行抓包尝试
ping命令
ping www.baidu.com
过滤条件
ip.addr == 110.242.68.4
2.分析详细信息
① 第一次握手:客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图。
根据以上图示可以看出一些重要信息
- Info:52395->80代表客户端请求建立连接
- SYN:标志位,表示请求建立连接
- Seq = 0 :初始建立连接值为0,数据包的相对序列号从0开始,表示当前还没有发送数据
- Ack =0:初始建立连接值为0,已经收到包的数量,表示当前没有接收到数据
② 第二次握手:服务器发回确认包, 标志位为 SYN,ACK
根据以上图示可以看出一些重要信息
- Seq = 0 :初始建立值为0,表示当前还没有发送数据
- Ack = 1:表示当前端成功接收的数据位数,虽然客户端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位。(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)
③ 第三次握手:客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1
根据以上图示可以看出一些重要信息
- Seq = 1 :表示当前已经发送1个数据
- Ack = 1 :表示当前端成功接收的数据位数,虽然服务端没有发送任何有效数据,确认号还是被加1,因为包含SYN或FIN标志位(并不会对有效数据的计数产生影响,因为含有SYN或FIN标志位的包并不携带有效数据)。
由此可见我们已经证实了TCP三次握手的具体内容,看来课本还是没有骗我们的
Wireshark常见过滤条件
以下是一些常见的 Wireshark 过滤条件写法
ip.addr == 192.168.1.1:过滤所有源或目标 IP 地址为 192.168.1.1 的数据包。
ip.src == 192.168.1.1:过滤所有源 IP 地址为 192.168.1.1 的数据包。
ip.dst == 192.168.1.1:过滤所有目标 IP 地址为 192.168.1.1 的数据包。
tcp.port == 80:过滤所有 TCP 端口为 80 的数据包。
udp.port == 53:过滤所有 UDP 端口为 53 的数据包。
http:过滤所有 HTTP 协议的数据包。
ftp:过滤所有 FTP 协议的数据包。
icmp:过滤所有 ICMP 协议的数据包。
frame.len == 64:过滤所有长度为 64 字节的数据包。
ip.addr == 192.168.1.1 && tcp.port == 80:过滤所有源或目标 IP 地址为 192.168.1.1 且 TCP 端口为 80 的数据包。
ip.addr == 192.168.1.1 || tcp.port == 80:过滤所有源或目标 IP 地址为 192.168.1.1 或 TCP 端口为 80 的数据包。
!(ip.addr == 192.168.1.1):过滤所有源或目标 IP 地址不是 192.168.1.1 的数据包。
本篇小结
看完本篇相信很多朋友都能得到收获,不管你是摸鱼刷到这篇文章还是确实需要这个来帮助工作,都希望能够给你带来帮助,为你的技能池再增添一例!