WireShark如何抓包,各种协议(HTTP、ARP、ICMP)的过滤或分析,用WireShark实现TCP三次握手和四次挥手
WireShark
- 一、开启WireShark的大门
- 二、如何抓包 搜索关键字
- 2.1 协议过滤
- 2.2 IP过滤
- 2.3 过滤端口
- 2.4 过滤MAC地址
- 2.5 过滤包长度
- 2.6 HTTP模式过滤
- 三、ARP协议分析
- 四、WireShark之ICMP协议
- 五、TCP三次握手与四次挥手
- 5.1 TCP三次握手实验
- 5.2 可视化看TCP三次握手
- 5.3 TCP四次挥手
- 5.4 总结TCP三次握手和四次挥手
wireshark是非常流行的网络封包分析软件,功能十分强大。可以截取各种网络封包,显示网络封包的详细信息。常用来检测网络问题、攻击溯源、或者分析底层通信机制。
一、开启WireShark的大门
cmd——>ipconfig
我连的是WIFI,这是我的IP
左侧对应你的电脑网卡,可以注意右侧的折线图,有波动的就是我在使用的网卡。
先停止运行,再点击捕获,选项,可以看到是否选择混杂模式
混杂模式︰混杂模式就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址。
普通模式:普通模式下网卡只接收发给本机的包(包括广播包)传递给上层程序,其它的包一律丢弃。
一般来说,混杂模式不会影响网卡的正常工作,多在网络监听工具上使用。
二、如何抓包 搜索关键字
2.1 协议过滤
点击箭头指向的红色方框,就会出现蓝色鲨鱼状的。
比如说查TCP、UDP建立连接的时候是什么样的,至于协议为什么有其他的协议是因为这些协议的最顶层都是TCP或者UDP
再或者如何抓http的包
其他的协议同理咯。
2.2 IP过滤
或者搜一下我的网关试试
注意:抓包的时候蓝色的亮
语法格式:
IP源地址:ip.src == 192.168.1.1IP目的地址:ip.dst == 192.168.1.1IP地址(包括源和目的):ip.addr == 192.168.1.1
我凭感觉试了一个,还真能弄出来
ip.src_host == 192.168.1.108 and ip.dst_host == 192.168.1.1
欢迎关注:宝藏女孩的成长日记
地址:https://blog.csdn.net/hanhanwanghaha
2.3 过滤端口
语法格式
TCP端口:tcp.port==80TCP目的端口:tcp.dstport == 80TCP源端口:tcp.srcport == 80UDP端口:udp.port eq 15000TCP 1-80之间的端口:tcp.port >= 1 and tcp.port <= 80
例如
tcp.port == 80 || udp.port == 80
2.4 过滤MAC地址
语法格式
源MAC地址:eth.src==00-BB-60-7C-A4-BB目的MAC地址:eth.dst==00-BB-60-7C-A4-BFMAC地址(包括源和目的):eth.addr==00-BB-60-7C-A4-BB
2.5 过滤包长度
语法格式
整个UDP数据包:udp.length==20TCP数据包中的IP数据包:tcp.len>=20整个IP数据包:ip.len==20整个数据包:frame.len==20
2.6 HTTP模式过滤
请求方法为GET:http.request.method==“GET”请求方法为POST:http.request.method==“POST”指定URI:http.request.uri.path contains "x"泛指:http contains "x"
例如
http.request.method == "GET"
三、ARP协议分析
ARP的基本功能就是负责将一个已知的IP地址解析成MAC地址,以便主机间能正常进行通信。
cmd
ping 192.168.1.1(这是我的网关)
192.168.1.108发出一个广播来询问MAC地址:Who Has 192.168.1.108? Tell 192.168.1.1
182.168.1.108做出应答:182.168.1.108的MAC地址是 ee: bb: 60: 7c:a4: bb
ARP请求包
ARP响应包
四、WireShark之ICMP协议
ICMP协议是一种面向无连接的协议,用于传输出错报告控制信息。它是一个非常重要的协议,它对于网络安全具有极其重要的意义。 [3] 它属于网络层协议,主要用于在主机与路由器之间传递控制信息,包括报告错误、交换受限控制和状态信息等。当遇到IP数据无法访问目标、IP路由器无法按当前的传输速率转发数据包等情况时,会自动发送ICMP消息。
icmp数据包解读
(1) Frame: 物理层
(2) Ethernet II: 数据链路层
(3) Internet Protocol Version 4: 网络层
(4) Internet Control Message Protocol: icmp信息
ping www.baidu.com
可以看到windows下ping默认执行四次ping,因此,Wireshark抓到8个ICMP查询报文,随便点一个看
分析:
Code: 0 表示发成功
校验完整性:
Checksum: ex4d32 [ correct]
[checksum Status: Good]
检查数据有么有被黑客篡改过
五、TCP三次握手与四次挥手
SYN(synchronize)指请求同步
ACK指确认同步
5.1 TCP三次握手实验
获取百度的IP地址
ping www.baidu.com
tcp && ip.addr == 163.177.151.110
www.baidu.com的IP地址(目的IP)
输入后,回车。可以看到下面还是空的流量信息。现在再打开百度首页(浏览器网址www.baidu.com),关注这里的流量信息,可以发现三次握手的流量包信息已经显示在下方了
第一次握手
第二次握手
第三次握手
欢迎关注:宝藏女孩的成长日记
地址:https://blog.csdn.net/hanhanwanghaha
5.2 可视化看TCP三次握手
统计——>流量图
这种说实话还挺好看的hhh。
SYN洪泛攻击:一直发送第一次握手的SYN数据包,并不进行确认,导致服务器有大量挂起等待确认的TCP连接,消耗CPU和内存,进而导致死机
解决方法:SYN cookie
5.3 TCP四次挥手
SYN指请求同步
ACK指确认同步
FIN指结束
四次挥手
本机地址:192.168.1.108
百度地址:163.177.151.110(注意:这个每个人不一样,要ping www.baidu.com查)
第一次挥手:本机发送带有[FIN,ACK]标志的数据包发送至baidu.com,Seq=21939,ACK=115238,发送后 主机A进入FIN-WAIT-1(终止等待)状态。
192.168.1.108 163.177.151.110 TCP 5463085 > 443[FIN,ACK] Seq=21939 Ack=115238 Win=131584 Len=e
第二次挥手:baidu.com收到本机的FIN数据包,向本机响应ACK数据包,Seq=115238(与本机的FIN数据包 ACK值相同),ACK=21940(等于本机 FIN数据包的 Seq +1 )。后baidu.com进入了CLOSE-WAIT(关闭等待)状态。
163.177.151.110 192.168.1.108 TCP 54 443 → 63085 [ACK] Seq=115238 Ack=21940 win=75264 Len=0
第三次挥手:数据发送完后,baidu.com向本机发送[FIN,ACK]报文,Seq=115269(在半关闭状态服务器可能又发送了一些数据,数据长度为31,我自己的理解),ACK=21940(与上一条报文的ACK值相同)。
163.177.151.116 192.168.1.108 TCP 54 443 → 63085 [FIN,ACK] Seq=115269 Ack=21940 win=75264 Len=0
第四次挥手:本机向baidu.com发送标志为[RST,ACK]的报文,Seq=21940(与baidu.com发送至本机的FIN报文ACK值相同),ACK=115269(与baidu.com发送到本机的FIN报文的Seq值相同)。
192.168.1.108 163.177.151.110 TCP 54 63085 → 443 [RST,ACK ] Seq=21940 Ack=115269 win=0 Len=0
四次挥手过程完成,等过等待计时器设置的2MSL(最长报文段寿命后)TCP连接才真正释放。本机才真正进入COSED状态。
可视化
看刚刚第三次握手数据长度为31,证明我的理解是对的。
以上为我参考了n多资料后自己的理解,如有大佬看到有不对的地方还请指教!
5.4 总结TCP三次握手和四次挥手
总结:
这周六或者周天的时候,打算自己写一个web页面测试黑客是如何利用WireShark获取用户密码的,(最迟下周末,flag立下了)感觉很有意思。
相关文章:

