icmp重定向

合集下载

ICMP重定向攻击与防范方法研究

ICMP重定向攻击与防范方法研究

ICMP重定向攻击与防范方法研究ICMP是TCP/IP协议族的一个子集,用于在IP主机、路由器之间传递控制消息,其中重定向是该协议的重要功能,而该功能常被黑客利用,并用于攻击主机;本文从ICMP重定报文结构及重定向工作方式展开,简述了重定向攻击及欺骗攻击的原理,最后阐明了防范重定向及欺骗攻击三种方法。

标签:ICMP;重定向攻击;欺骗攻击0 引言ICMP是(Internet Control Message Protocol)Internet控制报文协议。

它是TCP/IP协议族的一个子集,用于在IP主机、路由器之间传递控制消息,主要控制路由是否可用、主机是否可达和网络通不通等网络本身的重要消息。

网络或者黑客攻击者常应用ICMP重定向功能对主机进行攻击。

1 ICMP重定向报文解析ICMP重定向报文是ICMP控制报文中的一种,在一般情况下,当路由器检测到某台主机使用没有经过优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。

路由器也会把初始数据向其他的目的主机转发,ICMP重定向报文格式如下图所示:<E:\123456\中小企业管理与科技·上旬刊201510\1-297\70-1.jpg>图1 ICMP重定向报文结构ICMP有四种不同类型的重定向报文,如下表1所示。

表1 ICMP重定向报文类型[代码\&ICMP报文描述\&0123\&网络重定向主机重定向服务类型和网络重定向服务类型和主机重定向\&]ICMP重定向报文的目的主机需要查看三种IP地址类型:①发送重定向报文的路由IP地址(重定向信息的IP数据报中的源地址);②实施重定向的IP地址(ICMP重定向报文位于IP数据报首部);③采用的路由IP地址(在ICMP报文中的4~7字节)。

2 ICMP重定向工作方式如图2所示,假设有主机A和主机B、路由器A和路由器B,主机A的网关地址指向路由器A的F0/0接口,路由器A,B的F0/0端口在同一网段内,路由器A,B通过F0/1端口接入Internet,Internet有一台主机B,其IP地址为10.1.1.1,正常情况下,路由器A,B到10.1.1.0/8这个网段都有两条路由,分别是F0/1端口直接出去和F0/0端口通过另一台路由出去,但经过F0/1端口的这条路由会进入到路由表中,主机B被主机A访问的时候,数据包就会被发到路由器A的F0/0端口,再经过F0/1端口转发出去。

icmp的分类

icmp的分类

icmp的分类ICMP是Internet控制消息协议(Internet Control Message Protocol)的缩写,是TCP/IP协议族中的一个重要协议。

它主要用于在IP网络中传递控制信息,例如错误报告、网络拥塞情况、路由变更等。

ICMP是一个无连接的协议,它不提供数据传输服务,而是提供一种机制,使得网络设备能够相互通信和协调工作。

ICMP消息可以分为以下几类:1.差错消息(Error Messages)差错消息是ICMP最常用的消息类型,它用于向发送端报告网络错误和异常情况。

当一个IP数据包在传输过程中发生错误时,接收端会向发送端发送一个差错消息,告知发送端数据包无法到达目的地或者已经被丢弃。

常见的差错消息包括目的不可达、超时、源站抑制等。

2.回显消息(Echo Messages)回显消息是ICMP中最简单的消息类型,它用于测试网络连接和诊断网络故障。

当一个主机向另一个主机发送一个回显请求时,接收端会返回一个回显应答,以确认两台主机之间的连接是否正常。

常见的回显消息包括ping和traceroute。

3.重定向消息(Redirect Messages)重定向消息用于告知主机修改其路由表,以便更有效地传输数据。

当一个主机向错误的网关发送数据包时,网关会向主机发送一个重定向消息,告知主机正确的网关地址。

重定向消息可以减少网络拥塞和提高数据传输效率。

4.路由器通告消息(Router Advertisement Messages)路由器通告消息用于向主机广播路由器的存在和网络拓扑结构。

当一个主机加入一个新的网络时,它会向网络中的路由器发送一个路由器请求消息,以获取网络拓扑结构信息。

路由器会向主机发送一个路由器通告消息,告知主机网络的路由信息和其他重要参数。

5.路由器请求消息(Router Solicitation Messages)路由器请求消息用于向网络中的路由器请求路由信息。

当一个主机需要获取网络拓扑结构信息时,它会向网络中的路由器发送一个路由器请求消息。

icmp重定向原理

icmp重定向原理

icmp重定向原理
ICMP重定向是一种网络协议,用于在IP网络中通知主机更优的路径。

当一个主机(称为源主机)发送IP数据包到另一个主机(称为目标主机),但通过路由器发现有更短路径可用时,路由器可以发送ICMP重定向消息给源主机,告知它使用新的路径。

下面是ICMP重定向的工作原理:
1.源主机发送一个IP数据包到目标主机,但数据包经过一个路由器。

2.路由器检查自己的路由表,并发现有更短路径可用。

3.路由器生成一个ICMP重定向消息,包含以下信息:
源主机的IP地址
目标主机的IP地址
新的下一跳路由器的IP地址
4.路由器将ICMP重定向消息发送给源主机。

5.源主机接收到ICMP重定向消息后,更新自己的路由表,将新的下一跳路由器作为数据包的下一跳目标。

