ARP 欺骗+ICMP 重定向

来源:互联网 发布:java的web服务器 编辑:程序博客网 时间:2024/05/22 14:23

不同于局域网内的 ARP 欺骗,跨网段的 ARP 欺骗一直 是技术难点。有些学者提出可用“ARP 欺骗+ICMP 重定向” 。

比如,假设网络 1 与网络 2 经一个路由器相联,在 网络 1 内的两台主机 A 和 B 正在通信,网络 2 内的攻击者实 施 ARP 欺骗。  在“ARP 欺骗+ICMP 重定向”这种观点中,攻击者可 先寻找 B 的漏洞当掉 B,然后发送给 A 虚假的 ARP 应答报 文来冒充 B 的 IP 地址,而硬件地址是攻击者的本机 MAC 地 址。但由于主机 A 只会在网络 1 内寻找主机 B,根本不会把 数据包发送给路由器,因此攻击者还要构造一个 ICMP 重定 向报文,告诉主机 A“到主机 B 的最短路径是经过路由器。 主机 A 需要重新定向路由,将所有发往 B 的数据包都交给路 由器转发”,攻击者可在网外接收到来自网内的 IP 包。 这种理论成立的关键是主机A 接收了伪造的ICMP重定 向报文,但实际上,主机 A 不会无条件地接收 ICMP 报文。 在通常情况下,为防止路由器和主机的误操作或者某些恶意 用户的破坏,主机在更改本机路由表之前要做一些检查,以 免错误修改本地路由表。

 在 4.4BSD 系统中,主机要进行下列检查: 

(1)新的路由器必须与网络直接相联。 

(2)重定向报文必须来自当前到目的网络所选择的路由器。

 (3)重定向报文不能让主机本身作为路由器。

 (4)被修改的路由必须是一个间接路由。 

在 Windows Server  2003 系统中,也有类似的规定以防 止主机接收到 ICMP 重定向报文后错误的修改路由表[5]。

比如主机收到 ICMP 重定向消息后,首先检查 ICMP 消息的源 IP 地址,以确认发送 ICMP 消息的路由器就是原 IP 路由表中 去往目的地址路由的网关,并要确认 ICMP 重定向消息的源 IP 地址是直接可达路由器发出的,若不是则该消息被忽略。依据ICMP重定向消息新建的主机路径在路由表中只保留10 min,10 min 后再次进行 ICMP 重定向。

根据 TCP/IP 协议的规定,被 ICMP 重定向报文修改的路由必须是一个间接路由。间接路由是指源计算机和目的计算机不在同一网络中,中间经过路由器相联。然而,主机 A 与 B 在同一子网内,它们之间的路由不是间接路由,而是直接路由。 根据 IP 路由机制,当主机 A 向任一主机发送分组时, 首先将分组的目的地址和主机 A 的子网掩码进行逐比特相 “与”的运算。若运算的结果等于主机 A 的网络地址,则说 明目的主机与 A 是连接在同一个子网上,可以直接将此分组发送给目的主机。若“与”运算的结果不等于主机 A 的网络 地址,则应将分组交给本子网上的一个路由器进行转发。

如上所述,主机 A 不可能接收 ICMP 重定向报文,它只会将分组直接发给主机 B 而不会发给路由器,攻击者也就不可能在网外通过路由器截获主机 A 的分组,跨网段 ARP 欺骗一般也就无法实现。

0 0
原创粉丝点击