WireShark如何抓包,各种协议(HTTP、ARP、ICMP)的过滤或分析,用WireShark实现TCP三次握手和四次挥手
WireShark一、开启WireShark的大门二、如何抓包 搜索关键字2.1 协议过滤2.2 IP过滤2.3 过滤端口2.4 过滤MAC地址2.5 过滤包长度2.6 HTTP模式过滤三、ARP协议分析四、WireShark之ICMP协议五、TCP三次握手与四次挥手5.1 TCP三次握手实验5.2 可视化看TCP三次握手5.3 TCP四次挥手5.…...

熬夜30天吃透这九大Java核心专题,我收割了3个大厂offer
这次一共收割了3个大厂offer,分别是蚂蚁金服、美团和网易,特意分享这次对我帮助非常大的宝典资料,一共涉及九大核心专题,分别是计算机网络、操作系统、MySQL、Linux、JAVA、JVM、Redis、消息队列与分布式、网站优化相关࿰…...

DMHS搭建DMDSC 2节点集群同步到单库
DMHS搭建DMDSC 2节点集群同步到单库环境介绍1 安装DMOCI1.1 关闭数据库实例服务1.2 将DMOCI 复制到源端与目的端的数据库bin目录1.3 对数据库bin 执行目录文件更改用户属组和权限2 启动源数据库服务并配置数据库实例参数2.1 使用DMCSSM启动集群实例2.2 DMDSC源其中一个节点执行…...