6.源主机以后的数据包将会通过新的路径发送。

需要注意的是,ICMP重定向消息只能由路由器发送给源主机,并且只对直接连接的子网有效。

此外,源主机可以选择是否接受ICMP重定向消息,这取决于其配置和安全策略。

ICMP重定向的目的是优化网络路径,减少数据包的传输延迟和网络拥塞。

通过动态地调整路由,可以提高网络性能和效率。

1。

icmp重定向

icmp重定向

icmp重定向
当I P数据报应该被发送到另一个路由器时,收到数据报的路由器就要发送ICMP重定向差错报文给I P数据报的发送端。

这在概念上是很简单的,正如图9 - 3所示的那样。

只有当主机可以选择路由器发送分组的情况下,我们才可能看到ICMP重定向报文(回忆我们在图7 - 6中看过的例子)
1) 我们假定主机发送一份I P数据报给R 1。

这种选路决策经常发生,因为R 1是该主机的默认路由。

2) R1收到数据报并且检查它的路由表,发现R 2是发送该数据报的下一站。

当它把数据报发送给R 2时,R 1检测到它正在发送的接口与数据报到达接口是相同的(即主机和两个路由器所在的L A N)。

这样就给路由器发送重定向报文给原始发送端提供了线索。

3) R1 发送一份ICMP重定向报文给主机,告诉它以后把数据报发送给R 2而不是R 1。

重定向一般用来让具有很少选路信息的主机逐渐建立更完善的路由表。

主机启动时路由表中可以只有一个默认表项(在图9 - 3所示的例子中,为R 1或R 2)。

一旦默认路由发生差错,默认路由器将通知它进行重定向,并允许主机对路由表作相应的改动。

ICMP重定向允许TCP/IP主机在进行选路时不需要具备智能特性,而把所有的智能特性放在路由器端。

显然,在我们的例子中,R 1和R2 必须知道有关相连网络的更多拓扑结构的信息,但是连在LAN上的所有主机在启动时只需一个默认路由,通过接收重定向报文来逐步学习。

icmp重定向攻击原理

icmp重定向攻击原理

icmp重定向攻击原理
icmp重定向攻击利用ICMP(Internet Control Message Protocol)协议中的重定向报文(Redirect)来进行攻击,攻击者欺骗受害者主机,让其相信一个存在的路由器并且将其默认路由的下一跳地址被欺骗器所控制。

当受害者主机发送数据包时,数据包会被发送到欺骗器所控制的主机上,被欺骗器做进一步的操作,导致报文被篡改或丢失。

重定向报文是ICMP协议中的一种报文类型,用于通知一个路由器或者主机选择一个更好的路径。

当一个路由器或主机接收到一个数据包时,如发现包头的目的路由器并不是其下一跳的路由器,它会向源主机发送一个重定向报文,要求它使用更好的路径。

攻击者发送虚假的重定向报文,将受害者主机的默认路由下一跳地址改为欺骗器控制的地址,使得受害者主机的数据包被重定向到攻击者的主机上。

icmp重定向攻击可以使得攻击者可以通过篡改或者劫持服务器和客户端之间的tcp连接,从而进行网络欺骗、数据窃取、绕过防火墙和DDoS攻击等危害。

ICMP重定向攻击

ICMP重定向攻击

ICMP重定向攻击ICMP介绍ICMP(Internet Control Message Protocol)Internet控制报⽂协议。

它是TCP/IP协议簇的⼀个⼦协议,⽤于在IP主机、路由器之间传递控制消息。

控制消息是指⽹络通不通、主机是否可达、路由是否可⽤等⽹络本⾝的消息。

这些控制消息虽然并不传输⽤户数据,但是对于⽤户数据的传递起着重要的作⽤。

ICMP重定向ICMP重定向报⽂是ICMP控制报⽂中的⼀种。

是⽤来提⽰主机改变⾃⼰的主机路由从⽽使路由路径最优化的⼀种ICMP报⽂。

其概念理解的要义是原主机路由不是最佳路由,⽽其默认⽹关提醒主机优化⾃⾝的主机路由⽽发送的报⽂。

ICMP重定向原理ICMP重定向信息是路由器向主机提供实时的路由信息,当⼀个主机收到ICMP重定向信息时,它就会根据这个信息来更新⾃⼰的路由表。

由于缺乏必要的合法性检查,如果⼀个⿊客想要被攻击的主机修改它的路由表,⿊客就会发送 ICMP重定向信息给被攻击的主机,让该主机按照⿊客的要求来修改路由表。

实验环境:攻击机kali: 192.168.43.103 ⽹关192.168.43.1被攻击机 centos 7:192.168.43.190 ⽹关192.168.43.1在此前需要开启攻击机的路由转发功能,此处使⽤kali作为攻击机在etc/sysctl.conf 将转发参数改为“1”正常情况下,被攻击机器ping 返回如下所⽰发起攻击netwox 86 -f “host {被攻击主机ip地址}” -g “{新指定的⽹关ip地址}” -i “{当前⽹关ip地址}”netwox 86 -f "host 192.168.43.190" -g "192.168.43.103" -i "192.168.43.1"这句话的意思是,嗅探⽹络中来⾃主机192.168.43.190的数据包,⼀旦出现,就以⽹关192.168.43.103的名义,向数据包的源地址发送⼀个ICMP重定向报⽂,使之使⽤192.168.43.103作为默认的路由。

