带你破解DDOS攻击的原理

文章转自入门小站,侵删

DDOS 简介

DDOS 又称为分布式拒绝服务,全称是 Distributed Denial of Service。DDOS 本是利用合理的请求造成资源过载,导致服务不可用,从而造成服务器拒绝正常流量服务。就如酒店里的房间是有固定的数量的,比如一个酒店有 50 个房间,当 50 个房间都住满人之后,再有新的用户想住进来,就必须要等之前入住的用户先出去。如果入住的用户一直不出去,那么酒店就无法迎接新的用户,导致酒店负荷过载,这种情况就是 “拒绝服务”。如果想继续提供资源,那么酒店应该提升自己的资源量,服务器也是同样的道理。

拒绝服务攻击的基本概念

**拒绝服务:**拒绝服务是指应用系统无法正常对外提供服务的状态,如网络阻塞、系统宕机、响应缓慢等都属于拒绝服务的表现。
**拒绝服务攻击(DOS):**拒绝服务攻击(Denial of Service Attack)是一种通过各种技术手段导致目标系统进入拒绝服务状态的攻击,常见手段包括利用漏洞、消耗应用系统性能和消耗应用系统带宽。
**分布式拒绝服务攻击(DDOS):**分布式拒绝服务攻击(Distributed Denial of Service Attack)是拒绝服务攻击的高级手段,利用分布全球的僵尸网络发动攻击,能够产生大规模的拒绝服务攻击。

DDOS 攻击分类

(1)漏洞型(基于特定漏洞进行攻击):只对具备特定漏洞的目标有效, 通常发送特定数据包或少量的数据包即可达到攻击效果。

(2)业务型(消耗业务系统性能额为主):与业务类型高度相关,需要根据业务系统的应用类型采取对应的攻击手段才能达到效果,通常业务型攻击实现效果需要的流量远低于流量型。

(3)流量型(消耗带宽资源为主):主要以消耗目标业务系统的带宽资源为攻击手段,通常会导致网络阻塞,从而影响正常业务。

拒绝服务攻击处理流程

(1)现象分析:根据发现的现象、网络设备和服务的情况初步判断是否存在拒绝服务攻击。

(2)抓包分析:通过抓包分析的方式进一步了解攻击的方式和特征。

(3)启动对抗措施:最后启动对抗措施进行攻击对抗,可以进行资源提升、安全加固、安全防护等措施。

DDOS 流量包分析

SYN Flood 攻击

在正常的情况下,TCP 三次握手过程如下

客户端向服务器端发送一个 SYN 请求包,包含客户端使用的端口号和初始序列号 x。

服务器端收到客户端发送过来的 SYN 请求包后,知道客户端想要建立连接,于是向客户端发送一个 SYN 请求包和 ACK 回应包,包含确认号 x+1 和服务器端的初始序列号 y。

客户端收到服务器端返回的 SYN 请求包和 ACK 回应包后,向服务器端返回一个确认号 y+1 和序号 x+1 的 ACK 请求包,三次握手完成,TCP 连接建立成功。

SYN Flood 攻击原理:

首先是客户端发送一个 SYN 请求包给服务器端,服务器端接受后会发送一个 SYN+ACK 包回应客户端,最后客户端会返回一个 ACK 包给服务器端来实现一次完整的 TCP 连接。Syn flood 攻击就是让客户端不返回最后的 ACK 包,这就形成了半开连接,TCP 半开连接是指发送或者接受了 TCP 连接请求, 等待对方应答的状态, 半开连接状态需要占用系统资源以等待对方应答,半开连接数达到上限,无法建立新的连接,从而造成拒绝服务攻击。

受害靶机的流量包分析

利用 wireshark 软件抓取数据包的数据,通过筛选器筛选出发送包频率多的 ip 地址。

筛选 218.xxx.xxx.87,分析协议占比,发现 tcp 和 http 占比比较大

筛选 tcp 中的 syn 数据包,发现 syn 数据包占比为 82.9,可以判断应该为 SYN FLOOD 拒绝服务攻击

UDP Flood 攻击

UDP Flood 攻击原理:

由于 UDP 属于无连接协议,消耗的系统资源较少,相同条件下容易产生更高的流量,是流量型攻击的主要手段。当受害系统接收到一个 UDP 数据包的时候,它会确定目的端口正在等待中的应用程序。当它发现该端口中并不存在正在等待的应用程序,它就会产生一个目的地址无法连接的 ICMP 数据包发送给该伪造的源地址。如果向受害者计算机端口发送了足够多的 UDP 数据包的时候,系统就会造成拒绝服务攻击,因此,UDP FLOOD 成为了流量型拒绝服务攻击的主要手段。

受害靶机的流量包分析

利用 wireshark 软件抓取数据包的数据,通过筛选器筛选出发送包频率多的 ip 地址。

筛选 117.xxx.xxx.0 网段,分析协议占比,可以看到受害靶机接受的 UDP 包比较多。

可以看到 UDP 包的大小都是固定的 172bytes。

可以看出都是发送 udp 包,udp 包大小都是相同的,可以判断是 udp flood 攻击。

慢速拒绝服务攻击

apt install slowhttptest -y

安装 slowhttptest

慢速拒绝服务攻击原理:

完整的 http 请求包是以 \r\n\r\n 结尾,慢速拒绝服务攻击时仅发送 \r\n,少发送一个 \r\n,服务器认为请求还未发完,服务器就会一直等待直至超时。

slowhttptest -c 5000 -H -g -o my_header_stats -i 10 -r 5000 -t GET -u “http://10.10.10.134” -x 200 -p 3

