58-DOS与DDOS分析(正常TCP会话与SYN Flood攻击、ICMP Flood 攻击、SNMP放大攻击等)

news2024/12/23 20:15:08

目录

正常 TCP 会话与 SYN Flood 攻击

1、正常的三次握手过程:

2、 SYN Flood 攻击

一、攻击windows系统:

二、攻击web网站 :

拒绝服务攻击工具-Hping3-Syn Flood 攻击

拒绝服务攻击工具--Hping3--ICMP Flood 攻击

 sockstress攻击

Sockstress防范

 DNS放大攻击

产生大流量的攻击方法

DNS协议放大效果

攻击原理 

SNMP放大攻击

简单网络管理协议

攻击原理

应用层DoS


正常 TCP 会话与 SYN Flood 攻击

1、正常的三次握手过程:

第一次握手:客户端--请求(发送请求SYN+数据包当前序列号seq,无需应答)
客户端创建传输控制块TCB,进入监听LISTEN状态。
设置SYN=1,表示这是握手报文,并发送给服务器
设置发送的数据包序列号seq=x
此时客户端处于同步已发送SYN-SENT状态

第二次握手:服务器--确认发送应答ACK+请求SYN+确认收到上一个数据包的确认号ack+ 当前数据包序列号seq)
设置ACK=1,表示确认应答。
设置ack=x+1,表示已收到客户端x之前的数据,希望下次数据从x+1开始
设置SYN=1,表示握手报文,并发送给客户端
设置发送的数据包序列号seq=y
此时服务器处于同步已接收SYN-RCVD状态

第三次握手:客户端--确认服务器的确认(发送应答ACK+确认收到上一个数据包的确认号ack+ 当前数据包序列号seq ,连接已建立,无需请求)
设置ACK=1,表示确认应答。
设置ack=y+1,表示收到服务器发来的序列号为seq=y的数据包,希望下次数据从y+1开始
设置seq=x+1,表示接着上一个数据包seq=x继续发送
至此三次握手结束,连接建立


2、 SYN Flood 攻击

SYN Flood(半开放攻击)是一种拒绝服务(DDoS)攻击,其目的是通过消耗所有可用的服务器资源使服务器不可用于合法流量通过重复发送初始连接请求(SYN)数据包,攻击者能够压倒目标服务器机器上的所有可用端口,导致目标设备根本不响应合法流量。(通过利用TCP连接的握手过程,SYN Flood攻击工作)

SYN攻击判断 

看网卡状态:每秒大于1000以上的接收包。

看连接状态:netstat –na,看到大量SYN_RECEIVED状态的连接。

用冰盾DDoS监控器查看:SYN>100

被攻击的直接感受: Ping主机不通或丢包严重。 即便没有开放端口,CPU占用很高甚至100%

 演示过程:

一、攻击windows系统:

打开win2003改为桥接模式;模拟真实环境。(ip:192.168.13.200);打开kali2022(xshell连接)

 2、如攻击远程连接端口3389;目标主机打开远程桌面(计算机-右击属性)

 尝试远程连接;可以远程;

3、Windows系统使用 【FastSend.exe】工具进行攻击(端口攻击):

 4、大量SYN会话请求占用导致无法正常连接,关闭攻击即恢复。

二、攻击web网站 :

1、打开phpstudy2016  dvwa靶场

http://192.168.13.200:90/dvwa/login.php

2、 同windows使用 【FastSend.exe】工具进行攻击(端口攻击):

3、开始攻击:

网站将会无法访问,停止攻击即可恢复;最大四分钟内会话被是否,被释放也可访问

 

看连接状态:netstat –na,看到大量SYN_RECEIVED状态的连接

netstat -an

 

 目标主机的cpu使用率有明显提升:


发一个包释放一个连接,这种达不到攻击郊果。要构成攻击效果可以通过iptables限止发送RST包。这样就可以达到攻击郊果。iptables写法如下:

iptables -F  #清除iptables规则

iptables -L  #查看iptables防火墙规则