ICMP重定向报文

ICMP重定向报文

1、IP地址欺骗(2)
❖ IP包一旦从网络中发送出去,源IP地址就几乎不用, 仅在中间路由器因某种原因丢弃它或到达目标端后, 才被使用。这使得一个主机可以使用别的主机的IP 地址发送IP包,只要它能把这类IP包放到网络上就 可以。因而如果攻击者把自己的主机伪装成被目标 主机信任的友好主机,即把发送的IP包中的源IP地 址改成被信任的友好主机的IP地址,利用主机间的 信任关系和这种信任关系的实际认证中存在的脆弱 性(只通过IP确认),就可以对信任主机进行攻击。 注意,其中所说的信任关系是指一个被授权的主机 可以对信任主机进行方便的访问。
1、IP地址欺骗(5)
❖ 攻击者使用IP欺骗的目的有两种:一种是只 想隐藏自身的IP地址或伪造源IP和目的IP相 同的不正常包而并不关心是否能收到目标主 机的应答,例如IP包碎片、Land攻击等;另 一种是伪装成被目标主机信任的友好主机得 到非授权的服务,一般需要使用正确的TCP序 列号。得到TCP序列号的方法在传输层安全分 析中描述。
1、IP地址欺骗(6)
❖ 缺乏认证机制是TCP/IP安全方面的最大缺陷。由于 缺乏认证,主机不能保证数据包的真实来源,构成 了IP欺骗的基础。到目前还没有理想的方法,可以 彻底根除IP欺骗。但通过各种手段,可以尽量减少 威胁。最理想的方法是:使用防火墙决定是否允许 外部的IP数据包进入局域网,对来自外部的IP数据 包进行检验。假如过滤器看到来自外部的数据包声 称有内部的地址,它一定是欺骗包,反之亦然。如 果数据包的IP不是防火墙内的任何子网,它就不能 离开防火墙。在某种意义上,过滤器分割能将 Internet分成小区域,除子网内部外,子网之间不 能欺骗。
2、电磁信息泄漏(2)
❖ 事实上,几乎所有电磁泄漏都“夹带”着设 备所处理的信息,只是程度不同而已。在满 足一定条件的前提下,运用特定的仪器均可 以接收并还原这些信息。因此,一旦所涉及 的信息是保密的,这泄漏,就威胁到了信 息安全。

网络安全实验报告 - ICMP重定向攻击

网络安全实验报告 - ICMP重定向攻击

一、实验目的
1.ICMP重定向攻击
2.ICMP重定向攻击的防范
二、实验内容与步骤
(1)设置网络环境
1.主机A、F设置成在不同网段的IP地址,需要通过路由主机E才能正常通信。

2.主机B、E为双网卡主机,将eth0设置为主机A段IP地址,将eth1设置成主机F段IP 地址,主机E开启的路由功能(echo 1 >/proc/sys/net/ipv4/ip_forward)。

3.主机A、F设置自己的网关为同网段主机E的IP地址。

(2)ICMP重定向攻击,使A-发给F的报文传输到B,然后B转发给F
1.黑客主机B攻击A的命令:
2. 主机A对主机F发送的数据通过主机B的时候,主机B对其源IP地址进行转换,改为自己的IP地址
(3)构造数据
构造主控机伪造受害主机向傀儡机发送的数据包
构造傀儡机向受害主机发送的数据包
(4)关闭ICMP重定向功能
1.Linux下
echo 0 > /proc/sys/net/ipv4/conf/DEV/accept_redirects
2.Windows下
修改注册表中的
“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableICMPRe direct”的值为0,然后重启系统使其生效
三、实验小结
ICMP重定向攻击的步骤:
1.启动ICMP重定向攻击工具
2.黑客修改自身的路由设置,作SNAT转换并转发。

ICMP重定向

ICMP重定向

ICMP重定向一、实验目的1.理解ICMP重定向存在环境。

2.进一步熟悉ICMP报文结构。

二、应用环境多出口环境中,PC终端的路由选择完全可以通过ICMP重定向来操作,而不需要为终端PC配置多个网络的出口。

使用ICMP重定向,只要环境中的路由设备能够拥有正确的路由信息,PC就可以通过ICMP重定向报文找到每个网络的正确出口路由了。

