现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

  • 环境(详细说明实验运行的操作系统,网络平台,机器的配置)
  1. 主机操作系统WIN10
  2. 开源虚拟机管理软件Oracle VM VirtualBox
  3. GNS3网络平台
  4. 两台SEEDUbuntu16.04 32位虚拟机
  • 实验目的
  1. 掌握VirtualBox构建SEEDUbuntu16.04 32位虚拟机
  2. 掌握网络虚拟平台GNS3构建网络拓扑结构
  3. 掌握SEEDUbuntud的ip配置命令
  4. 实现syn flood攻击并用wireshark进行抓包分析
  5. 理解linux内核SYN cookie机制对flood攻击的影响
  • 实验步骤(包括主要流程和说明)

1. 选择浙大镜像下载SEED虚拟机

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

2.利用VirtualBox新建SEEDUbuntu16.04-32

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

3.设置 SEEDUbuntu16.04-32的网络

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

4.完全复制一个作为SEEDUbuntu16.04-32target

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

5.利用GNS3来构建网络拓扑并在GNS3中启动2个虚拟机

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

 

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

 

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

6.配置两台虚拟机的ip地址和路由,SEEDUbuntu16.04-32的ip地址为192.168.1.1,SEEDUbuntu16.04-32target的ip地址为192.168.1.2

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

 

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

7.设置默认路由

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

8.测试是否连通

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

  • 实验结果和分析

1. SEEDUbuntu16.04-32target启动telnet服务,在SEEDUbuntu16.04-32使用netwox进行攻击

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

2.使用wireshark观察

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

3.进一步查看tcp syn cookie参数,并修改tcp_max_syn_backlog=5

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

4.修改参数tcp_syncookies=0,无法telnet到target,并用netstat –n –tcp发现5个SYN_RECV和1个TIME_WAIT,5个SYN_RECV已达到设置的半连接上限。

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

5.重新修改参数tcp_syncookies=1,telent成功。

现代计算机网络实验之SYN flood攻击及SYN cookie原理分析

 

6.tcp syn cookie原理分析

SYN Flood是一种典型的拒绝服务攻击,利用tcp协议中的三次握手过程进行攻击。由于TCP服务器在收到 tcp syn request 包时,在发送 tcp syn+ack 包回客户机前,此时连接状态为半打开连接。如果此时恶意攻击方伪造syn源地址,快速连续地发送此类连接请求,由于服务器的TCP连接数量有限,服务器可用TCP连接队列很快便会发生阻塞,从而造成拒绝服务,系统运行缓慢。

SYN Cookie机制用来防范这种SYN Flood攻击,主要方法就是针对TCP的三次握手进行一些修改。在第二次握手时,服务器不分配专门的数据区来维护一个未连接队列,而是根据SYN包来计算一个cookie值,并且将这个值作为将要返回的SYN+ACK包的初始***,当返回一个ACK包时,会根据包头信息计算cookie,此时cookie包含本次连接的状态信息,不给未确认的连接分配资源,只有cookie计算后和返回的确认***对比正确后才分配资源,建立连接。