【网络安全】Wireshark过滤数据包分析TCP三次握手

news2024/11/17 12:01:58

利用Wireshark分析TCP三次握手和四次挥手

  • 一、安装Wireshark
  • 二、界面介绍
    • 1. 网卡类型
    • 2. 首页功能
      • 2.1 按钮界面
      • 2.2 数据包列表
      • 2.3 数据包详细信息列表
    • 3. Wireshark过滤器
      • 3.1 设置数据抓取选项
      • 3.2 显示过滤器
      • 3.3 过滤关系
      • 3.4 复合过滤表达式
      • 3.5 常见用显示过滤需求及其对应表达式
        • 3.5.1 数据链路层
        • 3.5.1 网络层
        • 3.5.1 传输层
        • 3.5.1 应用层
  • 三、wireshark分析TCP三次握手
    • 1. 过滤阿里云服务器
    • 2. 连接阿里云TCP服务端
      • 2.1 TCP第一次握手数据包
      • 2.2 TCP第二次握手数据包
      • 2.3 TCP第三次握手数据包
  • 四、wireshark分析TCP四次挥手
    • 1. 断开阿里云服务器连接
    • 2. TCP第一次挥手数据包
    • 3. TCP第二次挥手数据包
    • 4. TCP第三次挥手数据包
    • 5. TCP第四次挥手数据包


一、安装Wireshark

wireshark是一个网络封包分析软件,它可以撷取网络封包,并尽可能显示出最为详细的网络封包信息,方便我们学习理解。

百度网盘下载链接: https://pan.baidu.com/s/1evR2fse5sXuLwjro5NgIWw?pwd=ub80

二、界面介绍

1. 网卡类型

本次我们用WLAN演示过程

在这里插入图片描述

以抓取WLAN数据包为例

打开软件,选择WLAN,START开始抓包

在这里插入图片描述

2. 首页功能

2.1 按钮界面

  • 列出可用接口
  • 抓包时需要设置的一些选项
  • 开始新的一次抓包
  • 暂停抓包
  • 继续进行本次抓包

在这里插入图片描述

2.2 数据包列表

在数据包列表中又包含每个捕获到的数据包编号,时间戳,源地址,目标地址,协议,长
度,以及数据包信息。

在这里插入图片描述

2.3 数据包详细信息列表

选择指定数据包,查看协议中的每一个字段

在这里插入图片描述

具体字段信息此处不再赘述

在这里插入图片描述

为了排除大量冗余数据包,迅速定位到目标监听数据包,我们采用过滤器的方式

3. Wireshark过滤器

3.1 设置数据抓取选项

先停止数据包抓取,选择常用按钮第二个,设置

在这里插入图片描述

筛选端口号为80的数据(默认筛选WLAN)
在这里插入图片描述

START后选择Continue

在这里插入图片描述

捕获到了所有端口为80的数据

在这里插入图片描述

如果要针对网卡筛选,在Capture中,双击该网卡

单独筛选WLAN网络下80端口的数据

在这里插入图片描述

如果没有设置混杂模式,本地计算机只能获取数据包发往的目标是主机和从主机出去的数据包。如果设置了混杂模式,就可以捕获局域网中所有的数据包。

抓包通常采用混杂模式,抓取范围更大

3.2 显示过滤器

显示过滤器应用于捕获文件,用来告诉wireshark只显示那些符合过滤条件的数据包。

比如输入tcp,可以筛选所有使用tcp协议的数据包

在这里插入图片描述

为了提高筛选效率,我们采用过滤表达式

点击Expression按钮,选择过滤表达式的内容

表达式一般有三组组成,分别是过滤项、过滤关系和过滤值

在这里插入图片描述

过滤项中有很多协议,此处我们以TCP为例

先找到TCP协议

在这里插入图片描述

在协议下找到端口协议

在这里插入图片描述

过滤关系选择==,过滤值填80

在这里插入图片描述

通过Expression填写过滤表达式,在首页过滤器中自动出现一行表达式

筛选使用tcp通信时,端口为80的数据包
tcp.port == 80

在这里插入图片描述

举例:

筛选出源IP或目的IP是117.147.199.51的所有数据包
ip.addr == 117.147.199.51

