黑客攻击解密 分析选定的网络进行……( 二 )


理解 IP
尽管我将不在本文中介绍任何 IP 级别的攻击 , 但我确实需要稍微详细地讨论 IP , 因为它是 ICMP 和 TCP 的底层协议 。
IP 提供在两个设置为 IP 节点的网络节点(称为源和目的地)间传输数据块的服务 。源和目的地节点都用 IP 地址标识 。要使一个 IP 网络中的两个节点能够通信 , 那些 IP 地址必须在整个网络中是唯一的 。IP 地址(IP 版本 4)是一个 32 位数 , 通常以点分十进制符号
因为 IP 提供的是无连接、不可靠、最高效的(best-effort)数据报传递服务 , 所以 IP 的使用范围多少受到了限制 。但是 , 它提供两个基本功能:寻址和分段 。地址(在 IP 数据报头中封装为源和目的地地址)用来将数据报传输到其目的地 , 这个过程称为路由 。有两种基本情况:
接收主机和发送主机位于同一子网 , 这种情况下数据报将被直接从发送方发送到接收方 。
接收主机位于不同的子网 , 这种情况下发送主机将把数据报转发到网关(连接两个子网的 IP 主机) , 然后 , 如果目的地主机在一个与网关相连的子网中 , 则网关会尝试将数据报传递到目的地主机 。如果目的地主机不在与网关相连的子网中 , 网关将会把数据报转发到另一个网关 。这个过程将反复进行 , 直到能够将数据报传递到其目的地主机为止 。
如果要传输的数据报超过了底层物理层规定的最大包的大小 , 则 IP 模块会在发送前将该数据报分割成几个较小的包(称为分段) , 然后在接收中时重新组装它们 。
既然我已经介绍了基础知识 , 现在可以讨论个别协议了 。在以下几节中 , 您将找到关于 ICMP 和 TCP 的更详细的信息以及一些使用这些协议的有趣的攻击 。
使用 ICMP
因为 ICMP 是面向包的 , 所以它在相互连接的网络系统中是不可靠的主机对主机数据报服务 , 提供无保证的传递 。ICMP 使用 IP 的基本支持 , 就好象是更高级别的协议 。但是 , ICMP 是 IP 的组成部分 — 这基本上意味着 ICMP 包将 IP 头用于传输 — 而且 ICMP 必须由每个 IP 模块实现 。通常 , ICMP 用来报告主机上数据报处理中的错误 。ICMP 的部分功能包括:
目的地不可到达消息:如果根据网关的路由表 , 数据报中指定的要转发的目的地地址是不可到达的 , 则网关会向源主机返回 ICMP 的目的地不可到达消息 , 通知发送主机包传递不成功 。
超时消息:每个 IP 数据报头中都包含一个字段 — 称为“生存时间字段” — 它指出数据报在被丢弃之前还能在因特网上保持多久 。数据报在因特网上保持的时间以跳跃点(hop)衡量 , 其中一个跳跃点表示数据报通向目的地节点路径上的一个网关 。当数据报经过网关转发时 , 它就将生存时间字段中的值减一 。如果处理数据报的网关测定该数据报 IP 头中的生存时间字段为 0 , 则丢弃该数据报并用超时消息通知源主机 。
【黑客攻击解密 分析选定的网络进行……】回应请求和回应应答消息:如果主机 A 想知道主机 B 是否是活动的 , 则主机 A 会向主机 B 发送一条 ICMP 回应请求消息 。主机 B 将用 ICMP 回应应答消息来应答 , 以表明自己是活动的 。这条消息就是众所周知的 ping 包 。
以上这些并不是 ICMP 所使用的全部消息类型 , 但它们能使您大致了解 ICMP 的用途 。接下来我将向您介绍两种 ICMP 攻击 。
目的地不可到达攻击
类别:拒绝服务攻击
描述:如上所述 , ICMP 目的地不可到达消息向尝试转发消息的网关提供了一种工具 , 用来通知发送方:因为在数据报目的地地址中指定的主机不可到达 , 所以无法传递该消息 。
您可能会猜想“目的地不可到达攻击”会是什么情形 。让我们假设网关 G 连接了两个网络:网络 10.1.0.0 和网络 10.2.0.0 。假设主机 A 地址为 10.1.23.3(因此属于网络 10.1.0.0) , 它想将数据报发送到主机 B , 其地址为 10.2.156.34(因此属于 10.2.0.0) 。在传输过程中 , 数据报将被发送到网关 G , 而网关 G 又会将它转发到目的地主机 。
如果入侵者获得了网络 10.1.0.0 中一台主机的访问权 , 那么 , 他可以广播一条“目的地不可到达消息” , 声明网关 G 对于他所在网络的所有主机是不可到达的 。这将使网关 G 和网络 10.2.0.0 暂时变得不可用 , 因而不可能从网络 10.1.0.0 向网络 10.2.0.0 传输任何消息 。


推荐阅读