【网络安全---ICMP报文分析】Wireshark教程----Wireshark 分析ICMP报文数据试验
一,试验环境搭建
1-1 试验环境示例图

1-2 环境准备
两台kali主机(虚拟机)
kali2022 192.168.220.129/24
kali2022 192.168.220.3/27
1-2-1 网关配置:

编辑-------- 虚拟网路编辑器

更改设置进来以后 ,先选择NAT模式,然后是NAT设置


网关配置好确定
1-2-2 IP地址配置
首选更改网络连接模式为NAT模式


两个主机都设置成NAT模式以后开机 ,打开终端修改A主机的配置,指令如下:
nmcli connection edit Wired\ connection\ 1
goto ipv4.addresses
change
192.168.220.129/24
back
goto gateway
change
192.168.220.2
back
back
save
activate
quit
截图如下:

这样主机A的IP地址设置完成
以同样的方法设置主机B的IP地址
nmcli connection edit Wired\ connection\ 1
goto ipv4.addresses
change
192.168.220.3/27
back
goto gateway
change
192.168.220.2
back
back
save
activate
quit

1-2-3 Mac地址配置
修改A主机的mac地址,修改为00:aa:aa:aa:aa:aa
macchanger --mac=00:aa:aa:aa:aa:aa eth0

修改好了查看A主机的网络配置
ip addr show

修改B主机的mac地址,修改为00:bb:bb:bb:bb:bb
macchanger --mac=00:bb:bb:bb:bb:bb eth0

修改好了查看一下B主机的网络配置
ip addr show

试验环境准备好了,接下来就开始抓包,开始分许
二,详细试验步骤
为了避免物理机网络的干扰,最好是物理机断网进行试验
2-1 主机A--- Ping ---主机B
2-1-1 理论分析过程图解

2-1-2 判断对方是否跟自己处在同一个网段
A主机判断B主机是否跟自己同一个网段
A_IP:192.168.220.129
GW:255.255.255.0
B_IP:192.168.220.3
GW:255.255.255.254
第一步:把A主机的IP地址转换为二进制
11000000.10101000.11011100.10000001
第二步:A主机的子网掩码转换成二进制
11111111.11111111.11111111.00000000
第三步:对两者进行‘与’操作,全1得1,有零得零,最后得到结果
11000000.10101000.11011100.10000001
11111111.11111111.11111111.00000000
得到结果为 11000000.10101000.11011100.0000000
转换成十进制为:192.168.220.0
第四步:把B主机的IP地址转换为二进制
11000000.10101000.11011100.00000011
第五步B主机二进制IP地址跟A主机二进制子网掩码进行‘与’操作:
11000000.10101000.11011100.00000011
11111111.11111111.11111111.00000000
得到结果为 11000000.10101000.11011100.0000000
转换成十进制为:192.168.220.0
结论:得到都是192.168.220.0 A主机跟B主机处于同一个网段
B主机判断A主机是否跟自己同一个网段
A_IP:192.168.220.129
GW:255.255.255.0
B_IP:192.168.220.3
GW:255.255.255.254
第一步:把B主机的IP地址转换为二进制
11000000.10101000.11011100.00000011
第二步:B主机的子网掩码转换成二进制
11111111.11111111.11111111.11100000
第三步:对两者进行‘与’操作,全1得1,有零得零,最后得到结果
11000000.10101000.11011100.00000011
11111111.11111111.11111111.11100000
得到结果为 11000000.10101000.11011100.0000000
转换成十进制为:192.168.220.0
第四步:把A主机的IP地址转换为二进制
11000000.10101000.11011100.10000001
第五步:A主机二进制IP地址跟B主机二进制子网掩码进行‘与’操作:
11000000.10101000.11011100.10000001
11111111.11111111.11111111.11100000
得到结果为 11000000.10101000.11011100.10000000
转换成十进制为:192.168.220.128
结论:得到分别是192.168.220.0 和 192.168.220.128 所以B主机跟A主机不在同一个网段
总结:简单来说就是主机A拿自己的IP地址的二进制和子网掩码的二进制进行异或运算得到一个IP地址,主机A再拿B主机的IP地址跟自己自己的子网掩码进行同样的异或运算得到另一个IP地址,看这两个IP地址是否一样
2-1- 3 试验分析
主机A,主机B打开wireshark工具

搜索wireshark
打开以后 捕获---选项---eth0 (两个主机的都打开转备好,但别开始)
注意:一定要关掉最下面的‘在所有接口上使用混杂模式’