(测试时建立 5000 连接数 - c;选择 slowloris 模式 - H;生成 cvs 和 HTML 文件的统计数据 - G;生成的文件名 my_header_stats -o;指定发送数据间的间隔 10 秒 -i 每秒连接数 5000-t;指定 url-u;指定发送的最大数据长度 200 -x;指定等待时间来确认 DOS 攻击已经成功 - p)

观察靶机的 cpu 和网络流量明显增加很多

受害靶机的流量包分析

攻击机 ip:10.10.10.129,靶机 ip:10.10.10.134

[PSH,ACK] 是攻击机发送有数据的 ACK 包给靶机,[ACK] 包是靶机回复攻击机的数据包。

可以看到没有发送 2 次连续的 \ r\n,以至于靶机要一直等待。

http 协议比例为 36.6,tcp 协议比例为 87.4

筛选 ack 数据包,占比率 98.2,不符合常态,综上可以判断为慢速拒绝服务攻击

ICMP Flood 攻击

ICMP Flood 攻击原理:

当 ICMP ping 产生的大量回应请求超出了系统的最大限度,以至于系统耗费所有资源来进行响应直至再也无法处理有效的网络信息流,但是由于 ICMP 协议报文被丢弃不影响大多数系统运行,所以容易被防护。

利用 hping3 造成 ICMP Flood 攻击

hping3 -q -n -a 1.1.1.1 –icmp -d 200 –flood 10.10.10.134

观察靶机的 cpu 和网络流量明显增加很多

受害靶机的流量包分析

伪造的源 ip:1.1.1.1 发送大量 icmp 包给目标 ip:10.10.10.134

筛选出同一 IP 发送大量 ICMP 包,且占比率 86.0,判断为 ICMP 拒绝服务攻击。

后记

拒绝服务攻击造成的危害是比较大的,本质是对有限资源的无限制的占用所造成的,所以在这方面需要限制每个不可信任的资源使用中的分配额度,或者提高系统的有限资源等方式来防范拒绝服务攻击。

转存中…(img-TyIrgtzX-1703860349354)]

后记

拒绝服务攻击造成的危害是比较大的,本质是对有限资源的无限制的占用所造成的,所以在这方面需要限制每个不可信任的资源使用中的分配额度,或者提高系统的有限资源等方式来防范拒绝服务攻击。

学习网络安全技术的方法无非三种:

第一种是报网络安全专业,现在叫网络空间安全专业,主要专业课程:程序设计、计算机组成原理原理、数据结构、操作系统原理、数据库系统、 计算机网络、人工智能、自然语言处理、社会计算、网络安全法律法规、网络安全、内容安全、数字取证、机器学习,多媒体技术,信息检索、舆情分析等。

第二种是自学,就是在网上找资源、找教程,或者是想办法认识一-些大佬,抱紧大腿,不过这种方法很耗时间,而且学习没有规划,可能很长一段时间感觉自己没有进步,容易劝退。

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

第三种就是去找培训。

image.png

接下来,我会教你零基础入门快速入门上手网络安全。

网络安全入门到底是先学编程还是先学计算机基础?这是一个争议比较大的问题,有的人会建议先学编程,而有的人会建议先学计算机基础,其实这都是要学的。而且这些对学习网络安全来说非常重要。但是对于完全零基础的人来说又或者急于转行的人来说,学习编程或者计算机基础对他们来说都有一定的难度,并且花费时间太长。

第一阶段:基础准备 4周~6周

这个阶段是所有准备进入安全行业必学的部分,俗话说:基础不劳,地动山摇
image.png

第二阶段:web渗透

学习基础 时间:1周 ~ 2周:

① 了解基本概念:(SQL注入、XSS、上传、CSRF、一句话木马、等)为之后的WEB渗透测试打下基础。
② 查看一些论坛的一些Web渗透,学一学案例的思路,每一个站点都不一样,所以思路是主要的。
③ 学会提问的艺术,如果遇到不懂得要善于提问。
image.png

配置渗透环境 时间:3周 ~ 4周:

① 了解渗透测试常用的工具,例如(AWVS、SQLMAP、NMAP、BURP、中国菜刀等)。
② 下载这些工具无后门版本并且安装到计算机上。
③ 了解这些工具的使用场景,懂得基本的使用,推荐在Google上查找。

渗透实战操作 时间:约6周:

① 在网上搜索渗透实战案例,深入了解SQL注入、文件上传、解析漏洞等在实战中的使用。
② 自己搭建漏洞环境测试,推荐DWVA,SQLi-labs,Upload-labs,bWAPP。
③ 懂得渗透测试的阶段,每一个阶段需要做那些动作:例如PTES渗透测试执行标准。
④ 深入研究手工SQL注入,寻找绕过waf的方法,制作自己的脚本。
⑤ 研究文件上传的原理,如何进行截断、双重后缀欺骗(IIS、PHP)、解析漏洞利用(IIS、Nignix、Apache)等,参照:上传攻击框架。
⑥ 了解XSS形成原理和种类,在DWVA中进行实践,使用一个含有XSS漏洞的cms,安装安全狗等进行测试。
⑦ 了解一句话木马,并尝试编写过狗一句话。
⑧ 研究在Windows和Linux下的提升权限,Google关键词:提权
image.png
以上就是入门阶段

第三阶段:进阶

已经入门并且找到工作之后又该怎么进阶?详情看下图
image.png

给新手小白的入门建议:
新手入门学习最好还是从视频入手进行学习,视频的浅显易懂相比起晦涩的文字而言更容易吸收,这里我给大家准备了一套网络安全从入门到精通的视频学习资料包免费领取哦!

如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值