三、实验设备1·两台PC2·两台路由器3·一台交换机4.·若干网线四、实训拓扑五、实训要求1、配置基础环境,注意PC1的网关配置为10.1.1.1,PC2的网关配置为10.1.2.12、配置R1的路由ip route 10.1.2.0 255.255.255.0 10.1.1.2543、在PC1中开启抓包软件,启动抓取ICMP协议报文4、在PC1开启持续的PING pc25、停止捕获,查看ICMP报文,重点关注ECHO报文六、实训步骤Router#configRouter_config#hostname R1R1_config#interface fastEthernet 0/0R1_config_f0/0#ip add 10.1.1.1 255.255.255.0R1_config_f0/0#exitR1_config#ip route 10.1.2.0 255.255.255.0 10.1.1.254 R1_config#exitR1#.....................R2...................Router#configRouter_config#hostname R2R2_config#interface fastEthernet 0/0R2_config_f0/0#ip add 10.1.1.254 255.255.255.0R2_config_f0/0#exitR2_config#interface fastEthernet 0/3R2_config_f0/3#ip add 10.1.2.1 255.255.255.0R2_config_f0/3#exitR2_config#exitR2#wrSaving current configuration...OK!R2#Jan 1 00:01:52 Configured from console 0 by UNKNOWN2·PC1启动抓包软件,本实训使用sniffer启动后,定义一个过滤器,如下所示:启动抓包过程后,在PC1中开启一次ping过程,如下所示:C:\Documents and Settings\Administrator>ping 10.1.2.10Pinging 10.1.2.10 with 32 bytes of data:Reply from 10.1.2.10:bytes=32 time=1ms TTL=127Reply from 10.1.2.10:bytes=32 time<1ms TTL=127Reply from 10.1.2.10:bytes=32 time<1ms TTL=127Reply from 10.1.2.10:bytes=32 time<1ms TTL=127Ping statistics for 10.1.2.10:Packets:Sent = 4,Received = 4,Lost = 0 (0% loss),Approximate round trip times in milli-seconds:Minimum = 0ms,Maximum = 1ms,Average = 0msC:\Documents and Settings\Administrator>查看抓包结果,我们看到抓去了9个ICMP数据,打开编码,如下:注意:到第一个echo包的目的MAC地址是10.1.1.1的MAC地址,如下:3.查看ICMP重定向报文注意:上图中第二个数据就是一个重定向报文,查看细节如下:这个重定向数据包的含义可以理解为:我是10.1.1.1,现在给10.1.1.10发一个消息,告诉它它的网关应该是10.1.1.254,请今后直接给它发包,不用再给我了。

icmp重定向实验

icmp重定向实验

实验三配置ICMP重定向2、实验过程r1(config)#int f0/0r1(config-if)#ip add 10.1.1.1 255.255.255.0r1(config-if)#no shutr1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.2r2(config)#int f0/0r2(config-if)#ip add 10.1.1.2 255.255.255.0r2(config-if)#no shutr2(config-if)#int f0/1r2(config-if)#ip add 24.1.1.2 255.255.255.0r2(config-if)#no shutr3(config)#int f0/0r3(config-if)#ip add 10.1.1.3 255.255.255.0r3(config-if)#no shutr3(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1r4(config)#int f0/1r4(config-if)#ip add 24.1.1.4 255.255.255.0r4(config-if)#no shutr4(config)#ip route 0.0.0.0 0.0.0.0 24.1.1.2测试实验效果:在R3上ping24.1.1.4r3#debug ip icmpICMP packet debugging is onr3#ping 24.1.1.4Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 24.1.1.4, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 12/69/184 msr3#*Aug 2 15:10:42.475: ICMP: redirect rcvd from 10.1.1.1- for 24.1.1.4 use gw 10.1.1.2 *Aug 2 15:10:42.519: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3*Aug 2 15:10:42.599: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3*Aug 2 15:10:42.659: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3*Aug 2 15:10:42.675: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3*Aug 2 15:10:42.687: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3现在在R3 上的默认路由改为出接口看看效果r3(config)#no ip route 0.0.0.0 0.0.0.0 10.1.1.1r3#ping 24.1.1.4Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 24.1.1.4, timeout is 2 seconds:.!!!!Success rate is 80 percent (4/5), round-trip min/avg/max = 24/72/104 msr3#*Aug 2 15:17:55.819: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3*Aug 2 15:17:55.923: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3*Aug 2 15:17:55.983: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3*Aug 2 15:17:56.003: ICMP: echo reply rcvd, src 24.1.1.4, dst 10.1.1.3r1(config)#int f0/0r1(config-if)#no ip redirects//关闭重定向,开启命令是在接口下ip redirects注:在接口开启HSRP后,默认是关闭重定向的功能,可以手工开启。

ICMP的IP重定向报文和路由发现报文

ICMP的IP重定向报文和路由发现报文

ICMP的IP重定向报⽂和路由发现报⽂
当IP包在某⼀个地⽅转向的时候,都回给发送IP报的源主机⼀个ICMP重定向报⽂,⽽源主机就可以利⽤这个信息来更新⾃⼰的路由表,这样,随着⽹络通信的逐渐增多,路由表也就越来越完备,数据转发的速度也会越来越快。

我们需要注意的是:
1. 重定向报⽂只能由路由器发出。

2. 重定向报⽂为主机所⽤,⽽不是为路由器所⽤。

在主机引导的时候,⼀般会发送在⽹内⼴播⼀个路由请求的ICMP报⽂,⽽多个路由器则会回应⼀个路由通告报⽂。

⽽且,路由其本⾝不定期的在⽹络内发布路由通告报⽂,这样,根据这些报⽂,每⼀个主机都会有机会建⽴⾃⼰的路由表⽽实现⽹络通信。

路由器在⼀份通告报⽂中可以通告多个地址,并且给出每⼀个地址的优先等级,这个优先等级是该IP作为默认路由的等级,⾄于怎么算的就不深究了。

路由器⼀般会在450-600秒的时间间隔内发布⼀次通告,⽽⼀个给定的通告报⽂的寿命是30分钟。

⽽主机在引导的时候会每三秒发送⼀次请求报⽂,⼀旦接受到⼀个有效的通告报⽂,就停⽌发送请求报⽂。

ICMP重定向

ICMP重定向

具体例子如下:图1 ICMP重定向组网图两个路由器都开启了IP重定向功能。

HostA 的默认网关为1.1.1.1。

当HostA 要和不在同一网段中的HostB通信的时候,会把数据报递交给默认网关RT1。

