开发商建设审批网站,个人业务网站建设,wordpress心理教育网站,十堰论坛网站ICMP协议是网络层协议#xff0c; 利用ICMP协议可以实现网络中监听服务和拒绝服务#xff0c;如 ICMP重定向的攻击。
一、ICMP基本概念
1、ICMP协议
ICMP是Internet控制报文协议#xff0c;用于在IP主机、路由器之间传递控制消息#xff0c;控制消息指网络通不通、主机是…ICMP协议是网络层协议 利用ICMP协议可以实现网络中监听服务和拒绝服务如 ICMP重定向的攻击。
一、ICMP基本概念
1、ICMP协议
ICMP是Internet控制报文协议用于在IP主机、路由器之间传递控制消息控制消息指网络通不通、主机是否可达路由是否可用等等。
案例 环境GNS3 路由器 交换机 电脑slots设置交换机要选择NM-6ESW主机和路由器选NM-1FE-TX
PC#show int f0/0
FastEthernet0/0 is up, line protocol is upHardware is AmdFE, address is cc02.1b08.0000 (bia cc02.1b08.0000)Internet address is 192.168.1.1/24#可知PC的MAC地址为cc02.1b08.0000R3#show int f0/0
FastEthernet0/0 is up, line protocol is upHardware is AmdFE, address is cc03.187c.0000 (bia cc03.187c.0000)
#可知路由器R3的MAC地址为cc03.187c.0000
ping一下网关 抓包看到数据有请求有响应 根据抓到得报文可以看出ICMP报文是有请求有响应的如果说出现请求超时这种情况很有可能是数据包可以到达目的地但是回不来或者说 根本不能到达目的地所以请求超时会有多种情况。如果是路由器回复目标主机不可达造成的结果就是路由器没有帮你转发数据。
ICMP报文前面是网络层协议有IPV4报文接着才是ICMP协议 。 2、ICMP封装结构
ICMP是主机和路由器之间传递控制报文消息的ICMP属于网络层协议是封装在传输层和控制层之间的。 3、ICMP报文结构
type类型code 代码Checksum校验和IdentifierBE和dentifierLE是报文的标志符Sequence NumberBE和Sequence NumberLE是报文的序列号Data:ICMP的数据 4、ICMP的TypeCode
ICMP报文主要就是看它的类型type和代码code
(8 0) ICMP请求 ICMP报文type类型都为8code字段为0注不正常的请求下面有No response seen字段。(0 0) 回显应答表示比较正常的应答(11 0) 超时传输期间生存时间为0 (3 1) 不正常应答目标不可达主机不可达(3 3) 目标不可达端口不可达(3 2) 目标不可达协议不可达类型5 表示重定向(5 0)网络重定向(5 1)主机重定向类型13 14 时间戳请求 时间戳应答总计类型是有0到18这里有个特殊点就是类型0之后没有类型1 类型2 类型0过后是类型3 类型4 类型5 也没有类型6 类型7接着是类型8 类型9……一直到类型18。
注ICMP报文不同的类型下面可能有不同的代码可能要去了解下常见的ICMP类型有哪些某一类型下面有哪些代码。如当你去访问一个不存在或者目标不可达或者说没有响应的目的的时候数据到达网关后路由器发现目标无法到达或者回不来的时候会给主机发送ICMP响应即ICMP控制报文根据UCMP控制报文的Type和code可以分析出主机访问目标到底是什么情况。
二、ICMP重定向
1、什么是ICMP重定向
重定向是ICMP控制报文中的一种在某一种特定的情况下当路由器检测到一台机器使用的是非优化路由的时候这个时候路由器回会主机发送ICMP重定向报文使得它走优化路由。.
2、ICMP重定向举例
1引入ICMP重定向
网络中有三台主机{主机A192.168.1.10主机B 192.168.2.1主机C192.168.3.1}
一台交换机和两台路由器主机A通过交换机连接到路由器R1和R2主机A的网关是R1
主机B接R2主机C接R1。网络拓扑如下 现主机A(1.10)要访问主机B(3.1)因为主机A的网关是(1.254)初始R1没有配置到R2的路由所以主机A是无法到达主机B的。
此时如果在R1路由器添加到R2的静态路由主机A访问主机B的数据流向如下
主机A-R1-R2-主机B
这样走的话就比较复杂了因为从网络拓扑来看主机A如果能够走R2到主机B的话显然是最优路线那么就要引入了ICMP重定向l了。
2ICMP重定向
此时我们可以在R2路由器R1上直接设置主机重定向让主机A访问主机B的时候直接走路由器R2.
即在此情况下当路由器R1检测到主机A使用的是非优化的路由路由器R1就会想主机A发送ICMP重定向报文使主机A的路由改变。
此时如果有黑客直接给逐句A发送ICMP重定向将主机A的路由改变了可能在成逐句A无法进行网络通信或直接将主机A的网关改成自己来达成截取流量的目的这就是ICMP重定向攻击。
3、ICMP重定向原理性实验
实验环境GNS3两台路由器、一台交换机、一台主机2.1和3.1的网络通过路由器的loopback虚拟接口来实现
1网络搭建与配置 PC(config)#no ip routing
PC(config)#int f0/0
PC(config-if)#ip add 192.168.1.10 255.255.255.0
PC(config-if)#no shut
PC(config-if)#exit
PC(config)#ip default-gateway 192.168.1.254
PC(config)#R1#
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#int f0/0
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R1(config)#int loopback 0
R1(config-if)#ip
*Mar 1 00:13:05.739: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
R1(config-if)#ip add 192.168.2.1 255.255.255.0
R1(config-if)#R2#conf
Configuring from terminal, memory, or network [terminal]?
Enter configuration commands, one per line. End with CNTL/Z.
R2(config)#int f0/0
R2(config-if)#ip add 192.168.1.253 255.255.255.0
R2(config-if)#no shut
R2(config-if)#no shut
*Mar 1 00:09:59.695: %LINK-3-UPDOWN: Interface FastEthernet0/0, changed state to up
*Mar 1 00:10:00.695: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to up
R2(config-if)#exit
R2(config)#int loopback 0
*Mar 1 00:10:18.415: %LINEPROTO-5-UPDOWN: Line protocol on Interface Loopback0, changed state to up
R2(config-if)#ip add 192.168.3.1 255.255.255.02主机Aping测试
R1、R2以及192.168.2.1都可以ping通但是192.168.3.1无法ping通没有路由 3配置路由
直接在R1路由器配置一条路由使得数据通过R1转发到192.168.3.0
R1#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R1(config)#ip route 192.168.3.0 255.255.255.0 192.168.1.253
R1(config)#4抓包分析
开启三条链路的抓包然后主机ping192.168.3.1抓取数据进行分析。 主机A-交换机数据流量
第一条报文是no response没有响应也就是cmd上面显示请求超时的那条报文。 我们来看下ICMP报文的type和code字段type类型为5code为0表示对网络进行重定向 下一条报文就请求到了 交换机-R1数据流量 左边链路是
1.10请求3.1
1.10收到路由器的重定向
1.10去请求1.253的MAC地址
接下来后续的包就直接交给了1.253
主机A访问3.1的时候网关直接发送ICMP重定向报文给主机A 由于主机A的网关R1发现自己路由表中有直接到达192.1683.1的路由
所以看到下一跳地址直接向R2发送了ARP请求请求R2的MAC地址R2发送ARP应答将自己的MAC地址响应给R1. 右边链路的抓包情况
右边这条链路很清楚它就没有重定向的过程。直接是1.10请求3.1,3.1响应1.10 4总结
整个过程
192.168.1.10请求192.168.3.1
192.168.1.10收到网关的ICMP重定向报文
网关请求R2(192.168.1.253)的MAC地址
接下来后续的包就直接交给了R1(192.168.1..253)
在GNS3中重定向的路由直接改了PC网关 4、ICMP重定向攻击
1环境
kali虚拟机netwox工具、ettercap工具
2工具
netwox ettercap 如果遇到直接点击ettercap图标无法启动尝试终端输入ettercap -G运行 3ettercap 攻击模拟
选择网卡 扫描 查看扫描到的IP-MAC列表 windows虚拟机作为被攻击目标 kali作为攻击机 在扫描列表中找到被攻击主机右击选中然后Add to Target1 在列表中任选一个Add to Target2 点击右上角小地球标识ICMP redirect 重定向到哪里去这里输入的是一个虚假的MAC地址 windows上面抓包 正常还是可以访问网络的 这里抓到了ICMP报文 正常实施ICMP重定向攻击的话Windows这台主机是不能通信的,实验结果的话在虚拟机里面很难实现。
4netwox攻击模拟
web.ecs.syr.edu/~wedu/Teaching/cis758/netw522/netwox-doc_html/tools/index.html 用法 参数-d 指定网卡 -f 过滤器 -g 新的网关 -s 欺骗IP -c ICMP代码 -i 源IP地址使用示例netwox的86模块 -g 指定新的网关 指定新网关并实施攻击 netwox是直接对网络中的所有主机进行了重定向 ping下百度可以ping通还是可以正常访问到网络的。 查找ping百度的报文进行分析 kali向Windows10发送了重定向报文将它的网关改成了192.168.183.134