二、 ICMP攻击及欺骗技术

1、 ICMP攻击导致拒绝服务DoS)

服务拒绝攻击企图通过使你的服务计算机崩溃或把它压跨来阻止你提供服务,服务拒绝攻击是最容易实施的攻击行为。

由于在早期的阶段,路由器对包的最大尺寸都有限制,许多操作系统对TCP/IP栈的实现在ICMP包上都是规定64KB,并且在对包的标题头进行读取之后,要根据该标题头里包含的信息来为有效载荷生成缓冲区,当产生畸形的,声称自己的尺寸超过ICMP上限的包也就是加载的尺寸超过64K上限时,就会出现内存分配错误,导致TCP/IP堆栈崩溃,致使接受方当机。这就是所说的"ping of death",现在网络上很多号称能够致使系统死机的软件都是基于这个原理,我们所熟悉的工具"Winnuke"就是一例。对路由器而言,向Intel Express Switch或其后的主机发送一畸形的ICMP包可能导致系统崩。通过本地或远程发送的畸形包能蒙骗服务器。当服务器收到畸形的ICMP包时,它将继续检查才对,然而它将丢失所有的路由功能,而且不将检查其它连接了。主要影响Intel Express Switch 500 系列。

另外,Windows也有拒绝服务漏洞,对 Win98 NT4/SP5,6 Win2K都有影响 ,当如上系统受到非法碎片包包含不合法碎片 ICMP ECHOs pings)和UDP packets攻击,Windows系统会拒绝服务。直至CPU占用率达到100%,最后系统崩溃。参见原程序)

ICMP重定向提供了一种相当有效的DoS.不象ARP入口,这些特定主机路由入口永不过期。注意,攻击没有要求必须从局域网内发起,事实可以从广域网上发起。如果子网所用DNS位于网关外,产生一个到该DNS的错误路由是很容易的,

通过在Pwin98下测试,由ICMP重定向包产生的路由都是掩码为255.255.255.255的特定主机路由,没有办法产生诸如255.255.0.0这样掩码下的网络路由。此外,由ICMP重定向包产生的路由还是会过期的,会被删除,但耗时很长。许多桌面操作系统线性搜索自己的路由表,如果你利用ICMP重定向包加了太多特定主机路由到它们的路由表中,极其容易造成系统的瘫痪。对于Unix系统,虽然搜索路由表时不是线性搜索,但过多的特定主机路由会消耗大量的内存空间。

下面是一个具体实例:

今年八月海信集团悬赏50万人民币测试防火墙,虽然结果是没有人能够拿到防火墙后面的密码,但是防火墙遭到大量的ICMP攻击,导致防火墙的IP地址ping不通,造成大量攻擂者以为海信公司言而无信,取消了测试,转而怒牵于海信公司主页,于是就有了八月轰动全国IT界的海信主页被黑事件,下面是海信公司自己提供的防火墙遭攻击记录:

攻击类型 攻击次数

1 ICMP攻击 334050

2 碎片攻击 25524

3 端口扫描 4365

4 WEB服务攻击 1227

5 UDP攻击 234

6 拒绝服务攻击 12

事实可以看到,造成海信服务器"拒绝服务"的绝大多数攻击来自于ICMP攻击。

2、 基于重定向redirect)的路由欺骗技术

首先我们应该知道,微软的Windows98和NT系统都保持着一张已知的路由器列表,列表中位于第一项的路由器是默认路由器,如果默认路由器关闭,则位于列表第二项的路由器成为缺省路由器。缺省路由向发送者报告另一条到特定主机的更短路由,就是ICMP重定向。攻击者可利用ICMP重定向报文破坏路由,并以此增强其窃听能力。除了路由器,主机必须服从ICMP重定向。如果一台机器想网络中的另一台机器发送了一个ICMP重定向消息,这就可能引起其他机器具有一张无效的路由表。如果一台机器伪装成路由器截获所有到某些目标网络或全部目标网络的IP数据包,这样就形成了窃听。通过ICMP技术还可以抵达防火墙后的机器进行攻击和窃听。在一些网络协议中,IP源路径选项允许IP数据报告自己选择一条通往目的主机的路径这是一个非常不好,但是又无可奈何的技术手段,多路径正是网络连接的精髓部分!)。攻击者试图与防火墙后面的一个不可到达的主机A连接,只需在送出的ICMP报文中设置IP源路径选项,使报文有一个目的地址指向防火墙,而最终地址是主机A.当报文到达防火墙时被允许通过,因为它指向防火墙而不是主机A.防火墙的IP层处理该报文的源路径域并被发送到内部网上,报文就这样到达了不可到达的主机A .

我在查阅资料的时候,所有基于ICMP路由欺骗的技术都是停留在理论上的论述,没有找到相关的具体攻击实例和原程序。


相关内容