iptables -A OUTPUT -p tcp --tcp-flags RST RST -d 192.168.13.200 -j DROP  #添加iptables防火墙规则

这条命令的目的是阻止所有从本机出发、目标为192.168.13.200且TCP标志仅设置为RST的TCP数据包:

  • iptables: 这是Linux系统中用于配置和管理Netfilter防火墙规则的命令行工具。

  • -A OUTPUT-A 表示追加一条新规则到指定的规则链末尾,OUTPUT 是数据包流出本机(即作为响应或本机发起的连接)时经过的链。

  • -p tcp: 指定该规则只应用于TCP协议的数据包。

  • --tcp-flags RST RST: 这个选项指定了TCP标志位的匹配条件。在这里,要求数据包的TCP标志位中必须且只能包含RST标志。TCP的RST标志用于复位连接,通常在异常终止连接或响应不存在的连接时使用。

  • -d 192.168.13.200: 指定目标IP地址为192.168.13.200,即这条规则只影响发往该地址的数据包。

  • -j DROP-j 是“jump”的缩写,用于指定匹配到规则后的动作。DROP 动作意味着任何符合上述条件的数据包都将被防火墙静默丢弃,既不响应也不通知发送方。

 kali打开流量分析【Wireshark】工具:

嗅探/欺骗-->Wireshark

623255    25.906866889    216.93.6.102    192.168.13.200    TCP    174    37500 → 90 [SYN] Seq=0 Win=64 Len=120

拒绝服务攻击工具-Hping3-Syn Flood 攻击

Hping3 -几乎可以定制发送任何TCP/IP数据包,用于测试FW、端口扫描、性能测试

Syn Flood 攻击

hping3 -c 1000 -d 120 -S -w 64 -p 90 --flood --rand-source 192.168.13.200

hping3 -S -P -U -p 80 --flood --rand-source 192.168.13.200

hping3 -SARFUP -p 80 --flood --rand-source 192.168.13.200 (TCP Flood)

syn攻击特征:攻击者为随机IP、长度相同、目标主机cpu及网络应用占用明显。

 

指定任意ip(可指定使用代理池)进行攻击:

hping3 -c 1000 -d 120 -S -w 64 -p 90 -a 1.1.1.1 --flood 192.168.13.200 


 

拒绝服务攻击工具--Hping3--ICMP Flood 攻击

hping3 -q -n -a 1.1.1.1 --icmp -d 56 --flood 192.168.13.200
  • -q:安静模式,不显示每个数据包的发送反馈。
  • -n:不进行DNS反向解析,以IP地址而非主机名显示。
  • -a:设置源IP地址为1.1.1.1,这通常是用于模拟特定源IP的测试。
  • --icmp:指定使用ICMP协议,而不是默认的TCP或UDP。
  • -d 56:设置ICMP数据包的载荷大小为56字节。
  • --flood:快速连续发送数据包,不等待响应,模拟洪水攻击或压力测试。
  • 192.168.13.200:目标IP地址,这里是发送ICMP请求的目标。

 

 ICMP攻击特征:目标主机卡顿、挂机;目标主机cpu及网络应用占用明显、没有端口号。


 sockstress攻击

2008年由 Jack C. Louis 发现,针对TCP服务的拒绝服务攻击

1、消耗被攻击目标系统资源 -与攻击目标建立大量socket链接

2、完成三次握手,最后的ACK包window大小为0 (客户端不接收数据);攻击者资源消耗小(CPU、内存、带宽) ;

3、异步攻击,单机可拒绝服务高配资源服务器;

4、Window窗-实现的TCP流控

防火墙规则设置:

iptables -F  #清除iptables规则

iptables -L  #查看iptables防火墙规则

iptables -A OUTPUT -p TCP --tcp-flags rst rst -d 1.1.1.1 -j DROP #增加iptables防火墙规则

 把sockstress工具上传到kali;切换到工具目录;执行攻击语句:

