i资料编码产品名称数据网络安全与优化解决方案使用对象产品版本V1.0编写部门资料版本V1.0常见网络攻击手段原理分析拟制:辛庆祥日期:2003-9-12审核:日期:审核:日期:批准:日期:华为技术有限公司版权所有侵权必究ii修订记录日期修订版本描述作者2003-9-12V1.0初稿辛庆祥i目录第1章常见网络攻击手段原理分析..........................................................................................1-11.1TCPSYN拒绝服务攻击.....................................................................................................1-11.2ICMP洪水..........................................................................................................................1-11.3UDP洪水...........................................................................................................................1-21.4端口扫描.............................................................................................................................1-21.5分片IP报文攻击................................................................................................................1-31.6SYN比特和FIN比特同时设置...........................................................................................1-31.7没有设置任何标志的TCP报文攻击...................................................................................1-31.8设置了FIN标志却没有设置ACK标志的TCP报文攻击....................................................1-41.9死亡之PING......................................................................................................................1-41.10地址猜测攻击...................................................................................................................1-41.11泪滴攻击...........................................................................................................................1-41.12带源路由选项的IP报文...................................................................................................1-51.13带记录路由选项的IP报文................................................................................................1-51.14未知协议字段的IP报文...................................................................................................1-51.15IP地址欺骗......................................................................................................................1-61.16WinNuke攻击..................................................................................................................1-61.17Land攻击.........................................................................................................................1-71.18Script/ActiveX攻击..........................................................................................................1-71.19Smurf攻击.......................................................................................................................1-81.20虚拟终端(VTY)耗尽攻击..............................................................................................1-81.21路由协议攻击...................................................................................................................1-81.21.1针对RIP协议的攻击.............................................................................................1-91.21.2针对OSPF路由协议的攻击..................................................................................1-91.21.3针对IS-IS路由协议的攻击....................................................................................1-91.22针对设备转发表的攻击...................................................................................................1-101.22.1针对MAC地址表的攻击......................................................................................1-101.22.2针对ARP表的攻击..............................................................................................1-111.22.3针对流项目表的攻击............................................................................................1-121-1第1章常见网络攻击手段原理分析1.1TCPSYN拒绝服务攻击一般情况下,一个TCP连接的建立需要经过三次握手的过程,即:1、建立发起者向目标计算机发送一个TCPSYN报文;2、目标计算机收到这个SYN报文后,在内存中创建TCP连接控制块(TCB),然后向发起者回送一个TCPACK报文,等待发起者的回应;3、发起者收到TCPACK报文后,再回应一个ACK报文,这样TCP连接就建立起来了。利用这个过程,一些恶意的攻击者可以进行所谓的TCPSYN拒绝服务攻击:1、攻击者向目标计算机发送一个TCPSYN报文;2、目标计算机收到这个报文后,建立TCP连接控制结构(TCB),并回应一个ACK,等待发起者的回应;3、而发起者则不向目标计算机回应ACK报文,这样导致目标计算机一致处于等待状态。可以看出,目标计算机如果接收到大量的TCPSYN报文,而没有收到发起者的第三次ACK回应,会一直等待,处于这样尴尬状态的半连接如果很多,则会把目标计算机的资源(TCB控制结构,TCB,一般情况下是有限的)耗尽,而不能响应正常的TCP连接请求。1.2ICMP洪水正常情况下,为了对网络进行诊断,一些诊断程序,比如PING等,会发出ICMP响应请求报文(ICMPECHO),接收计算机接收到ICMPECHO后,会回应一个ICMPECHOReply报文。而这个过程是需要CPU处理的,有的情况下还可能消耗掉大量的资源,比如处理分片的时候。这样如果攻击者向目标计算机发送大量的ICMPECHO报文(产生ICMP洪水),则目标计算机会忙于处理这些ECHO报文,而无法继续处理其它的网络数据报文,这也是一种拒绝服务攻击(DOS)。1-21.3UDP洪水原理与ICMP洪水类似,攻击者通过发送大量的UDP报文给目标计算机,导致目标计算机忙于处理这些UDP报文而无法继续处理正常的报文。1.4端口扫描根据TCP协议规范,当一台计算机收到一个TCP连接建立请求报文(TCPSYN)的时候,做这样的处理:1、如果请求的TCP端口是开放的,则回应一个TCPACK报文,并建立TCP连接控制结构(TCB);2、如果请求的TCP端口没有开放,则回应一个TCPRST(TCP头部中的RST标志设为1)报文,告诉发起计算机,该端口没有开放。相应地,如果IP协议栈收到一个UDP报文,做如下处理:1、如果该报文的目标端口开放,则把该UDP报文送上层协议(UDP)处理,不回应任何报文(上层协议根据处理结果而回应的报文例外);2、如果该报文的目标端口没有开放,则向发起者回应一个ICMP不可达报文,告诉发起者计算机该UDP报文的端口不可达。利用这个原理,攻击者计算机便可以通过发送合适的报文,判断目标计算机哪些TCP或UDP端口是开放的,过程如下:1、发出端口号从0开始依次递增的TCPSYN或UDP报文(端口号是一个16比特的数字,这样最大为65535,数量很有限);2、如果收到了针对这个TCP报文的RST报文,或针对这个UDP报文的ICMP不可达报文,则说明这个端口没有开放;3、相反,如果收到了针对这个TCPSYN报文的ACK报文,或者没有接收到任何针对该UDP报文的ICMP报文,则说明该TCP端口是开放的,UDP端口可能开放(因为有的实现中可能不回应ICMP不可达报文,即使该UDP端口没有开放)。