一条sql执行很慢可能的原因,如何优化
文章目录 sql怎么会变慢呢?1、大多数情况下很正常,偶尔很慢,则有如下原因2、这条 SQL 语句一直执行的很慢,则有如下原因:慢sql优化数据库中设置SQL慢查询分析慢查询日志慢sql如何让优化索引sql语句1、分页查询优化2、优化insert语句数据库结构优化优化器优化架构优化总结s…...

【设计模式】适配器模式和桥接模式
适配器模式 适配器模式 : 就是将一个类的接口变成客户端所期望的另一种接口,使得原本因为接口不匹配而无法一起工作的接口可以正常工作。属于结构型模式 比方说我有一个A牌子的奶瓶,然后买了个B牌子的奶嘴,不能匹配怎么办? 再买一个转换器…...

被隐藏的过程——预处理
文章目录0. 前言1. 程序的翻译环境和执行环境2. 被隐藏的过程2.1 翻译环境2.2 编译3.2.1 预编译3.2.2 编译2.2.3 汇编2.3 链接2.4 运行环境3. 预处理3.1 预定义符号3.2 #define3.2.1 #define定义标识符3.2.2 #define定义宏3.2.3 #define替换规则3.2.4 #和##3.2.5 带副作用的宏参…...

strace 用法介绍
strace 是什么 strace 是一个可用于诊断和调试的 Linux 用户空间跟踪器。我们用它来监控用户空间进程和内核的交互,比如系统调用、信号传递、进程状态变更等。 strace 作为一种动态跟踪工具,能够帮助我们高效地定位进程和服务故障。它像是一个侦探&…...

TiDB数据库架构概述
文章目录TiDB体系架构TiDB ServerStorage Cluster(存储引擎)PD cluster题目TiDB体系架构 TiDB Server Sql语句最先到达 TiDB Server集群 它是无状态的,数据并不是存储在这里面,当一个会话连接到TiDB Server集群上,sql语句发过来,…...

