SYN flood攻击及SYN cookie原理分析

一.环境

  1. 网络平台: GNS3 2.2.3
  2. 虚拟机软件: Oracle VM VirtualBox 6.0.14
  3. 虚拟机操作系统: SEED Ubuntu 16.04 32位
  4. 机器的配置: (两台虚拟机)
(1)机器名:SEEDUbuntu
        内存大小:1024M
        处理器数量:1个
		IP配置:192.168.1.1
(2)机器名:SEEDUbuntutarget
		内存大小:1024M
        处理器数量:1个
		IP配置:192.168.1.2

二.实验目的

  1. 掌握 GNS3 网络平台基本使用和虚拟机软件VirtualBox的基本操作;
  2. 掌握 SEED Ubuntu 操作系统的网络配置以及基本使用方法;
  3. 掌握使用 WireShark 对流量进行抓包分析;
  4. 实现 SYN flood 攻击,理解其攻击原理;
  5. 理解linux内核SYN cookie机制,理解其在攻击中的作用。

三.实验步骤

1. 配置实验环境

(1)安装GNS3和VitualBox,下载SEED Ubuntu 32位虚拟机镜像;

(2)使用VitualBox建虚拟机SEEDUbuntu和SEEDUbuntutarget(可通过直接复制SEEDUbuntu得到),导入SEED Ubuntu虚拟硬盘,具体操作如下。
①新建虚拟机(SEEDUbuntu,ubuntu32)
在这里插入图片描述

②内存分配,选择了默认,导入seedubuntu虚拟硬盘
在这里插入图片描述
③成功生成seedubuntu虚拟机

!](https://img-blog.csdnimg.cn/20191125203746909.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3NpbmF0XzM0Njg2MTU4,size_16,color_FFFFFF,t_70)
④网络连接方式选择未指定
在这里插入图片描述
⑤复制seedubuntu,生成SEEDUbuntutarget,为所有网卡生成MAC地址
在这里插入图片描述
⑥完全复制
在这里插入图片描述

⑦复制成功,新建两台虚拟机
在这里插入图片描述

2. 使用GNS3搭建网络拓扑图
新建项目,导入被创建的虚拟机。

在这里插入图片描述在这里插入图片描述
3. 登陆虚拟机配置环境
(1)开启虚拟机
在这里插入图片描述
在这里插入图片描述
(2)为两个虚拟机网卡设置静态ip在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

(3)为两个虚拟机设置默认路由 在这里插入图片描述在这里插入图片描述

(4)配置完成之后,查看配置
在这里插入图片描述
在这里插入图片描述
(5)验证两台虚拟机之间是否能ping通

在这里插入图片描述
在这里插入图片描述
4、实现SYN Flood攻击
在SEEDUbuntutarget虚拟机上开启telnet服务
在这里插入图片描述
对比实验,模拟SYN flood攻击:
(1)关闭tcp syn cookie的情况
①对于目标机器,SEEDUbuntutarget。Tcp syn cookie默认开启,进行关闭。设置所能接受syn ack包的最大客户端数量为5.在这里插入图片描述

扫描二维码关注公众号,回复: 10472642 查看本文章

②开始攻击,在SEEDUbuntu虚拟机上,使用76号指令,对targrt机23端口发送大量syn请求
在这里插入图片描述
③通过wireshark工具查看抓包过程
在这里插入图片描述

④可以看出大量虚假的ip对target机进行攻击。此时来观察target机的连接情况。
在这里插入图片描述
⑤可以看出,有5个syn_rec请求连接,已经达到我们设置的半连接上线了。而此时在攻击机上telnet连接target机服务失败,无法回应请求,target机已经被攻击。

在这里插入图片描述
(2)开启tcp syn cookie的情况
①在(1)的基础下,将target机的tcp syn cookie开启。
在这里插入图片描述
②在攻击机上telnet连接target机服务成功。
在这里插入图片描述
③在target机上查看连接情况,发现目标机连接成功。
在这里插入图片描述
在这里插入图片描述


四.实验结果和分析

1、实验结果:
当linux内核关闭syn cookie 保护机制时,target机会受到syn flood攻击,无法建立tcp连接。
而当linux内核开启了 syn cookie 保护机制时,target机受到 syn flood 攻击后,目标机使用telnet服务 登录 target 机器时,仍然可以建立 可靠的tcp 连接(三次握手)。

2、分析:
SYN Flood攻击。SYN Flood 攻击是一种典型的拒绝服务攻击。它利用的是 ipv4 中 tcp协议的三次握手过程进行的攻击。tcp 服务器收到 tcp syn request 包时,在发送 tcp syn ack 包回客户机前,tcp 服务器要先分配好一个数据区专门服务于这个即将形成的 tcp 连接。一般把收到 syn包而还未收到 ack 包时的连接状态称为半打开连接。在最常见的 syn flood攻击中,攻击者在短时间内发送大量的 tcp syn 包给受害者。受害者(服务器)为每个 tcp syn 包分配一个特定的数据区,只要这些 syn 包具有不同的源地址(攻击者很容易伪造)。这将给 tcp服务器造成很大的系统负担,最终导致系统不能正常工作。
SYN Cookie机制。SYN Cookie是专门针对SYN Flood攻击进行设计的一种防范机制。通过对tcp三次握手连接进行一些修改来实现防范功能。主要原理是,在 tcp服务器接收到 tcp syn 包并返回 tcp syn ack包时,不分配一个专门的数据区,而是根据这个syn包计算出一个 cookie 值。这个 cookie作为将要返回的 tcp syn ack 包的初始序列号。当客户端返回一个 ack 包时,根据包头信息计算 cookie,与返回的确认序列号进行对比,如果相同,则是一个正常连接,然后,分配资源,建立连接。SYN Cookie 机制的实现关键在于 cookie 的计算,cookie 的计算应该包含本次连接的状态信息,使攻击者不能伪造。

发布了46 篇原创文章 · 获赞 15 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/sinat_34686158/article/details/103245105
今日推荐