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”

ICMP路由重定向攻击

正常情况下,被攻击机器ping baidu.com返回如下所示

ICMP路由重定向攻击

发起攻击

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路由重定向攻击

红色框中:

第二行:从localhost发出的数据被重定向到了攻击机192.168.32.103

第三行:由于攻击机开启了IPV4转发,攻击机将数据包又重定向到了真正的网关192.168.32.1

 

关闭攻击机的IP转发,再进行测试

在etc/sysctl.conf 将转发参数改为“0”

ICMP路由重定向攻击

执行攻击命令 netwox 86 -f "host 192.168.43.190 " -g "192.168.43.103" -i "192.168.43.1"

ICMP路由重定向攻击

 

执行ping baidu.com查看结果,可以看到虽然将目标机器与网关通信的流量重定向到了192.168.43.103(攻击机IP),但攻击机没有对流量进行转发

ICMP路由重定向攻击

 

解决方法:

忽略icmp重定向

Centos发行版本的系统可修改 /etc/sysctl.conf添加如下内容

 

net.ipv4.conf.all.accept_redirects = 0

net.ipv4.conf.default.accept_redirects = 0

 

net.ipv6.conf.all.accept_redirects = 0

net.ipv6.conf.default.accept_redirects = 0

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyjpjg.html