关于ICMP报文的问题

来源:互联网 发布:淘宝联盟怎么登录账号 编辑:程序博客网 时间:2024/05/22 00:24

偶然一次机会,用wireshark抓包发现一些有趣的现象。之前一直想测试ICMP重定向攻击,但是介于一直找不到现成的数据包来观察,终于让我偶然逮到这次机会来真正观察这类报文的产生原因。

一、环境配置

一台笔记本,使用家庭路由器的Wifi,笔记本开着虚拟机,使用桥接模式,设置桥接到笔记本的无线网卡,并且虚拟机的OS开着路由转发功能

R1:192.168.1.1 网关 MAC 28:2c:b2:a9:b9:de
R2:192.168.1.105 虚拟机IP(Windows XP professional) MAC 28:2c:b2:cc:a6:00
S1:192.168.1.101 物理机IP(Windows 8.1) MAC ac:b5:7d:3b:9f:7b

二、实际数据和分析

在wireshark里面出现大量的ICMP重定向报文,报文意思大概是接收到很多S1传来的数据报,然后R2作为路由器接着又把报文传递给下一个路由站R1,R2发现这个路由站和数据报IP的首部中的源地址位于同一个网络,继而向源主机发送ICMP重定向报文,请求主机把数据报直接发往R1。同时也收到R1传递给S1的数据报,同时也向R1发送重定向报文,声明R1直接将数据报发给S1。
就算接收到了重定向报文,整个网络流量的走向并没有被改变,由于R2和S1使用的MAC地址是相同的,所以R2仍然是S1的镜像,收到S1所有的数据报。
重定向报文格式
虚拟机适配器设置

三、遇到问题及解决方案

在尝试Ping的测试以后,才发现这个网络拓扑愈加复杂,在测试中出现了这几种现象:

3.1、登录路由器界面,利用自带的诊断工具去PingS1,出现了8次Reply的情况,而网关只接收到一次有效回复。

这里写图片描述

第一个request是S1传递过来的,经过虚拟机这个设备TTL减一(第二个request的TTL变成63),然后虚拟机又通过路由转发传递给物理机,所以物理机中抓到的包中的以太帧都是无线适配器的MAC地址。
这里写图片描述

第二个request的以太帧表示从R2发送到R1(路由转发功能)
这里写图片描述

3.2、再次利用诊断工具PingR2,结果全部接收到Reply。

这里写图片描述
虚拟机抓到网关发来的包是网关直接发来的,并没有经过设备中转,而且TTL都是64和128,说明没有经过任何设备,是直达的。
虚拟机wireshark

而物理机抓到的包也是网关直接发来的。
物理机wireshark
综上所述,无线适配器的关系和虚拟机适配器的关系既像集线器,又像路由器。

3.3、S1无法Ping通R2,R2也无法Ping通S1

物理机wireshark

3.4、查看S1 Tracert R1的路由表,发现中间设备居然有R2

这里写图片描述

四、网络拓扑

这里写图片描述
从上面我们可以看到,S1得到的数据,R1也能看到,这也就无形当中造成了中间人攻击的现象,关闭重定向报文功能后,一切恢复正常。其中还有很多疑惑没有解决,就是R2和S1的关系像集线器和路由器的混合体,暂且保存这份报告,以后有机会继续实验。

0 0
原创粉丝点击