然而RT1经过查找发现到达3.3.3.3的路径下一跳恰恰是经由自己的E0/1口的RT 2接口1.1.1.2。

满足上述条件,将会发生重定向。

2.3重定向报文的处理主机和路由器对于重定向报文有不同的处理原则。

路由器一般忽略ICMP重定向报文。

而主机对于重定向报文的感知取决于操作系统。

以Windows为例,对于网关返回的ICMP重定向报文,Windows会在主机的路由表中添加一项主机路由。

那么以后对于这个目的地址数据报,主机会将其直接送往重定向所指示的路由器。

支持重定向报文处理的还有许多的Unix系统,如FreeBSD的诸多版本等。

这类主机收到ICMP重定向报文后所采取的行动基本都是增加主机路由。

显然,修改默认网关是不合理的。

同时,有的操作系统对于重定向报文是不做任何处理而直接丢弃(虽然也同样经由网络层向上递交),比如Sun的某些系统。

某些主机可以启动路由器功能,如FreeBSD的某些版本和Win32系统。

这时主机的行为要特殊一些,会施加一些特殊条件来判断是否处理该重定向报文,这是依系统而异的。

比如BSD,它检查重定向报文的条件之一是“重定向报文不能让主机本身作为网关”。

2.4ICMP重定向的利与弊ICMP重定向使得客户端的管理工作大大减少,使得对于主机的路由功能要求大大降低。

该功能把所有的负担推向路由器学习。

但是与此同时ICMP重定向也有很多弊端。

就重定向本身的机制来说,ICMP重定向增加了网络报文流量,因为主机的报文总是要在网关的直连网段上重复传输。

那么更进一步如果主机的操作系统支持重定向(比如Windows)会如何?如图1,而主机收到重定向报文,会在自己的路由表中产生指向B的主机路由,经由1.1.1.2。

ICMP重定向

ICMP重定向

ICMP重定向报文是ICMP控制报文中的一种。

在特定的情况下,当路由器检测到一台机器使用非优化路由的时候,它会向该主机发送一个ICMP重定向报文,请求主机改变路由。

路由器也会把初始数据报向它的目的地转发,ICMP虽然不是路由协议,但是有时它也可以指导数据包的流向(使数据流向正确的网关)。

ICMP 协议通过ICMP重定向数据包(类型5、代码0:网络重定向)达到这个目的。

案例1:图1 ICMP重定向如图1所示,主机PC要ping路由器R2的loopback 0地址:192.168.3.1,主机将判断出目标属于不同的网段,因此它要将ICMP请求包发往自己的默认网关192.168.1.253(路由器R1的E0接口)。

但是,这之前主机PC首先必须发送ARP请求,请求路由器R1的E0(192.168.1.253)的MAC地址。

当路由器R1收到此ARP请求包后,它首先用ARP应答包回答主机PC的ARP 请求(通知主机PC:路由器R1自己的E0接口的MAC地址)。

然后,它(路由器R1)将此ICMP请求转发到路由器R2的E0接口:192.168.1.254(要求路由器R1正确配置了到网络192.168.3.0/24的路由)。

此外,路由器R1还要发送一个ICMP重定向消息给主机PC,通知主机PC对于主机PC请求的地址的网关是:192.168.1.254。

路由器R2此时会发送一个ARP请求消息请求主机PC的MAC地址,而主机PC会发送ARP应答消息给路由器R2。

最后路由器R2通过获得的主机PC的MAC 地址信息,将ICMP应答消息发送给主机PC。

ICMP重定向包的内容如图2、图3所示。

注意图2 ICMP包头中的Type和Code字段的值和含义。

图2 ICMP重定向包图3 ICMP重定向包-续如果还有后续的ICMP请求包,则除了ARP消息,所有的事件序列和上面的叙述相同。

如图9所示。

图4 ICMP重定向事件序列案例2:如上图所示,假设有主机Host1,路由器RT1和RT2,Host1的网关指向RT1的以太口Host1。

ICMP重定向

ICMP重定向

ICMP重定向
ICMP重定向报⽂是ICMP控制报⽂中的⼀种。

在特定的情况下,当路由器检测到⼀台机器使⽤⾮优化路由的时候,它会向该主机发送⼀个ICMP重定向报⽂,请求主机改变路由。

路由器也会把初始数据报向它的⽬的地转发。

如上图所⽰,R3想发送数据报给R4,R3的默认⽹关是R1,R3将数据报发送给R1,R1查看⾃⼰的路由表,到达R4的下⼀跳地址是R2,当把数据报发送给R2时,R1检测到它正在发送数据报的接⼝与数据报到达的接⼝是相同的,R1,R2,R3位于同⼀LAN,这样就满⾜了ICMP 重定向的条件。

R1会发送⼀份ICMP重定向报⽂给R3,告诉它以后将数据报发送给R2⽽不是R1。

重定向⼀般是⽤来让具有很少选路信息的主机逐渐建⽴更完善的路由表。

需要路由器向源发送ICMP重定向的情况是:
1)源将数据报发送给路由器的⼊端⼝(R3->R1)和路由器发送数据报的出端⼝(R1->R2)必须相等
2)数据报的源IP和⾃⼰转发时的下⼀跳IP地址是同⽹段的(R3,R1)
ICMP重定向报⽂格式为
类型代码校验和
重定向⽹关 IP
原包的IP⾸部
源IP数据报前8个字节
类型为5,代码包括4种,其中0为⽹络重定向,1为主机重定向,2为服务类型和⽹络重定向,3为服务类型和主机重定向。