./sockstress 192.168.13.200:90 eth0 -p payloads/http -d 10

 

  • ./sockstress:表示执行当前目录下的sockstress可执行文件。sockstress是一种曾经被用于测试系统TCP栈稳定性和抗压能力的工具,也可能被滥用于发起DoS攻击。

  • 192.168.13.200:90:指定目标IP地址和端口号,这里是针对IP地址为192.168.13.200,端口为90的服务进行操作。

  • eth0:指定本地使用的网络接口,这里是eth0,表示将通过这个网络接口发送数据包。

  • -p payloads/http:此参数可能指定了使用的payload类型或模式,http可能意味着使用HTTP协议的特定数据或头信息作为payload来构造TCP连接请求,这取决于sockstress工具的具体实现。

  • -d 10-d是微秒内指定,默认为1000000  改成10之后并发带度更快。

未攻击前可正常访问: 

 攻击中:web网站无法访问

 

 流量特征:完成三次握手、win=0、Window窗(TCP ZeroWindow)、只有请求头没有响应包

Sockstress防范

防御措施

直到今天sockstress攻击仍然是一种很有效的DoS攻击方式 -甶于建立完整的TCP三步握手,因此使用syn cookie防御无效 -根本的防御方法是采用白名单(不实际)

折中对策:限制单位时间内每IP建的TCP连接数

■封杀每30秒与80端口建立连接超过10个的IP地址

■iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --set

■iptables -I INPUT -p tcp --dport 80 -m state --state NEW -m recent --update --seconds 30 --hitcount 10 -j DROP

■以上规则对DDoS攻击无效 

 


 DNS放大攻击

产生大流量的攻击方法

-单机的带宽优势

-巨大单机数量形成的流量汇聚

-利用协议特性实现放大效果的流量

DNS协议放大效果

-查询请求流量小,但响应流量可能非常巨大