[深入理解SSD系列综述 闪存实战2.1.2] SLC、MLC、TLC、QLC、PLC NAND_固态硬盘闪存颗粒类型
闪存最小物理单位是 Cell, 一个Cell 是一个晶体管。 闪存是通过晶体管储存电子来表示信息的。在晶体管上加入了浮动栅贮存电子。数据是0或1取决于在硅底板上形成的浮动栅中是否有电子。有电子为0,无电子为1. SSD 根据闪存颗粒区分,固态硬盘有SLC、MLC、TLC、QLC、PLC 五种类型…...

游戏逆向之游戏技能分析
角色的当前技能列表往往都是从系统的技能库中进行筛选而组成的,而这个筛选的过程大多非常的复杂,经过的代码和临时结构体的传递也非常的多,所以在分析技能对象来源的时候常常要将OD和CE配合来使用。下面我们来分析下《天堂2》的技能列表。 首…...

汽车制造商与IT公司之间的技术合作案例
如果您对最新汽车技术感兴趣的话,您可能经常听到汽车制造商和IT公司正在合作开发技术的消息。汽车生产商为何自身不进行技术开发,而是与IT企业合作呢?因为最近随着以IT技术为基础的电动汽车等环保汽车或无人驾驶汽车等的登场和发展,汽车制造商单独进行技术开发需要花费很多时间…...

funkyheatmap | 用这个包来完美复刻Nature Biotechnology的高颜值神图吧!~
1写在前面 天气开始暖和了☀️,发现旅游的人好多啊!~🥲 不知道自己什么时候能有时间出去看看外面的世界,实在是太忙了。😷 最近用到的有个包感觉很不错,分享给大家,funkyheatmap包。ὡ…...

tomcat8调优
环境说明Jdk:1.8Tomcat: 8.5.69服务器 :2核 8G方案当调整Tomcat配置时,具体的配置方法可能会有所不同,因为它们受到许多因素的影响,例如Tomcat版本、操作系统、硬件配置等等。以下是每个建议的一些具体配置示例&#x…...

VS Code 解决 SpringBoot 项目启动时报 Failed to refresh live data from process **** 的问题
问题 SpringBoot 启动后 ,VS Code 报错 Failed to refresh live data from process ****。 现场是,SpringBoot 项目启动时,VS Code 将进行如下刷新,图片如下所示 当刷新 10 次以后,如果还是失败,则会抛出…...

[ 红队知识库 ] 各种重要文件路径
🍬 博主介绍 👨🎓 博主介绍:大家好,我是 _PowerShell ,很高兴认识大家~ ✨主攻领域:【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 🎉点赞➕评论➕收藏 养成习…...

Ajax和JSON的基本用法
局部请求页面不会变化,返回的响应我们要动态获取,获取后选择数据更新区域。<body> <input id"btnLoad" type"button" value"加载"> <div id"divContent"></div> <script>//获取点…...

【项目实战】基于netty-websocket-spring-boot-starter实现WebSocket服务器长链接处理
一、背景 项目中需要建立客户端与服务端之间的长链接,首先就考虑用WebSocket,再来SpringBoot原来整合WebSocket方式并不高效,因此找到了netty-websocket-spring-boot-starter 这款脚手架,它能让我们在SpringBoot中使用Netty来开发…...

BC双驱、ChatGPT大火,AI独角兽撬开盈利大门?
配图来自Canva可画 放眼AI行业,各大AI玩家长期亏损、“钱”景堪忧。 回看过去一年,部分AI独角兽的亏损问题愈发尖锐——云从科技2022年净亏损同比扩大至8.5亿元;寒武纪2022年净亏损11.6亿元,较上年同期扩大41.4%;地平…...

1/4车、1/2车、整车悬架H2/H∞控制仿真合集
目录 前言 1. 1/4悬架系统 1.1数学模型 1.2 H2/H∞求解反馈阵阵 1.3仿真分析 2. 1/2悬架系统 2.1数学模型 2.2 H2/H∞求解反馈阵阵 2.3仿真分析 3. 整车悬架系统 3.1数学模型 整车7自由度主动悬架数学模型 3.2 H2/H∞求解反馈阵阵 3.3仿真分析 4.总结 参考文献 …...