主机A输入ping命令(准备好,不要运行)
ping -c 192.168.220.129
接下来迅速打开连个主机的wireshark 点击开始进行抓包
然后迅速回到A主机回车执行ping 命令
执行完以后两个主机停止抓包
主机A的数据包

主机B的数据包

分析过程
主机A先判断主机B是否跟自己同一个网段,发现是跟自己同一个网段
A4:广播问谁有主机B的Mac地址
A5:B回复了自己的Mac地址
A2:A封装自己的ICMP报文以后,直接发给了B(源Mac是自己,目标Mac是主机B)
B3:由于B判断A跟自己不是一个网段,所以通过广播询问网关Mac地址
B4:网关回复了自己的Mac地址给B
B2:主机B封装ICMP回复信息发给A主机,但是注意报文内容,源Mac是自己,目标Mac是网关
这个数据包会送到网关那里,由网关转发给A主机,可能抓包没抓完整,网关通过ARP协议问主机A的Mac地址过程没有抓出来,应该是网关拿到数据以后发现是发给主机A的,就会广播询问主机A的Mac地址的。
注意:主机A,主机B抓到的有些包是一样的,比如A4和B5,B6和A5,是因为ARP是广播协议,何为广播?每个主机都能听得到,所以两个主机抓到的有些包一样。
2-2 主机B---ping ---主机A
2-2-1 理论分析过程
01:主机B先判断A是不是跟自己一个网段,发现不是跟自己一个网段
02:主机B就会广播的方式问网关的mac地址
03:网关把自己的mac地址发给B
04:主机B封装ICMP报文以后发给主机A,源Mac是自己,目标Mac是网关,由网关进行转发
05:主机A收到B的ICMP报文以后会需要回复,所以先判断主机B是否跟自己同一个网段
发现主机B是跟自己同一个网段
06:这时候A会广播问主机B的Mac地址
07:主机B把自己的Mac地址回复给A主机
08:A主机封装ICMP数据包直接发送给B,源mac:主机A自己,目标Mac:B主机的Mac
2-2-2 试验分析
如果达到更好的效果,应该虚拟机恢复拍照,重新配置网路信息,因为经过一轮通信以后很有可能会ARP缓存,有了缓存以后有些时候就不需要发ARP广播了,直接根据缓存进行发包。
不过我就直接演示了
按上述步骤抓包
ping 192.168.220.129
主机B的数据包

主机A的数据包