⼀般⽤的是1和3,主机的重定向。

ICMP重定向字段的路由重定向实验

ICMP重定向字段的路由重定向实验

ICMP重定向字段的路由重定向实验ICMP的重定向字段,被路由器用于通知主机去往目标的最佳网关,是数据链路上的另一台路由器。

实验目的:1.验证重定向。

2.重定向对主机的数据转发的影响。

3.关闭重定向后,数据转发过程。

实验拓扑:实验设计:1.R2、R3、R4、R5运行RIPv2协议,R1关闭路由功能,将默认网关指向R22.R4、R5上各有环回接口,IP分别为4.4.4.4、5.5.5.5,所有IP地址使用/24位地址。

3.在验证过重定向后,关闭R2 F0/0的路由重定向功能,通过抓包,查看数据转发路径。

实验过程:各路由器的配置在此就不写了,直接来验证实验结果。

首先先对拓扑进行分析,从拓扑上看,R1发往R4的数据,其最短路径应为R1—R3——R4;R1发往R5的数据,其最短路径应为R1—R2—R5。

我们通过抓包,来分别检验到R4,R5的数据转发路径。

当然在开始前要做些准备工作:1.在R1上使用debug ip icmp命令来开启debug信息。

2.关闭R2 F0/0接口的路由重定向功能,应为该功能是默认开启的,命令如下:1.关闭R2路由重定向功能时的数据传输路径1.1 在R1上ping 5.5.5.5ping通后,看看抓包的结果,查看R1的F0/0口即可图1 R1 ping请求抓包图2 R1 ping应答抓包从请求及应答包的二层头部可以看出,R1的数据发向了R2,因为R2运行有RIP协议,故数据包将由R2转给R5。

1.2 在R1上ping 4.4.4.4图3 R1 ping 4.4.4.4 请求抓包图4 R1 ping 4.4.4.4 应答抓包为了更好的说明问题,再在R3 f0/0上进行抓包图5 R3上抓取的ping请求包图6 R3上抓取的ping应答包由图3可看出,R1向R4的ping请求首先发向了ca00.0518.0000(R2),由图4可看出,直接向R1转发此次ping应答的是ca02.0518.0000(R3)。

实验1.1 静态路由—ICMP重定向

实验1.1 静态路由—ICMP重定向

实验1 静态路由——ICMP重定向一、实验拓扑图,如图1.1所示:图1.1 ICMP重定向实验拓扑图二、实验说明:1.实验拓扑图如图1.1所示;2.路由器R1、R2、R3的连接在同一个以太网段,将R2的默认路由指向R1在同一网段的接口;R2的默认路由指向R3在同一网段的接口;3.R4的默认路由指向R3在同一网段的接口,保证全网互通;4.测试网络连通性,并纪录ICMP重定向现象。

本地主机访问远程目的网络时会将自己的数据发给默认网关路由器,当网关路由发现要到达目的网络自己并不是最优路径时就会给该主机发送一个ICMP重定向报文,让主机在访问网络的时候直接走其它路由器而不是再经过自己转发。

发生ICMP重定向通常有两种情况:1)当路由器从某个接口收到数据还需要从相同接口转发该数据时;2)当路由收从某个接口到发往远程网络的数据时发现源ip地址与下一跳属于同一网段时。