在这里插入图片描述

筛选出目的地址是117.147.199.51的数据包
ip.dst == 117.147.199.51

在这里插入图片描述

3.3 过滤关系

在这里插入图片描述

过滤关系也可以使用英文表达

比如

筛选出目的地址是117.147.199.51的数据包
ip.dst eq 117.147.199.51

在这里插入图片描述

有时候需要筛选的条件较多,普通表达式满足不了需求,故采用符合过滤表达式

3.4 复合过滤表达式

在这里插入图片描述

逻辑与
筛选同时满足目的地址是117.147.199.51和端口号为80的数据包
ip.dst eq 117.147.199.51 && tcp.port  == 80

逻辑或
筛选同时满足目的地址是117.147.199.51或端口号为80的数据包
ip.dst eq 117.147.199.51 && tcp.port == 80

在这里插入图片描述

3.5 常见用显示过滤需求及其对应表达式

3.5.1 数据链路层

筛选mac地址为04:f9:38:ad:13:26的数据包
eth.addr == 04:f9:38:ad:13:26

筛选源mac地址为04:f9:38:ad:13:26的数据包
eth.src == 04:f9:38:ad:13:26


打开Expression,找到Ethernet,可以参考下面的表达式

在这里插入图片描述

3.5.1 网络层

筛选ip地址为192.168.1.1的数据包
ip.addr == 192.168.1.1

筛选192.168.1.0网段的数据
ip contains 192.168.1
 
筛选192.168.1.1和192.168.1.2之间的数据包
ip.addr == 192.168.1.1 && ip.addr == 
192.168.1.2

筛选从192.168.1.1到192.168.1.2的数据包
ip.src == 192.168.1.1 && ip.dst == 
192.168.1.2

3.5.1 传输层

筛选tcp协议的数据包
tcp

筛选除tcp协议以外的数据包
!tcp

筛选端口为80的数据包
tcp.port == 80

筛选12345端口和80端口之间的数据
tcp.port == 12345 && tcp.port == 80

筛选从12345端口到80端口的数据包
tcp.srcport == 12345 && tcp.dstport == 80

3.5.1 应用层

注:
http中http.request表示请求头中的第一行(如GET index.jsp HTTP/1.1)
http.response表示响应头中的第一行(如HTTP/1.1 200 OK),其他头部都用http.header_name形式。

筛选url中包含.php的http数据包
http.request.uri contains .php

筛选内容包含username的http数据包
http contains username

在这里插入图片描述

URL和URI区别

URL(locater):统一资源定位符,找到路经
URI(identification):统一资源标识符

URL是URI的子集

三、wireshark分析TCP三次握手

1. 过滤阿里云服务器

设置过滤阿里云服务器的IP地址

ip.addr == 123.56.136.14

由于目前尚未与服务器有数据传输,故监听不到数据包
在这里插入图片描述

2. 连接阿里云TCP服务端

需要安装一个网络调试助手辅助操作

百度网盘链接:
https://pan.baidu.com/s/1EK4jgQr3jeBTipa5N5Qi0A?pwd=v4zg

协议类型选择TCP Client,远程主机地址填写阿里云服务器IP地址,端口根据服务器具体端口开发情况设置

在这里插入图片描述

连接后,在Wireshark会看到,出现三条数据包信息(TCP三次握手)

在这里插入图片描述

参考下图,方便理解

在这里插入图片描述

2.1 TCP第一次握手数据包

客户端发送一个TCP,标志位为SYN=1, 代表客户端请求建立连接。等待服务器收到数据包后,客户端变为监听状态。

在这里插入图片描述

2.2 TCP第二次握手数据包

服务器发回确认包, 标志位为 SYN,ACK。
SYN=1表示已经同步数据包
ACK=1表示确认收到
seq设为0,即服务器发出的第0个数据包
将确认序号设置为客户的seq加1,即ack=0+1=1,

在这里插入图片描述

2.3 TCP第三次握手数据包

客户端再次发送确认包,SYN标志位为0,ACK标志位为1。
seq=0+1=1,客户端发送的第二个包,编号为1
ack=0+1=1,回复给服务器,表示服务器发出的0数据包已经收到

