|
ICMP漏洞分析(1)
ICMP在IP中的结构是这样的. VERSION 4 IHL INTERNET HEADER LENGTH IN 32-BITS TYPE OF SERVICE 0 TOTAL LENGTH LENGTH OF INTERNET HEADER AND DATA IN 字节单位 IDENTIFICATION, FLAGS 分割和重组IP的标记. TIME TO LIVE TTL PROTOCOL 这一点很重要,表示这次IP包内的是ICMP信息. ICMP=1 SOURCE ADDRESS 发送这个包的原主机IP地址或路由器地址.(在发送ICMP包是可以是任何路由器的地址) DESTINATION ADDRESS 准备接受这个icmP包的IP地址. _____________________________________________ 目的主机不可到达的ICMP包结构. 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Type Code Checksum +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ unused +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Internet Header + 64 bits of Original Data Datagram +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 类型 代码 校验和 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 保留字 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ IP头和64位原始IP数据 既是原来发送普通IP包有错的数据 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 在IP段里,目的IP是发送错误包的IP地址. 在ICMP 段里 类型是 3 代码有. 0= 网络不可到达. 1= 主机不可到达. 2= 协议不可到达. 3= 端口不可到达. 4= 包需要重组. 5= 原路由失败. 校验和 校验和是0, Internet Header + 64 bits of Data Datagram 协议头和原数据的前64位.如果原来的协议是高层协议,那么这就是前64 位高层协议的数据. 描述.... 如果根据路由的路由表,在一个数据包里的目的网络是不可到达的,例如: 目的网络是无限远,那么,路由就发送一个目的不可到达的消息给这个包的发送者. 在一些路由里,有能力判断目的主机不可能到达的,就回发送主机不可到达. 如果在目的主机里,IP 模块不能传递数据给上层的端口或协议,(因为端口没有激活,或所指的高层协议根本不存在),那么 目的主机会发送目的不可到达的信息回去. 另外一种情况是,当数据报必须分割以通过一个网管时,而偏偏在IP 包里指定了不要分割.此时,网关回发送目的不可到达信息. 代码 0.1. 4, 5的ICMP 一般由路由发送.而 代码 2 3 则来自目的主机. (cceye 评: 在这个包里,因为0,1, 4 ,5 代码可能来字任何的路由,所以不需要伪造IP
|