当前位置: 首页 > news >正文

【网络安全---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&#xff0c…...

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机制思想来描述城市红绿灯自动调节的场景。 在这个故事中,我们的城市面临着日益增长的交通流量和挤塞问题。为了应对这一挑战,城市决定引入智能…...

《Qt C++ 与 OpenCV:解锁视频播放程序设计的奥秘》

引言:探索视频播放程序设计之旅 在当今数字化时代,多媒体应用已渗透到我们生活的方方面面,从日常的视频娱乐到专业的视频监控、视频会议系统,视频播放程序作为多媒体应用的核心组成部分,扮演着至关重要的角色。无论是在个人电脑、移动设备还是智能电视等平台上,用户都期望…...

java调用dll出现unsatisfiedLinkError以及JNA和JNI的区别

UnsatisfiedLinkError 在对接硬件设备中,我们会遇到使用 java 调用 dll文件 的情况,此时大概率出现UnsatisfiedLinkError链接错误,原因可能有如下几种 类名错误包名错误方法名参数错误使用 JNI 协议调用,结果 dll 未实现 JNI 协…...

汽车生产虚拟实训中的技能提升与生产优化​

在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

HTML 列表、表格、表单

1 列表标签 作用:布局内容排列整齐的区域 列表分类:无序列表、有序列表、定义列表。 例如: 1.1 无序列表 标签:ul 嵌套 li,ul是无序列表,li是列表条目。 注意事项: ul 标签里面只能包裹 li…...

【项目实战】通过多模态+LangGraph实现PPT生成助手

PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...

【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验

系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)

要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...

【数据分析】R版IntelliGenes用于生物标志物发现的可解释机器学习

禁止商业或二改转载,仅供自学使用,侵权必究,如需截取部分内容请后台联系作者! 文章目录 介绍流程步骤1. 输入数据2. 特征选择3. 模型训练4. I-Genes 评分计算5. 输出结果 IntelliGenesR 安装包1. 特征选择2. 模型训练和评估3. I-Genes 评分计…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

消息队列系统设计与实践全解析

文章目录 🚀 消息队列系统设计与实践全解析🔍 一、消息队列选型1.1 业务场景匹配矩阵1.2 吞吐量/延迟/可靠性权衡💡 权衡决策框架 1.3 运维复杂度评估🔧 运维成本降低策略 🏗️ 二、典型架构设计2.1 分布式事务最终一致…...