至此,三次握手完成
在这里插入图片描述

四、wireshark分析TCP四次挥手

1. 断开阿里云服务器连接

我们用客户端主动释放连接为例,在网络调试助手中,点击断开

在这里插入图片描述

在Wireshark页面中发现多出四行数据包,很显然,两次释放数据包,两次确认数据包

在这里插入图片描述

我们接着分析

2. TCP第一次挥手数据包

客户端主动释放连接,将结束报文端标志FIN设为1,ACK设为1,表明这是一个连接释放报文段,同时对之前接收到的报文段进行确认。

seq=1告诉服务器,这是客户端发送的序号为1的数据包
ack=1告诉服务器,之前发的0号数据包已经收到

客户端进入终止等待1状态

在这里插入图片描述

3. TCP第二次挥手数据包

服务器进程接收到TCP连接释放报文段后,会发送一个普通的TCP确认报文段并且进入关闭等待状态。

此时TCP客户进程到服务器进程这个方向的连接就释放了,这时的TCP连接属于半关闭状态,也就是TCP客户进程已经没有数据要发送了。

但是TCP服务器进程如果还有数据需要发送,客户进程则还需要接收,这个状态可能会持续一段时间,直到TCP服务器进程将数据发送完毕。

在这里插入图片描述

4. TCP第三次挥手数据包

服务器传输剩余数据,当TCP服务器进程没有数据要发送后,释放连接,TCP服务器进程发送TCP连接释放报文段并进入最后确认状态,FIN=1,ACK=1

在这里插入图片描述

5. TCP第四次挥手数据包

客户端收到TCP连接释放报文段后,针对该报文段发送最后一次确认报文段。客户端此时处于时间等待状态,等服务器收到后关闭,客户端等待2msl后也进入关闭状态

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/186206.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

IDaaS 如何帮助中小微企业(SMB)赢得市场先机|身份云研究院

数字化的本质是生产关系、生产要素的重构,目的是通过数字化技术释放更多生产力。数据是数字化变革中最重要的生产要素,而开发者则是数字世界中最重要的劳动者。对于企业来说,如何将数据转化成企业重要的生产资料以及如何提升开发者的效率为企…

机器学习算法竞赛实战--2,问题建模

目录 一,赛题理解 1,赛题理解 2,数据理解: 3,评价指标(分类和回归) 思考练习 当参赛者拿到竞赛题目的时候,首先应该考虑的事情就是问题建模,同时完成基线模型的管道…

如何备考2023年高级网络规划设计师?

网络规划设计师是软考高级考试科目之一,也是比较难的科目,据官方数据统计网规每年的通过率很低,而且每年只有下半年11月份考一次,如果是直接裸考,估计很悬哦~ 但是你参加考试获得证书的过程就是一个学习网络规划系统知…

一文揭晓,我是如何在Linux中查找自如

未来已来,只是不均衡地分布在当下 大家好,我是菜农,欢迎来到我的频道。 本文共 2187字,预计阅读 10 分钟 用过 Linux 的小伙伴都知道,在Linux系统中包含着大量的文件,绝大部分情况下,我们都是…

react hooks 中使用 Echarts图表中遇到的问题及相关配置

前言 项目开发中,需要做一个报表功能,看了下UI图,初步定下使用 echarts,不过之前使用 echarts 都是在 Vue2 和 Vue3 框架下开发,第一次使用 react-hooks 开发 echarts,将流程及一些 相关配置 写个随笔记录…

没有开发经验的程序员,怎么快速学习进入工作?

今天在群里,Ace老师遇到一位没有开发经验的同学,他的情况是这样的。 问题 Ace老师: 有一些伙伴,我现在真的没有想到太好的方法去教他,我跟大家讲一下他目前的情况,你们有经验的来和他说说这样的情况应该怎…

操作系统权限提升(三)之Windows系统内核溢出漏洞提权

系列文章 操作系统权限提升(一)之操作系统权限介绍 操作系统权限提升(二)之常见提权的环境介绍 注:阅读本编文章前,请先阅读系列文章,以免造成看不懂的情况!!! Windows系统内核溢出漏洞提权介绍 溢出提…

五、环境的搭建

