WireShark如何抓包,各种协议(HTTP、ARP、ICMP)的过滤或分析,用WireShark实现TCP三次握手和四次挥手

2023-05-16

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.1

IP目的地址:ip.dst == 192.168.1.1

IP地址(包括源和目的):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==80

TCP目的端口:tcp.dstport == 80

TCP源端口:tcp.srcport == 80

UDP端口:udp.port eq 15000

TCP 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-BF

MAC地址(包括源和目的):eth.addr==00-BB-60-7C-A4-BB

在这里插入图片描述

2.5 过滤包长度

语法格式

整个UDP数据包:udp.length==20

TCP数据包中的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 44363085 [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 44363085 [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 63085443 [RST,ACK ] Seq=21940 Ack=115269 win=0 Len=0

四次挥手过程完成,等过等待计时器设置的2MSL(最长报文段寿命后)TCP连接才真正释放。本机才真正进入COSED状态。
可视化
在这里插入图片描述
看刚刚第三次握手数据长度为31,证明我的理解是对的。

以上为我参考了n多资料后自己的理解,如有大佬看到有不对的地方还请指教!

5.4 总结TCP三次握手和四次挥手

总结:
在这里插入图片描述

这周六或者周天的时候,打算自己写一个web页面测试黑客是如何利用WireShark获取用户密码的,(最迟下周末,flag立下了)感觉很有意思。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WireShark如何抓包,各种协议(HTTP、ARP、ICMP)的过滤或分析,用WireShark实现TCP三次握手和四次挥手 的相关文章

  • org.slf4j.Logger中info()方法的使用

    如果info 方法参数为以下类型 xff1a public void info String format Object argArray if logger span class hljs preprocessor isInfoEnabl
  • goland断点调试报错

    goland断点调试 一 运行报错 runnerw span class token punctuation span exe span class token punctuation span CreateProcess failed w
  • import matplotlib报错cannot import name ‘_c_internal_utils‘ from partially initialized ……

    可能是matplotlib没有安装好的问题 xff0c 建议pip卸载重装 重装前一定要将之前的卸载干净 xff0c 相关子包 xff08 在重装时提示的那些已经安装的包 xff09 要手动删除 xff0c 尤其是想要换一个python版本
  • PostGIS Bundle打开时缺少libssl-3-x64.dll以及libcrypto-3-x64.dll问题的解决

    按照别人的教程安装了最新的PostgreSql xff08 15 0 xff09 以及相应的PostGIS xff0c 但是在打开PostGIS Bundle时提示缺少两个dll 重装没有解决问题 检查目录发现俩个dll的存放路径有问题 x
  • React启动报错:TypeError: The “path“ argument must be of type string. Received type undefined

    问题描述 xff1a 今天想跑一下以前的一个React项目 xff0c 在Gitee 将项目clone下来并cnpm install后 xff0c cnpm start 启动应用在浏览器打开时报错 xff1a TypeError ERR I
  • 二级域名绑定二级目录的两种方法

    当用WordPress建站后 xff0c WordPress位于二级目录 xff08 v ar www html xff09 下 xff0c 进行域名解析时如何把域名解析到二级目录下 xff0c 网络上一般有两种方法 xff0c 一是利用接
  • 软件改变世界

    随着科技的不断进步 xff0c 软件及其相关技术的发展已经深刻地改变了人类社会的方方面面 从交通运输 医疗卫生到商业服务 教育培训 xff0c 软件技术的应用已经深入到我们的日常生活中 xff0c 对我们的生活方式和生产方式都带来了深刻的影
  • TIME_WAIT过多解决办法

    还是一次性能测试过程中 xff0c TPS曲线先升后降 xff0c 响应时间增加 xff0c 请求没有大量报错 xff0c 程序无报错 xff0c 服务器监控发现cpu xff0c io 压力并不大 xff0c 顺势排查一下链接数 xff0
  • MATLAB 比较好入门书籍有哪些推荐

    https www zhihu com topic 19559252 hot https www zhihu com question 19904418 作者 xff1a 陈村 链接 xff1a https www zhihu com qu
  • manjaro安装Microsoft Edge浏览器

    span class token function sudo span pacman S yay base devel yay S microsoft edge dev bin
  • 关于SQL SERVER注释快捷键

    SQL Server Management Stuido提供了键盘和按钮快捷方式来注释掉突出显示的代码 只需突出显示要禁用或注释掉的代码部分 xff0c 再单击SQL Editor工具栏上的Comment Selection按钮即可 xff
  • Linux 网络编程—— libnet库详细使用指南

    概述 通过 原始套接字实例 xff1a 发送 UDP 数据包 的学习 xff0c 我们组 UDP 数据包时常考虑字节流顺序 校验和计算等问题 xff0c 有时候会比较繁琐 xff0c 那么 xff0c 有没有一种更简单的方法呢 xff1f
  • 论文一:基于实体多元编码的时序知识图谱推理_彭成

    xff08 本文很好的介绍了时序知识图谱的推理 xff0c 重要 xff01 xff01 xff01 xff09 时序知识图谱定义 xff1a 时序知识图谱是一种多关系有向图 xff0c 结点时时序知识图谱中的实体 xff0c 有向边是实体
  • SQLException: null, message from server: “Host ‘10.112.71.80‘ is blocked because of many connection

    启动项目后也看到报 SQLException null message from server 34 Host 39 10 112 71 80 39 is blocked because of many conne 这一类异常翻译来看是由于
  • Python案例003——句子生成器

    目标 xff1a 通过用户提供的内容 xff0c 随机生成唯一的句子 提示 xff1a 以用户输入的名词 代词 形容词等作为输入 xff0c 然后将所有数据添加到句子中 xff0c 并将其组合返回 输出固定的 内容 43 用户输入的内容 c
  • 通过Python复制远程服务器下的文件到本地

    使用Python拷贝windown共享目录下的文件 1 先通过net use命令获取共享目录访问权限 2 使用xcopy命令进行文件拷贝到本地目录 代码如下 import os share user 61 39 user 39 share
  • Centos6.5下进行PHP版本升级

    统计插件 WP Statistics 要求PHP5 4以上 xff0c 可本机PHP为5 3 3 xff0c 无奈只有对服务器PHP进行升级 xff0c 遂写下本文 Step1 xff1a 查看安装服务器当前安装版本 php V Step2
  • Ubuntu18.04 设置 sudo 不需要输入密码

    1 在系统启动后 xff0c 对于有些系统设备操作 xff0c 需要使用root权限执行 xff1b 这时候往往需要用到sudo命令 2 使用sudo命令 xff0c 必须输入用户密码 xff0c 但是在应用程序里面 xff0c 输入密码操
  • ipa文件的安装方法

    ipa文件无法像android的apk那样直接安装 xff0c 是因为需要能直接安装ipa xff0c 打包ipa的时候 xff0c 是需要创建不同的证书和证书profile文件的 下面我对三种情况进行概述 1 company类型 xff0
  • Windows7睡眠后自动唤醒

    笔者的电脑 xff08 Windows7 64 位旗舰版 xff09 睡眠后 xff0c 隔段时间后会自动唤醒 经两项配置后 xff0c 解决了该问题 1 禁用唤醒定时器 控制面板里进入 34 电源选项 34 34 更改计划设置 34 界面

随机推荐