ICMP 重定向攻击和ICMP不可达报文攻击

ICMP 重定向攻击和ICMP不可达报文攻击


00X1 写在前面

最近一直在研究各种畸形报文和一些特殊的报文,并且需要根据这些攻击特点进行相应的数据包侦测与拦截。一切其他的攻击以后有时间再来写吧。当我研究到了ICMP重定向和不可达报文攻击的时候,觉得很有趣,ICMP协议在我们网络中经常存在于ping 中,用于测试两台主机之间的网络连通性,以前也听说过这两种形态的攻击,但是没有怎么去理解这些攻击流程,和攻击的原理。
请诸位与我一起学习一下吧

00x2 两种攻击原理介绍

ICMP重定向攻击

这里首先假设有两台电脑,正常情况下,两台机器互相进行网络交流的时候需要经过路由,但是路由器有一个策略,就是当发现网络中有一台机器使用的是非优化路由的时候,路由就会向那台机器发送一个ICMP重定向的特殊报文,告诉机器改变路由,让机器的路由改为最优的,这个优化和非优化可以理解两点直接直线最短,怎么快就怎么弄,这本身是一个对网络有益的机制。
但是这个更改路由的ICMP重定向特殊报文是可以伪造的,并且不需要经过一些校验,合法性检查。也就是说攻击者完全可以向他向受害主机发送ICMP重定向报文,迫使受害主机更改路由表。

危害

ICMP重定向攻击的数据包可以迫使主机更改路由为攻击者的主机,那么主机的流量就需要经过攻击者的主机。
攻击者就可以截获、提取、分析、修改、重放用户user的数据包,对流量进行嗅探劫持、中间人代理,造成多种安全威胁。

ICMP不可达报文攻击

先分析一下出现ICMP不可达报文的情况
在三次握手阶段有两种情况TCP会收到ICMP“目的不可达”报文:
1、client端通过connect系统调用发送SYN请求到server端后,server没有进程在相应的地址或端口处理请求,这时client端会收到ICMP不可达报文。
2、client端通过connect系统调用发送SYN请求后崩溃,server端收到SYN后发送SYN|ACK,client端收到SYN|ACK后会给server发送ICMP不可达报文。
不同的主机对ICMP不可达报文的处理方式不同,有的主机在收到网络或主机不可达的ICMP报文后,对于后续发往此目的地址的报文直接认为不可达,从而切断了目的地与主机的连接。

危害

攻击者可以伪造不可达ICMP报文,在其他主机发送SYN请求的时候,立即发送伪造 的ICMP不可达报文,切断受害者与目的地的连接,造成攻击。

00X3 攻击测试

ICMP重定向攻击

准备: 一台kali虚拟机(攻击者),一台ubuntu 虚拟机(受害者)
工具:netwox工具
下面就是ICMP重定向攻击的拓扑图,借用了一下其他大神的图QAQ。
ICMP 重定向攻击和ICMP不可达报文攻击_第1张图片
攻击者:
在这里插入图片描述
受害者:
在这里插入图片描述
攻击者伪造路由发送ICMP重定向报文到受害者

netwox 86 -f "host 192.168.146.128" -g "192.168.146.129" -i "192.168.146.2"
-f 过滤数据包这里只抓Ubuntu的数据包
-g 重定向包需要受害者更改的新路由,这里指向kali
-i Ubuntu 原来的路由

在这里插入图片描述
Ubuntu wireshark抓包分析

抓到一些重定向的数据包,从默认网关发来的更改路由的数据包,这实际上是攻击者伪造的重定向数据包。
在这里插入图片描述
ICMP数据包中Type:5 ,Gateway address(网关地址):攻击者IP,source是原来的网关地址。这一切都是伪造的数据包。
ICMP 重定向攻击和ICMP不可达报文攻击_第2张图片
接下里我们来使用Ubuntu ping 一下百度,大伙会发现数据包都重定向到我们的攻击者那边去了。 ICMP 重定向攻击和ICMP不可达报文攻击_第3张图片
抓一下DNS查询的请求数据包,会发现本来发送到192.168.146.2的数据包,发送到了kali机器上,Ubuntu把kali当成默认网关了。
ICMP 重定向攻击和ICMP不可达报文攻击_第4张图片

ICMP不可达报文攻击

准备的事项和前面一样,这里就不累述了。直接开始。
这里使用netwox 82,对netwox不太熟悉的同学可以查一下netwox详解,看看这个套件怎么用,有哪些用,里面有各种各样的数据包构造工具,挺强大的。

kali攻击

netwox 82 -f "host 192.168.146.128" -i "192.168.146.2"
-f 过滤数据包     -i  受害者当前网关地址/路由地址

在这里插入图片描述
Ubuntu wieshark 抓包分析
下面的数据包我是使用Ubuntu ping baidu.com 才抓到的数据包,仔细看一下,kali伪造192.168.146.2向Ubuntu 发送目标不可达报文。欺骗Ubuntu不能访问百度。
ICMP 重定向攻击和ICMP不可达报文攻击_第5张图片
这是ubuntu ping 的结果。目标不可达的数据包显示是从192.168.146.2发过来的,其实是攻击者伪造发过来的数据包,已经起到了欺骗的效果。
ICMP 重定向攻击和ICMP不可达报文攻击_第6张图片
接下来我们再使用kali ping一下Ubuntu ,看看效果,
也是一样,数据包断断续续,起到了非常好的欺骗效果。
ICMP 重定向攻击和ICMP不可达报文攻击_第7张图片

00X4 如何防护

  1. 可以使用防火墙对ICMP重定向数据包进行过滤,当有这种数据包时,则丢弃这种数据包。
  2. 我是使用snort IPS 对这种数据包进行阻断,其实也是联合防火墙进行阻断,snort ICMP 重定向攻击规则如下:
    ICMP 不可达报文攻击检测规则如下:
    在这里插入图片描述

00X5 总结

ICMP 重定向攻击和ICMP不可达报文攻击 都是利用协议设计的缺陷,从而攻击者可以伪造这两种数据包进行攻击,对受害者进行欺骗。
后续会为大家带来各种畸形报文攻击(LAND攻击,泪滴攻击,蓝色炸弹,smurf攻击等)、泛洪攻击(UDP flood 泛洪,SYN泛洪,TCP泛洪等)、应用层(CC攻击,DNS泛洪等)DOSS攻击的研究,研究其这种攻击形态,已经如何对这些攻击进行检测及阻断。

种一棵树最好的时间是十年前和现在,愿不负韶华

你可能感兴趣的:(一无所知的渗透,安全)