【网络安全---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 .但是两者通信还是有所区别的。本试验关键点就是理解一些概念,还要会判断两个主机是否处于同一个网段等,希望大家也能自己动手去分析分析具体过程。

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

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

相关文章

(Note)机器学习面试题

机器学习 1.两位同事从上海出发前往深圳出差,他们在不同时间出发,搭乘的交通工具也不同,能准确描述两者“上海到深圳”距离差别的是: A.欧式距离 B.余弦距离 C.曼哈顿距离 D.切比雪夫距离 S:D 1. 欧几里得距离 计算公式&#x…

【单片机】13-实时时钟DS1302

1.RTC的简介 1.什么是实时时钟(RTC) (rtc for real time clock) (1)时间点和时间段的概念区分 (2)单片机为什么需要时间点【一定的时间点干什么事情】 (3)RTC如何存在于…

国庆假期day5

作业:请写出七层模型及每一层的功能,请绘制三次握手四次挥手的流程图 1.OSI七层模型: 应用层--------提供函 表示层--------表密缩 会话层--------会话 传输层--------进程的接收和发送 网络层--------寻主机 数据链路层----相邻节点的可靠传…

Ubuntu22.04 交叉编译gcc9.5 for arm

一、准备 环境:ubuntu22.04为刚刚安装,未安装gcc等包 vi ~/.bashrc输入 export PATH$PATH:/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin 保存,reboot 安装: sudo apt install cmake sudo apt install gawk sudo apt instal…

[BJDCTF2020]Mark loves cat

先用dirsearch扫一下,访问一下没有什么 需要设置线程 dirsearch -u http://8996e81f-a75c-4180-b0ad-226d97ba61b2.node4.buuoj.cn:81/ --timeout2 -t 1 -x 400,403,404,500,503,429使用githack python2 GitHack.py http://8996e81f-a75c-4180-b0ad-226d97ba61b2.…

详解Linux的系统调用fork()函数

在Linux系统中,fork()是一个非常重要的系统调用,它的作用是创建一个新的进程。具体来说,fork()函数会在当前进程的地址空间中复制一份子进程,并且这个子进程几乎完全与父进程相同,包括进程代码、数据、堆栈以及打开的文…

【Java 进阶篇】JDBC 数据库连接池详解

数据库连接池是数据库连接的管理和复用工具,它可以有效地降低数据库连接和断开连接的开销,提高了数据库访问的性能和效率。在 Java 中,JDBC 数据库连接池是一个常见的实现方式,本文将详细介绍 JDBC 数据库连接池的使用和原理。 1…

算法强训:第三十四天

文章目录 收件人列表养兔子一、收件人列表OJ链接 本题思路:先接收到一个数字,代表接下来是多少组数据 ,逐个接收每个名字,如果名字中没有,或者 则直接输出,否则在改名字前后拼接"\""再输出,除最后一个名字外,每个名字之后都有一个", " ,该组用例…

openstack-ansible部署zed版本all-in-one

目录 部署架构部署节点准备安装Rocky linux 9配置rocky 目标节点配置网络配置rocky linux网卡的创建永久网桥的方法: 部署前配置 部署架构 可用的操作系统: Debian11(bullseye) Ubuntu 22.04或20.04 CentOS Stream 9 或 Rocky Lin…

视频讲解|含可再生能源的热电联供型微网经济运行优化(含确定性和源荷随机两部分代码)

1 主要内容 该视频为《含可再生能源的热电联供型微网经济运行优化》代码讲解内容,对应的资源下载链接为考虑源荷不确定性的热电联供微网优化-王锐matlab(含视频讲解),对该程序进行了详尽的讲解,基本做到句句分析和讲解…

国庆10.4

QT实现TCP服务器客户端 服务器 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpServer> //服务器头文件 #include <QTcpSocket> //客户端头文件 #include <QList> //链表容器 #include <QMe…

【算法学习】-【双指针】-【快乐数】

LeetCode原题链接&#xff1a;202. 快乐数 下面是题目描述&#xff1a; 「快乐数」 定义为&#xff1a; 对于一个正整数&#xff0c;每一次将该数替换为它每个位置上的数字的平方和。 然后重复这个过程直到这个数变为 1&#xff0c;也可能是 无限循环 但始终变不到 1。 如果…

docker基础命令

目录 一、安装docker 1、查看是否已安装docker 2、如果系统中已经存在旧的Docker 3、配置Docker的yum库 4、安装成功后&#xff0c;执行命令&#xff0c;配置Docker的yum源 5、安装Docker 6、启动和校验 7、配置镜像加速器&#xff0c;阿里云镜像加速为例 7.1、在首页的…

NestJs和Vite使用monorepo管理项目中,需要使用共享的文件夹步骤

NestJs和Vite使用monorepo管理项目中,需要使用共享的文件夹步骤 1 首先需要将nest-cli打包的功能通过webpack接管 nest-cli.json文件内容 {"$schema": "https://json.schemastore.org/nest-cli","collection": "nestjs/schematics",…

window安装压缩版postgresql

环境&#xff1a; window 11 专业版postgresql-16.0-1-windows-x64-binaries.zip 一、下载 1.1 从官网下载 https://www.postgresql.org/download/windows/ 1.2 从百度网盘下载 链接&#xff1a;https://pan.baidu.com/s/1fmQbgWSzX4hN07Lgdzfz0g?pwddzyy 提取码&#…

C++ YAML使用

C++工程如何使用YAML-cpp 一、前期准备工作 1、已安装minGW、cmake、make等本地工具。 2、下载YAML-cpp第三方开源代码(一定要下载最新的release版本,不然坑很多)。 3、生成YAML-cpp静态库 (1)在yaml-cpp-master下建立build文件夹; (2)在该文件夹下生成MakaFile文…

C/C++字符函数和字符串函数详解————内存函数详解与模拟

个人主页&#xff1a;点我进入主页 专栏分类&#xff1a;C语言初阶 C语言程序设计————KTV C语言小游戏 C语言进阶 C语言刷题 欢迎大家点赞&#xff0c;评论&#xff0c;收藏。 一起努力&#xff0c;一起奔赴大厂。 目录 1.前言 2 .memcpy函数 3.memmove函…

以太网基础学习(一)——以太网概述

一、以太网概述 以太网(Ethernet)指的是由 Xerox公司创建并由Xerox、Intel和 DEC公司联合开发的基带局域网规范&#xff0c;通用的以太网标准于1980年9月30日出台&#xff0c;是当今现有局域网采用的最通用的通信协议标准&#xff08;是局域网的一种&#xff09;。 以太网是一种…

(C++版)ROS2 bind函数解读

在ros2的发布者节点里面有这么一句话&#xff1a;估计没有学过C的人不太理解&#xff0c;这里我就发发好心帮忙解读一下timer_ this->create_wall_timer(500ms, std::bind(&MinimalPublisher::timer_callback, this)); timer_ this->create_wall_timer(500ms, std…

自动驾驶中的感知模型:实现安全与智能驾驶的关键

自动驾驶中的感知模型&#xff1a;实现安全与智能驾驶的关键 文章目录 引言感知模型的作用感知模型的技术安全与挑战结论 2023星火培训【专项营】Apollo开发者社区布道师倾力打造&#xff0c;包含PnC、新感知等的全新专项课程上线了。理论与实践相结合&#xff0c;全新的PnC培训…