分析过程
先判断自己是不是A主机一个网段,结果不是(之间讲了如何判断)
所以先询问网关的Mac地址
B4:询问网关的Mac地址
B5:网关回复自己的Mac地址
B1:主机B封装ICMP数据发给A主机(注意源Mac是自己,目标Mac是网关,不信看一下数据包内容,第二行src表示源Mac地址,dst表示目标Mac地址)
B2:网关拿到数据发现要发给主机A,发广播询问主机A的Mac地址
A2:主机A收到广播以后告诉网关自己的Mac地址,网关就会把数据转交给主机A
主机A收到报文,需要回复,先判断主机B是否跟自己一个网段,发现是
A5:主机A广播询问B的Mac地址
A6:主机B收到广播进行回复,把自己的Mac地址告诉主机A
A4:主机A直接对主机B进行回复,源Mac是自己的,目标Mac是主机B的(因为对于主机A,主机B跟自己处于一个网段,看一下这个数据包内容把)
果然src是主机A自己,dst是主机B
三,试验建议
最好是通过kali linux去做,修改MAC地址比较方便
在抓包的时候关闭混杂模式
在抓包之后,注意清空ARP缓存
最好是只ping 一个包,通过-c 来指定个数
四,总结
其实做这个试验之前,我对如何判断两个主机是否处于同一个网段,如何用ICMP协议通信等比较模糊,甚至认为两个主机处在同一个网段就处在同一个网段。现在才发现还有相对之分,就比如说本试验以A的视角,主机B跟主机A就是同一个网段,以B的视角主机B跟主机A不在同一个网段,虽然是A ping B 然后B ping A .但是两者通信还是有所区别的。本试验关键点就是理解一些概念,还要会判断两个主机是否处于同一个网段等,希望大家也能自己动手去分析分析具体过程。
相关文章:
【网络安全---ICMP报文分析】Wireshark教程----Wireshark 分析ICMP报文数据试验
一,试验环境搭建 1-1 试验环境示例图 1-2 环境准备 两台kali主机(虚拟机) kali2022 192.168.220.129/24 kali2022 192.168.220.3/27 1-2-1 网关配置: 编辑-------- 虚拟网路编辑器 更改设置进来以后 ,先选择N…...
【Docker】Docker的应用包含Sandbox、PaaS、Open Solution以及IT运维概念的详细讲解
前言 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 📕作者简介:热…...
Java Applet基础
Java Applet基础 目录 Java Applet基础 Applet的生命周期 "Hello, World" Applet: Applet 类 Applet的调用 获得applet参数 指定applet参数 应用程序转换成Applet 事件处理 显示图片 播放音频 applet是一种Java程序。它一般运行在支持Java的Web浏览器内。因…...
【记录】IDA|IDA怎么查看当前二进制文件自动分析出来的内存分布情况(内存范围和读写性)
IDA版本:7.6 背景:我之前一直是直接看Text View里面的地址的首尾地址来判断内存分布情况的,似乎是有点不准确,然后才想到IDA肯定自带查看内存分布情况的功能,而且很简单。 可以通过View-Toolbars-Segments,…...
LIMS实验室信息管理系统源码 基于计算机的数据处理技术、数据存储技术、网络传输技术、自动化仪器分析技术于一体
LIMS 是一个集现代化管理思想与基于计算机的数据处理技术、数据存储技术、网络传输技术、自动化仪器分析技术于一体,以实验室业务和管理工作为核心,遵循实验室管理国际规范,实现对实验室全方位管理的信息管理系统。 LIMS将样品管理、数据管理…...
有效括号相关
相关题目 20. 有效的括号 921. 使括号有效的最少添加 1541. 平衡括号字符串的最少插入次数 32. 最长有效括号 # 20. 有效的括号 class Solution:def isValid(self, s: str) -> bool:stack []for pare in s:if pare in ([{:stack.append(pare)if not stack or (pare ) and…...
浅谈泛型擦除
文章目录 泛型擦除(1)转换泛型表达式(2)转换泛型方法泛型擦除带来的问题 泛型擦除 在编码阶段使用泛型时加上的类型参数,会被编译器在编译阶段去掉,这个过程叫做泛型擦除。 泛型主要用于编译阶段。在编译后生成的Java字节码文件中不包含泛型中的类型信息…...
nodejs+vue校园跑腿系统elementui
购物车品结算,管理个人中心,订单管理,接单处理,商品维护,用户管理,系统管理等功育食5)要求系统运行可靠、性能稳定、界面友好、使用方便。 第三章 系统分析 10 3.1需求分析 10 3.2可行性分析 10 3.2.1技术…...
Redis Cluster Cron调度
返回目录 说明 clusterCron 每秒执行10次clusterCron 内置了一个iteration计数器。每一次运行clusterCron,iteration都加1。当 iteration % 10 0的时候,就会随机选取一个节点,给它发送PING。而由于clusterCron每秒执行10次,所以…...
Redis Cluster Gossip Protocol: Message
返回目录 消息结构 消息头部消息数据(可选)extension(可选) 消息头部 字段定义 Signature: “RCmb” 这4个字符(Redis Cluster message bus 的简称)totalLen: 消息的总字节数version:当前为…...
【JVM】第四篇 垃圾收集器ParNewCMS底层三色标记算法详解
导航 一. 垃圾收集算法详解1. 分代收集算法2. 标记-复制算法3. 标记-清除算法4. 标记-整理算法二. 垃圾收集器详解1. Serial收集器2. Parallel Scavenge收集器3. ParNew收集器4. CMS收集器三. 垃圾收集底层三色标记算法实现原理1. 垃圾收集底层使用三色标记算法的原因?2. 垃圾…...
STM32复习笔记(四):独立看门狗IWDG
目录 (一)简介 (二)CUBEMX工程配置 (三)相关函数 总结: (一)简介 独立看门狗本质是一种定时器,其作用是监视系统的运行,当系统发生错误&…...
SpringBoot中常用注解的含义
一、方法参数注解 1. PathVariable 通过RequestMapping注解中的 { } 占位符来标识URL中的变量部分 在控制器中的处理方法的形参中使用PathVariable注解去获取RequestMapping中 { } 中传进来的值,并绑定到处理方法定一的形参上。 //请求路径:http://3333…...
学位论文的写作方法,较好的参考文章
摘要 结合2个文章: [1]程鑫. 网联环境下交通状态预测与诱导技术研究[D]. 长安大学, 2017. [2]吴昊. 关中平原水资源变化特征与干旱脆弱性研究[D]. 长安大学, 2018. 主要研究内容及技术路线 各章小结和引言的写作 [1]程鑫. 网联环境下交通状态预测与诱导技术…...
基于SpringBoot的科研工作量获奖项目管理平台设计与实现(源码+lw+部署文档+讲解等)
文章目录 前言具体实现截图论文参考详细视频演示为什么选择我自己的网站自己的小程序(小蔡coding)有保障的售后福利 代码参考源码获取 前言 💗博主介绍:✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作…...
嵌入式Linux应用开发-驱动大全-第一章同步与互斥④
嵌入式Linux应用开发-驱动大全-第一章同步与互斥④ 第一章 同步与互斥④1.5 自旋锁spinlock的实现1.5.1 自旋锁的内核结构体1.5.2 spinlock在UP系统中的实现1.5.3 spinlock在SMP系统中的实现 1.6 信号量semaphore的实现1.6.1 semaphore的内核结构体1.6.2 down函数的实现1.6.3 u…...
算法-数学-斜率-直线上最多的点数
算法-数学-斜率-直线上最多的点数 1 题目概述 1.1 题目出处 https://leetcode.cn/problems/max-points-on-a-line/ 1.2 题目描述 给你一个数组 points ,其中 points[i] [xi, yi] 表示 X-Y 平面上的一个点。求最多有多少个点在同一条直线上。 2 暴力搜索斜率…...
项目进展(五)-修复PCB电路板,学习32位ADC芯片ADS1285
一、前言 上个月29号放假了,和朋友一起去了南京(人是真滴多),师兄晚放假几天,结果在测试时不小心把12V和GND碰触到一起了,导致12V短路,电路板几乎瘫痪了。 今天下午到学校之后就开始着手寻找问题和修复,最…...
(三) Markdown插入互联网或本地视频解决方案
前言 不论博客系统是WordPress还是Typecho,绕不开的是两种书写语言,一种称之为富文本,一种叫做Markdown。 Markdown有很多好处,也有很多坏处,比如Markdown本身不具备段落居中的功能,以及Markdown也不具有…...
HPA (Horizontal Pod Autoscaler) In K8s
城市红绿灯智能调节 没准正在建设中哈哈哈 作为一位城市观察者和设计师,我想借助Kubernetes的HPA机制思想来描述城市红绿灯自动调节的场景。 在这个故事中,我们的城市面临着日益增长的交通流量和挤塞问题。为了应对这一挑战,城市决定引入智能…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
【Redis技术进阶之路】「原理分析系列开篇」分析客户端和服务端网络诵信交互实现(服务端执行命令请求的过程 - 初始化服务器)
服务端执行命令请求的过程 【专栏简介】【技术大纲】【专栏目标】【目标人群】1. Redis爱好者与社区成员2. 后端开发和系统架构师3. 计算机专业的本科生及研究生 初始化服务器1. 初始化服务器状态结构初始化RedisServer变量 2. 加载相关系统配置和用户配置参数定制化配置参数案…...
LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf
FTP 客服管理系统 实现kefu123登录,不允许匿名访问,kefu只能访问/data/kefu目录,不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...
MySQL 8.0 事务全面讲解
以下是一个结合两次回答的 MySQL 8.0 事务全面讲解,涵盖了事务的核心概念、操作示例、失败回滚、隔离级别、事务性 DDL 和 XA 事务等内容,并修正了查看隔离级别的命令。 MySQL 8.0 事务全面讲解 一、事务的核心概念(ACID) 事务是…...
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement
Cilium动手实验室: 精通之旅---13.Cilium LoadBalancer IPAM and L2 Service Announcement 1. LAB环境2. L2公告策略2.1 部署Death Star2.2 访问服务2.3 部署L2公告策略2.4 服务宣告 3. 可视化 ARP 流量3.1 部署新服务3.2 准备可视化3.3 再次请求 4. 自动IPAM4.1 IPAM Pool4.2 …...
上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式
简介 在我的 QT/C 开发工作中,合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式:工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...
数据结构:递归的种类(Types of Recursion)
目录 尾递归(Tail Recursion) 什么是 Loop(循环)? 复杂度分析 头递归(Head Recursion) 树形递归(Tree Recursion) 线性递归(Linear Recursion)…...
在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能
指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...
pgsql:还原数据库后出现重复序列导致“more than one owned sequence found“报错问题的解决
问题: pgsql数据库通过备份数据库文件进行还原时,如果表中有自增序列,还原后可能会出现重复的序列,此时若向表中插入新行时会出现“more than one owned sequence found”的报错提示。 点击菜单“其它”-》“序列”,…...