三、预配置:1.R1的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#ho R1R1(config)#int f1/0R1(config-if)#ip add 123.0.0.1 255.255.255.0R1(config-if)#no shR1(config-if)#ip route 0.0.0.0 0.0.0.0 123.0.0.32.R2的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#ho R2R2(config)#int f1/0R2(config-if)#ip add 123.0.0.2 255.255.255.0R2(config-if)#no shR2(config-if)#ip route 0.0.0.0 0.0.0.0 123.0.0.13.R3的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#ho R3R3(config)#int f1/0R3(config-if)#ip add 123.0.0.3 255.255.255.0R3(config-if)#no shR3(config-if)#int f1/1R3(config-if)#ip add 34.0.0.3 255.255.255.0R3(config-if)#no sh4.R4的预配置:Router>enRouter#conf tEnter configuration commands, one per line. End with CNTL/Z.Router(config)#no ip do loRouter(config)#line 0Router(config-line)#no exec-tRouter(config-line)#logg sRouter(config-line)#ho R4R4(config)#int f1/1R4(config-if)#ip add 34.0.0.4 255.255.255.0R4(config-if)#no shR4(config-if)#ip route 0.0.0.0 0.0.0.0 34.0.0.3四、配置及调试分析:1.查看各路由器的路由表://R1的路由表R1(config)#do sh ip routCodes: C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2ia - IS-IS inter area, * - candidate default, U - per-user static routeo - ODR, P - periodic downloaded static routeGateway of last resort is 123.0.0.3 to network 0.0.0.0123.0.0.0/24 is subnetted, 1 subnetsC 123.0.0.0 is directly connected, FastEthernet1/0S* 0.0.0.0/0 [1/0] via 123.0.0.3//R2的路由表R2(config)#do sh ip routCodes: C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2ia - IS-IS inter area, * - candidate default, U - per-user static routeo - ODR, P - periodic downloaded static routeGateway of last resort is 123.0.0.1 to network 0.0.0.0123.0.0.0/24 is subnetted, 1 subnetsC 123.0.0.0 is directly connected, FastEthernet1/0S* 0.0.0.0/0 [1/0] via 123.0.0.1//R3的路由表R3(config-if)#do sh ip routCodes: C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2ia - IS-IS inter area, * - candidate default, U - per-user static routeo - ODR, P - periodic downloaded static routeGateway of last resort is not set34.0.0.0/24 is subnetted, 1 subnetsC 34.0.0.0 is directly connected, FastEthernet1/1123.0.0.0/24 is subnetted, 1 subnetsC 123.0.0.0 is directly connected, FastEthernet1/0//R4的路由表R4(config)#do sh ip routCodes: C - connected, S - static, R - RIP, M - mobile, B - BGPD - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter areaN1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2E1 - OSPF external type 1, E2 - OSPF external type 2i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2ia - IS-IS inter area, * - candidate default, U - per-user static routeo - ODR, P - periodic downloaded static routeGateway of last resort is 34.0.0.3 to network 0.0.0.034.0.0.0/24 is subnetted, 1 subnetsC 34.0.0.0 is directly connected, FastEthernet1/1S* 0.0.0.0/0 [1/0] via 34.0.0.3//以上输出中,各路由器已经包含到达各网络所必须的路由条目2.在R2上开启ICMP调试,ping测试与远程网络的连通性:R2#debug ip icmpR2#ping 34.0.0.4Type escape sequence to abort.Sending 5, 100-byte ICMP Echos to 34.0.0.4, timeout is 2 seconds:!!!!!Success rate is 100 percent (5/5), round-trip min/avg/max = 20/57/160 msR2#*Aug 23 10:14:02.099: ICMP: redirect rcvd from 123.0.0.1- for 34.0.0.4 use gw 123.0.0.3 *Aug 23 10:14:02.147: ICMP: echo reply rcvd, src 34.0.0.4, dst 123.0.0.2*Aug 23 10:14:02.211: ICMP: echo reply rcvd, src 34.0.0.4, dst 123.0.0.2*Aug 23 10:14:02.243: ICMP: echo reply rcvd, src 34.0.0.4, dst 123.0.0.2*Aug 23 10:14:02.267: ICMP: echo reply rcvd, src 34.0.0.4, dst 123.0.0.2*Aug 23 10:14:02.287: ICMP: echo reply rcvd, src 34.0.0.4, dst 123.0.0.2 分析:以上输出说明,R2在访问远程网络的时候将数据包发给网关R1,R1查询自己的路由表发现到达该远程网络需要再次从Fa1/0接口转发出去,而且数据包的源在同一网段,所以会给源发送一个ICMP重定向报文,指示R2可以直接通过R3访问远程目的网络。

网络安全实验报告 - ICMP重定向攻击

网络安全实验报告 - ICMP重定向攻击

一、实验目的
1.ICMP重定向攻击
2.ICMP重定向攻击的防范
二、实验内容与步骤
(1)设置网络环境
1.主机A、F设置成在不同网段的IP地址,需要通过路由主机E才能正常通信。

2.主机B、E为双网卡主机,将eth0设置为主机A段IP地址,将eth1设置成主机F段IP 地址,主机E开启的路由功能(echo 1 >/proc/sys/net/ipv4/ip_forward)。

3.主机A、F设置自己的网关为同网段主机E的IP地址。

(2)ICMP重定向攻击,使A-发给F的报文传输到B,然后B转发给F
1.黑客主机B攻击A的命令:
2. 主机A对主机F发送的数据通过主机B的时候,主机B对其源IP地址进行转换,改为自己的IP地址
(3)构造数据
构造主控机伪造受害主机向傀儡机发送的数据包
构造傀儡机向受害主机发送的数据包
(4)关闭ICMP重定向功能
1.Linux下
echo 0 > /proc/sys/net/ipv4/conf/DEV/accept_redirects
2.Windows下
修改注册表中的
“HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\EnableICMPRe direct”的值为0,然后重启系统使其生效
三、实验小结
ICMP重定向攻击的步骤:
1.启动ICMP重定向攻击工具
2.黑客修改自身的路由设置,作SNAT转换并转发。

配置icmp重定向:

配置icmp重定向:

CCIE day01 ICMP重定向ICMP重定向icmp redirect;拓扑:网络中的路由器通过相互之间的共同努力,将用户的数据包转发到目的地。

通常情况下,主机都会将去往远程网络的数据包发送到路由器,路由器再尽最大努力转发数据。

但是,某些情况下,收到数据包的路由器可能并不是在源与目标的路径之中,或者说数据源应该将数据交给其它路由器来转发。

如果某台路由器发现自己真的不应该为用户转发数据,而希望让用户选择其它路由器来转发数据,那么它就会向数据源发送ICMP重定向,告诉对方不要在把数据包发向自己,而应该发到其它路由器。

路由器向源发送icmp重定向的情况有两种:1,当路由器从某个接口收到数据包后,还要将数据包从同一个接口发往目的地,就是路由器收到数据包的接口正是去往目的地的出口时,则会向源发送icmp重定向,告知对方直接将数据包发向自己的下一跳即可;2,数据包的源ip和自己转发时的下一跳的ip是同网段时,则会向源发送icmp重定向,告知对方直接将数据包发向自己的下一跳。

注:路由器向源发送icmp重定向时不会中断网络;Icmp重定向是基于接口配置的,默认为开启。