1、配置用户信息 以下操作是用终端模拟器Cmder,这个工具比较便捷,比如需要粘贴,点击一下鼠标右键就粘贴了。如果不想下载这个工具,也可以在终端操作(打开终端快捷键:Win R,输入cmd)。 (1)查看git 打开C…

Recast-Detour看这里就够了!

目录一、 Recast生成(一) 概述1. 简介(二) 生成过程1. 体素化2. 区域3. 轮廓4. 生成凸多边形5. 详细三角形(三) 配置1. 可配置参数2. 数据结构(四) 项目应用1. CS体系方案…

2023最新前端面试题3(持续更新)

46、HTML语义化 HTML 语义化就是让页面内容结构化,它有如下优点 1、易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。 2、有利于 SEO,搜索引警根据标签来确定上下文和各个关键字的权重。 3、方便其他设备解析,如盲人阅读器根…

【Pytorch项目实战】之迁移学习:特征提取、微调、特征提取+微调、雾霾清除

文章目录迁移学习(Transfer Learning)方法一:特征提取(Feature Extraction)方法二:微调(Fine Tuning)(一)实战:基于特征提取的迁移学习&#xff0…

2023第三方应用苹果电脑磁盘读写工具Tuxera NTFS

今天,小编要来分享的是Mac下一款实用的NTFS读写软件——Tuxera NTFS,我们都知道OS X默认是不支持NTFS格式写入的,对于很多使用U盘或移动硬盘写操作的朋友来说非常的不便。而Tuxera NTFS很好的解决了这个问题。小子这次带来的是2023版本。 Tu…

kali入侵电脑

kali入侵电脑 注意:本文仅用于教学目的 1 kali制作exe控制电脑(msfvenom) kali是黑客常用的系统,里面集成了很多的攻击软件,这里我给大家演示一种使用kali制作.exe文件来控制自己电脑的方式。 msfvenom a Metasploit s…

Vue2 和Vue 3的区别

Vue 2 和 Vue 3的区别 1.双向数据绑定原理不同 Vue2 的双向数据绑定是利用ES5的一个APIObject.definePropert() 对数据进行劫持,结合发布订阅模式的方式来实现的。 Vue3 中使用ES6的Proxy API对数据代理。 Vue3 使用数据代理的优势有以下几点:1&#x…

深圳MES系统如何助力注塑企业实现数字化发展

家用电器、电子产品、日用品、医疗保健、汽车零部件、新能源以及建筑、玩具等行业对注塑制品需求量日益增长。注塑企业提供的各式各样注塑产品已深入到经济生活的各个领域,为国家经济的各个部门包括轻工业和重工业提供关键的支持。 现状 现在注塑企业的注塑机工作…

RTP协议基本分析(RTSP、WebRTC使用)

1、介绍 实时流传输协议(RTSP:Real Time Streaming Protocol)是一种网络传输协议,旨在发送低延迟流。 该协议由RealNetworks,Netscape和哥伦比亚大学的专家在1996年开发。它定义了应如何打包流中的数 据以进行传输。 …

【GD32F427开发板试用】INA226完成电流电压采集

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:จุ๊บ冰语 前言 本次有幸参与并通过了极术社区组织的【GD32F427开发板试用】活动,让我对国产兆易创新的GD32处理器有了更深刻的…

Scala系列之:函数式编程

Scala系列之:函数式编程一、面向对象编程和函数式编程二、函数基本语法三、函数和方法的区别四、函数定义五、函数参数六、函数至简原则七、匿名函数一、面向对象编程和函数式编程 面向对象编程: 解决问题,分解对象,行为&#x…

【最新消息】苹果放出新大招??!!

各位开发者新年快乐,许久没有更新了,近期我收到反馈意思遇到苹果回复的新政策,不知道各位开发者有没有碰到过,我也会在下文提出我的猜测,要是有开发者也遇到了同样的问题,欢迎一起交流哦。 疑似新政策&…

【寒假每日一题】洛谷 P1088 [NOIP2004 普及组] 火星人

题目链接:P1088 [NOIP2004 普及组] 火星人 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言,但是我们的科学家发明了一种用数字交流的方法。这种交流方法是…