基于TCP/IP协议的网络攻击
1.ARP协议漏洞

       有三台主机:

A:IP地址 192.168.0.1;硬件地址AA:AA:AA:AA:AA:AA

B:IP地址 192.168.0.2;硬件地址BB: BB: BB: BB: BB: BB

C:IP地址 192.168.0.3;硬件地址CC:CC:CC: CC:CC:CC

 

       一个位于主机B的入侵者想非法进入主机A,可是这台主机上安装有防火墙。通过收集资料得知这台主机A的防火墙只对主机C有信任关系。而入侵者必须要使用telnet来进入主机A,这个时候入侵者应当如何处理?

       要telnet到主机A,入侵者可以让主机A相信主机B就是主机C。如果主机A与C的信任关系是建立在IP地址上的。攻击者可以先通过各种拒绝式服务方式让C这台机器暂时宕机,同时将B的IP地址改为192.168.0.3,B就可以成功地通过23端口telnet到A上,而成功地绕过防火墙的限制。

       但是,如果AC的信任关系是建立在硬件地址之上,这个时候上述的方式就不行了,需要运用ARP欺骗方式。

       入侵者认为地制造一个arp_reply的响应包,发送给想要欺骗的主机A,这是可以实现的,因为ARP协议并没有规定在收到arp_echo请求后才可以发送响应包(这就是能够实现的关键,在一般的情况之下只有路由器进行了arp广播之后,主机才会回复)这样,就可以通过发送虚假的ARP响应包来修改主机A上的动态ARP缓存来达到欺骗的目的。

 

       具体步骤如下:

①利用工具,进行拒绝式服务攻击,让主机C宕机,暂时停止工作。

②在这段时间里,入侵者把自己的IP改为192.168.0.3(主机C的IP)。

③用工具发一个源地址为192.168.0.3,源MAC地址为BB: BB: BB: BB: BB: BB的包给主机A,要求A更新自己的ARP转换表(ARP缓存)。

④主机A更新了ARP缓存中关于主机C的IPàMAC的对应关系。

⑤防火墙失效了,现在主机B可以telnet到主机A。

      

2.ICMP协议漏洞

2.1ICMP转向连接攻击

       攻击者使用ICMP超时或者ICMP主机不可达报文,这两种报文都会使得主机迅速放弃连接。此时通信连接就会被切断。

       一台主机错误地认为信息的目标地址不在本地网络之中的时候,网关通常会使用ICMP重定向消息。如果攻击者伪造一条重定向消息,就可以导致主机经过攻击者主机向特定连接发送数据包。

2.2ICMP数据包放大(ICMP Smurf)

       攻击者向安全薄弱网络的广播地址发送ICMP回显请求,所有的主机都会像被攻击主机,发送ICMP应答,占用了目标系统的带宽,并导致合法通信的拒绝服务(DoS)。

2.3ICMP Ping淹没攻击

       大量的ping信息广播淹没了目标系统。

2.4ICMP nuke攻击

       nuke发送出目标操作系统无法处理的信息数据包,从而导致该系统瘫痪。

2.5通过ICMP进行攻击信息收集

       可以通过ping来检查目标主机是否存活,并且根据返回的TTL值就可以判断目标主机的操作系统(Linux应答TTL为64,windows 200/NT/XP为128,其他系统未列出)。


2.6ICMP攻击防范

策略一:对ICMP数据包进行过滤

       使用防火墙的功能

策略二:修改TTL值巧妙骗过黑客

       系统缺省的TTL值是可以修改的,可以编写一个批处理文件来进行修改。

 

3.TCP协议漏洞

       假设主机A和B建立TCP连接,要进行三次握手。针对TCP协议的攻击原理是:TCP协议三次握手没有完成的时候,被请求端B一般都会重试(即再给A发送SYN+ACK报文)并等待一段时间,这就可以用来进行DoS、Land、SYN flood攻击。

       在SYN flood攻击中,黑客向受害主机发送大量伪造源地址的TCP SYN报文,受害主机分配必要的资源,然后向源地址返回SYN+ACK包;并等待源地址返回ACK包,由于源地址是伪造的所以源端永远不会发送ACK包,所以受害主机继续发送SYN+ACK包,并将半链接放入端口的积压队列之中,虽然一般主机都有超时机制和默认的重传次数,但是如果不断向受害主机发送大量的TCP SYN报文,半连接队列就会很快被填满,导致受害主机无法响应其他主机的连接请求。

       防御方法:针对SYN flood的攻击防范措施主要有两种:一种是通过防火墙、路由器等过滤网关防护,另一种是通过加固TCP/IP协议栈