配置icmp重定向:R1(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.2 (R1的数据包全部交给R2)R3(config)#ip route 0.0.0.0 0.0.0.0 10.1.1.1(R3的数据包全部给R1)R4(config)#ip route 0.0.0.0 0.0.0.0 20.1.1.2测试icmp重定向:R3#debug ip icmpR3#ping 20.1.1.1更改R3路由后测试:R3(config)#ip route 0.0.0.0 0.0.0.0 f0/0 关闭icmp重定向:R1(config-if)#no ip redirect。

icmp协议的作用

icmp协议的作用

icmp协议的作用ICMP(Internet Control Message Protocol)是一个为了在IP (Internet Protocol)网络上传输控制消息而设计的协议。

它是TCP/IP协议栈中的一个重要组成部分,用来支持网络中的各种控制、错误、查询和回应消息。

ICMP的作用主要有以下几个方面:1. 错误报告与诊断:ICMP可以通过发送错误报文来指示网络设备关于数据包传输中的错误。

例如,当某个路由器发现一个无法到达目标主机的数据包时,它会返回一个ICMP的错误报文给源主机。

这样,源主机就可以根据错误报文来判断是否重新发送数据包,或者采取其他操作。

此外,ICMP还可以通过发送Echo请求消息来测试目标主机是否可达,以及获取目标主机的延迟和丢包率等信息。

2. 重定向:当一个路由器接收到一个数据包,并发现数据包传输的下一跳应该通过另一个路由器时,它可以通过发送一个ICMP重定向消息来通知源主机更改路由。

这样可以降低网络的负载和提高传输效率。

3. 路由选择协议:ICMP可以与路由选择协议(如RIP、OSPF 和BGP)配合使用,以传递路由选择信息。

例如,当某个路由器发现一个新的路径,它可以通过发送一个ICMP重组RIP 和OSPF报文来通知其他路由器更新其路由表。

4. 是否可达检测:ICMP可以通过发送Echo请求消息来测试一个主机或路由器是否可达。

当一个主机或路由器接收到Echo请求消息时,会自动返回一个Echo回应消息,以表明其正常工作。

利用这个机制,管理员可以检测网络中设备的可用性。

5. 其他特定功能:ICMP还有其他一些用途,如MTU发现、时间戳和流量控制等。

MTU发现可以通过发送不同大小的数据包来确定最佳的最大传输单元,以避免IP分片。

时间戳可以用来测量往返延迟。

流量控制可以通过发送Congestion Control报文来告知源主机减少发送数据的速率,以避免网络拥塞。

总的来说,ICMP是TCP/IP协议栈中一个关键的协议,它通过发送控制消息来支持网络的错误报告、诊断和配置。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

R1 f0/0的IP 192.168.0.1 255.255.255.0
R2 f0/0的IP 192.168.0.2 255.255.255.0 f0/1的IP 192.168.1.2 255.255.255.0
R3 f0/0的IP 192.168.0.3 255.255.255.0 f0/1的IP 192.168.3.2 255.255.255.0 R4 f0/0的IP 192.168.2.2 255.255.255.0 f0/1的IP 192.168.1.3 255.255.255.0
R5 f0/0的IP 192.168.2.3 255.255.255.0 f0/1的IP 192.168.3.3 255.255.255.0
断掉上联端口,会通过icmp重定向寻找到达目标的路径
再R1上跟踪到192.168.1.3,也就是R4的f0/1的端口地址
R1#traceroute 192.168.1.3
1 192.168.0.
2 112 msec 48 msec 4 msec
2 192.168.1.
3 28 msec * 80 msec
再R1上查看ip 重定向表,show ipsh ip redirects ,发现时空的
R1#sh ip redirects
Default gateway is not set
Host Gateway Last Use Total Uses Interface
ICMP redirect cache is empty
先ping 192.168.1.3,次数多次,然后关闭R2的f0/1端口
R1#ping 192.168.1.3 repeat 99999999
Type escape sequence to abort.
Sending 99999999, 100-byte ICMP Echos to 192.168.1.3, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!.U.................................... ..................................................!!!!!!!!!!!!!!!!!!!!
U表示在R2上无法直达192.168.1.3,开始和R3进行icmp重定向
再R2上会有关于icmp的提示
*Mar 1 00:16:29.139: ICMP: dst (192.168.1.3) host unreachable sent to 192.168.0.1
*Mar 1 00:16:31.171: ICMP: redirect sent to 192.168.0.1 for dest 192.168.1.3, use gw 192.168.0.3
这个时候再在R1上show ipsh ip redirects
R1#sh ip redirects
Default gateway is not set
Host Gateway Last Use Total Uses Interface
192.168.1.3 192.168.0.3 0:00 5538 FastEthernet0/0
断掉下联端口
先ping 192.168.3.3,次数多次,然后关闭R2的f0/0
R1#ping 192.168.3.3 repeat 9999999
Type escape sequence to abort.
Sending 9999999, 100-byte ICMP Echos to 192.168.3.3, timeout is 2 seconds:
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!!!!!!!!!!!!!!!!!!!!!!!!!!!........................................... .......................
在R1上关于icmp的提示
*Mar 1 00:52:03.563: ICMP: dst (192.168.0.1) host unreachable sent to 192.168.3.3
说明R1到不了192.168.3.3,icmp重定向包无法发给R2。

相关文档
最新文档