-digANYhp.com @202.106.0.20 (流量放大约8倍

dig ANY hp.com @202.106.0.20

dig:是DNS查询工具

ANY hp.com:这是查询的部分,其中:

  • ANY 是查询类型,表示请求DNS服务器返回该域名所有类型的记录
  • hp.com 是你要查询的域名,这里是惠普公司的官方网站域名

@202.106.0.20:指定了DNS解析查询应该发送给的DNS服务器地址

 

攻击原理 

-伪造源地址为被攻击目标地址,向递归域名查询服务器发起查询

-DNS服务器成为流量放大和实施攻击者,大量DNS服务器实现DDoS

SNMP放大攻击

简单网络管理协议

-Simple Network Management Protocol

-服务端UDP 161 / 162

-管理站(manager /客户端)、被管理设备(agent /服务端)

-管理信息数据库(MIB)是一个信息存储库,包含管理代理中的有关配置和性能 的数据,按照不同分类,包含分属不同组的多个数据对象

-每一个节点都有一个对象标识符(OID)来唯一的标识

-IETF定义便准的MIB库/厂家自定义MIB库

攻击原理

-请求流量小,查询结果返回流量大 -结合伪造源地址实现攻击

应用层DoS

应用服务漏洞

-服务代码存在漏洞,遇异常提交数据时程序崩溃

-应用处理大量并发请求能力有限,被拒绝的是应用或OS

缓冲区溢出漏洞

-向目标函数随机提交数据,特定情况下数据覆盖临近寄存器或内存

-影响:远程代码执行、DoS

-利用模糊测试方法发现缓冲区溢出漏洞

CesarFTP 0.99 服务漏洞

-ftp_fuzz.py # MKD/RMD

MS12-020远程桌面协议DoS漏洞

Slowhttptest (源自google)

-低带宽应用层慢速DoS攻击(相对于CC等快速攻击而言的慢速)

-最早由Python编写,跨平台支持(Linux、win、Cygwin、OSX)

-尤其擅长攻击apache、tomcat (几乎百发百中)

攻击方法

Slowloris、Slow HTTP POST 攻击

原理

耗尽应用的并发连接池,类似于Http层的Syn flood HTTP协议默认在服务器全部接收请求之后才开始处理,若客户端发送速度缓慢或不完整,服务器时钟为其保留连接资源池占用,此类大量并发将导致DoS Slowloris:完整的http请求结尾是\r\n\r\n,攻击发\r\n......     Slow POST: HTTP头content-length声明长度,但body部分缓慢发送


声明:

  • 此文章只做技术研究,谨遵守国家相关法律法规,请勿用于违法用途,如果您对文章内容有疑问,可以尝试留言私信,如有侵权请联系小编处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1847473.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Studying-代码随想录训练营day16| 513找到左下角的值、112.路径总和、106从中序与后序遍历序列构造二叉树

第十六天,二叉树part03💪💪💪,编程语言:C 目录 513找到左下角的值 112.路径总和 113.路径总和II 106从中序与后序遍历序列构造二叉树 105.从前序与中序遍历序列构造二叉树 总结 513找到左下角的值…

【计算机毕业设计】​206校园顺路代送微信小程序

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。🌹赠送计算机毕业设计600个选题excel文件,帮助大学选题。赠送开题报告模板&#xff…

思聪私生女能继位吗?王健林表态,家族不会亏待

黄一鸣坚称:这绝对是王思聪的骨肉!常言道,常在河边走,哪能不湿鞋。换女友如换装的王思聪,这次终于跌入了陷阱!他的网红女友们如繁星点点,但选择标准始终如一——年轻、美丽。在金钱上&#xff0…

Nodejs 第七十九章(Kafka进阶)

kafka前置知识在上一章讲过了 不再复述 kafka进阶 1. server.properties配置文件 server.properties是Kafka服务器的配置文件,它用于配置Kafka服务的各个方面,包括网络设置、日志存储、消息保留策略、安全认证 #broker的全局唯一编号,不能…

市场价格到底是因为什么而变动?

在外汇及广泛的金融市场中,影响金融工具价格起伏的因素纷繁复杂。然而,万变不离其宗,无论是哪个市场,价格的最终决定力量始终是供需之间的平衡法则。 对于外汇、大宗商品等金融市场而言,表面上似乎受宏观经济数据、央…

极速查询:StarRocks 存算分离 Compaction 原理 调优指南

作者:丁凯,StarRocks TSC member/镜舟科技云原生技术负责人 StarRocks 在数据摄入过程中,每次操作都会创建一个新的数据版本。在查询时,为了得到准确的结果,必须将所有版本合并。然而,随着历史数据版本的累…

Midjourney v6 快速入门指南

Midjourney V6快速入门教程来了,这是Midjourney的AI图像生成器的又一次令人印象深刻的升级。最显著的是,V6在逼真渲染和图像中的文字功能方面取得了重大进展。 在这篇文章中,我们将探讨如何开始使用Midjourney V6,并提供一些示例…

【单片机毕业设计选题24018】-基于STM32和阿里云的农业大棚系统

系统功能: 系统分为手动和自动模式,上电默认为自动模式,自动模式下系统根据采集到的传感器值 自动控制,温度过低后自动开启加热,湿度过高后自动开启通风,光照过低后自动开启补 光,水位过低后自动开启水泵…

【LeetCode最详尽解答】42-接雨水 Trapping-Rain-Water

欢迎收藏Star我的Machine Learning Blog:https://github.com/purepisces/Wenqing-Machine_Learning_Blog。如果收藏star, 有问题可以随时与我交流, 谢谢大家! 链接: 42-接雨水 直觉 通过可视化图形来解决这个问题会更容易理解和解决。 给定输入: height [0,1,…

不破不立,B站终于跳出“舒适圈”?

哔哩哔哩已经很久没有这么振奋人心的时刻了。 6月19日,哔哩哔哩当日股价涨超18%,最高达到145.6元每股,时隔11个月,再次回归高位。从时间线上看,这次的股价大涨明显与哔哩哔哩刚(以下简称“B站”&#xff0…

分享HTML显示2D/3D时间

效果截图 实现代码 <!DOCTYPE html> <head> <title>three.jscannon.js Web 3D</title><meta charset"utf-8"><meta name"viewport" content"widthdevice-width,initial-scale1,maximum-scale1"><meta n…

vulnhub靶场之FunBox-11

一.环境搭建 1.靶场描述 As always, its a very easy box for beginners. Add to your /etc/hosts: funbox11 This works better with VirtualBox rather than VMware. 2.靶场下载 https://www.vulnhub.com/entry/funbox-scriptkiddie,725/ 3.靶场启动 二.信息收集 1.寻找靶…

2. zabbix-agent获取监控数据的三种方式

zabbix-agent获取监控数据的三种方式 一、监控其他主机1、在被监控机安装部署zabbix-agent2、在web界面添加监控主机3、系统级别的监控数据参考 二、zabbix-agent监控的三种方式1、利用自带key监控数据1.1 示例1: 监控node01网卡的流入流量1.2 常用的key 2、自定义key的监控2.1…

Python基础用法 之 运算符

1.算数运算符 符号作用说明举例加与“”相同 - 减与“-”相同*乘 与“ ”相同 9*218/除 与“ ”相同 9/24.5 、6/32.0//求商&#xff08;整数部分&#xff09; 两个数据做除法的 商 9//24%取余&#xff08;余数部分&#xff09; 是两个数据做除法的 余数 9%21**幂、次方2**…

IDEA 配置方法模板无法获取到参数值和返回值(methodParameters()、methodReturnType()获取不到值)

问题现象&#xff1a; 我在 review 同事代码时候&#xff0c;发现方法上有注释&#xff0c;但是注释上又没有方法参数和返回值&#xff0c;这不是IDEA 配置了方法模板就可以自动生成的嘛&#xff0c;我出于好奇去问了下该同事是怎么回事&#xff0c;该同事有点不好意思的说我配…

客户集中度高,毛利率下滑,江苏永成的IPO之路能走通吗?

撰稿|行星 来源|贝多财经 近年来&#xff0c;汽车市场蓬勃向上&#xff0c;助推上游配套产业链进入增长热潮。 行业利好前景下&#xff0c;不少汽车上游供应商开始向资本市场进发&#xff0c;希望借助上市拓宽融资渠道&#xff0c;加速业务拓展和技术创新&#xff0c;在产业…

【数据库备份完整版】物理备份、逻辑备份,mysqldump、mysqlbinlog的备份方法

【数据库备份完整版】物理备份、逻辑备份&#xff0c;mysqldump、mysqlbinlog的备份方法 一、物理备份二、逻辑备份1.mysqldump和binlog备份的方式&#xff1a;2.mysqldump完整备份与恢复数据2.1 mysqldump概念2.2 mysqldump备份2.3 数据恢复2.4 **使用 Cron 自动执行备份**2.5…

Elk安装及使用

es安装及使用 单机版安装 集群安装 132 node-01 133 node-02 135 node-03 日志用户权限有问题 看日志 解决方案&#xff1a; 出现错误后&#xff0c;再次重启前&#xff0c;需要删除三个节点/data/下的内容 9300-http 9300-tcp logstasha安装及使用 Ssh错误 Yum安装默认路…

海量数据处理——bitMap/BloomFilter、hash + 统计 + 堆/归并/快排

前言&#xff1a;海量数据处理是面试中一道常考的问题&#xff0c; 生活中也容易遇到这种问题。 通常就是有一个大文件&#xff0c; 让我们对这个文件进行一系列操作——找出现次数最多的数据、求交集、是否重复出现等等。 因为文件的内容太多&#xff0c; 我们的内存通常是放不…

Java基础 - 练习(五)根据今天日期获取一周内的日期(基姆拉尔森公式)

基姆拉尔森计算公式用于计算一周内的日期。比如给你年月日&#xff0c;从而计算今天是星期几。 基姆拉尔森公式 Week (d2*m3*(m1)/5yy/4-y/100y/4001) mod 7&#xff0c; 3<m<14Week的取值范围是0 ~ 6&#xff0c;其中0代表星期日&#xff0c;1 ~ 6分别代表星期一到星期…