Git使用教程、命令
Git使用教程、命令 基本配置 git的配置文件位置: win: c:\users\<userName>\.gitconfig linux: /home/<userName>/.gitconfig # 个人/etc/gitconfig # 系统全局# 修改git init时的默认分支为master&#x…...

《c++ primer笔记》第九章 顺序容器
前言 知识点很多,这里只记录遗忘的。从这章开始会对前面章节的内容进行一个扩充,如果以前的忘了读起来会有点吃力。总的来说,本章节难度不大。 文章目录一、概述二、容器库概览2.1容器定义和初始化2.2赋值三、顺序容器操作3.1添加元素3.2删除…...

QML动画(弹动和翻转效果)
Flickable(弹动) QML中提供了一个Flickable元素,可以将其子项设置在一个可以拖拽和弹动的界面上,使得子项目的视图可以滚动。在传统的用户界面中,可以使用标准控件(如滚动条和箭头按钮)滚动视图…...

GPS启动方式、定位速度、定位精度介绍
前面文章介绍了GPS定位基础知识 GPS定位知识介绍 (qq.com) 本文主要介绍GPS启动方式。 定位过程中最重要的辅助信息是时间、星历、位置。 根据辅助信息不同,...

深度学习零基础学习之路——第五章 个人数据集的制作
Python深度学习入门 第一章 Python深度学习入门之环境软件配置 第二章 Python深度学习入门之数据处理Dataset的使用 第三章 数据可视化TensorBoard和TochVision的使用 第四章 UNet-Family中Unet、Unet和Unet3的简介 第五章 个人数据集的制作 深度学习数据集的制作Python深度学…...

女神节 | PHP和Java算什么,女工程师才是最美最好的语言!
世界上第一个程序员是女性 第一个发现Bug的也是女性 在智领云有一群追求快乐和独立的女性工程师 她们多有魅力? 工位上她们专注于数据与代码 平日里郊游、瑜伽、插花、科学养娃一件不落 不仅用0和1编织数字世界 也在用心装点自己的生活 今天是国际劳动妇女节…...

【Python】装饰器
一、装饰器的作用 装饰器能够为已经存在的对象添加额外的功能。 二、什么是装饰器 装饰器本质是一个python函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外功能,装饰器的返回值也是一个函数对象。 三、装饰器的应用场景 插入日志、性能…...

Spring事务及传播机制
概念 在MySQL中介绍过,当同一时间出现一起读写数据的情况,可能会导致最终的结果出错,因此可以使用事务来提高隔离级别 而Spring中也可以实现事务 手动添加事务 使用SpringBoot中的DataSourceTransactionManager对象可以获取事务࿰…...

43-Golang中的goroutine!!!
Golang中的goroutine进程和线程说明并发和并行并发并行Go协程和Go主线程案例小结goroutine的调度机制MPG模式基本介绍MPG模式运行的状态1MPG模式运行的状态2设置GOlang运行的CPU数不同 goroutine之间如何通讯使用全局变量加锁同步改进程序进程和线程说明 1.进程就是程序在操作…...

[深入理解SSD系列 闪存实战2.1.5] NAND FLASH基本读操作及原理_NAND FLASH Read Operation源码实现
前言 上面是我使用的NAND FLASH的硬件原理图,面对这些引脚,很难明白他们是什么含义, 下面先来个热身: 问1. 原理图上NAND FLASH只有数据线,怎么传输地址? 答1.在DATA0~DATA7上既传输数据,又传输地址 当ALE为高电平时传输的是地址, 问2. 从NAND FLASH芯片手册可知,要…...

pandas库中的read_csv函数读取数据时候的路径问题详解(ValueError: embedded null character)
read_csv()函数不仅是R语言中的一个读取csv文件的函数,也是pandas库中的一个函数。pandas是一个用于数据分析和处理的python库。它的read_csv函数可以读取csv文件里的数据,并将其转化为pandas里面的DataFrame对象。它由很多参数可以设置,例如…...