DDoS攻击包教包会(原理和实现) 您所在的位置:网站首页 cc攻击发包机购买 DDoS攻击包教包会(原理和实现)

DDoS攻击包教包会(原理和实现)

2024-02-21 04:01| 来源: 网络整理| 查看: 265

受限于作者水平,请多多包含本文中可能会出现的漏洞和错误

一、什么是DDoS攻击

DDoS(DDoS:Distributed Denial of Service)分布式拒绝服务攻击,就是让多台计算机联合起来对目标发动拒绝服务攻击。

那么什么又是拒绝服务攻击(DoS)呢?拒绝服务攻击即是攻击者想办法让目标机器停止提供服务的攻击。比如说把对方网页服务搞瘫痪,让对方网站访问不了。

所以DDos攻击,是采用分布式,并以让别人访问不了目标服务器为目的的攻击。可被应用于发泄不满,恶意的竞争等等。

比如学校让抢课啦,而自己又没时间去抢,完全可以开个DDoS,让大家都抢不了课。等自己忙完了,再关掉DDoS。愉快的去抢课。也是一个应用嘛。

注意,这种做法是不合法的。

二、如何DDoS攻击/DDoS攻击的思路

最简单的方式

控制很多台机器不断访问目标站点,或者不断发送请求,如果访问的流量足够大,把目标站点拖垮了,那么它就拒绝服务了。

显然这种方法不经济不实惠,消耗对方多少带宽,自己就需要多少带宽。这种方法是可行但是太傻以至于通常不会这样做。我们需要的是消耗自己一点资源,就能消耗对方大量资源的方法。

最经典的方法——SYN Flood攻击

访问一个网站,我们用的是TCP协议。TCP协议中规定,两台电脑要开始通讯,需要先建立一个连接。连接建立的具体过程是这样的。

1)电脑A想连接电脑B,A向B发送一个SYN信息,即同步信息。B电脑收到后回复一个确认信息ACK。

TCP中每一个数据包都有一个序号,这样接收的时候就知道发出来的先后顺序(因为先发的不一定先到)和有没有数据包漏掉(因为网络原因,有几个包在传输的途中丢了也是很正常的)。SYN包的作用是同步序号,即告诉对方我的下一个包的序号应该是多少。

2)然后同样的。B向A发送一个SYN包,A收到后回复一个ACK包,连接建立完成。

概括一下,就是A发SYN,B发ACK+SYN,A发ACK,连接建立完成。这个过程一般称为“三次握手”。

而SYN Flood攻击就是A发SYN包,B发ACK+SYN,此时A不发ACK而是再发一个SYN,然后不停的发SYN。这会产生大量建立了一半的连接,称为半开连接。

收到一个SYN,就会产生一个半开连接,正常情况下很快又会收到一个ACK,从而建立一个完整的连接。极少时候,一直收不到ACK,超时之后关闭这个半开连接。如果短时间内收到大量SYN而收不到ACK,就会建立很多半开连接,半开连接数如果超过上限,服务器就不会再接受SYN请求了,导致正常用户连不上来。

SYN攻击简单有效。因此大家都喜欢用它。所以服务器对这方面的防御往往会完善一点。同时也有很多现成的软件可以用来防御SYN。同时,要在规定时间内让半开连接数耗尽对网络的带宽还是有一定要求的。

我觉得还不错的方法,TCP全连接攻击。怼学校服务器效果拔群

如果建立半连接无效,我们就只能建立全连接了。TCP全连接攻击的思路是不断建立正常的连接。维持每个连接不让其释放。当连接数积累到很大的时候,服务器就崩了。

往往我们不断制造一些垃圾数据通过连接传输。垃圾数据不需要很大的量,它的目的只是为了避免因为连接长时间没有数据流而被服务器释放。

全连接攻击的优点在于通常不会像半连接一样因为超时而被释放掉。我们可以慢慢建立连接,不用着急。不需要多大带宽。

而服务器方面。需要对每一个连接分配一个线程甚至进程。分配线程的开销是很大的。在投入资源和浪费服务器资源方面,可以说还是很高效了。

个人认为,这种方法是很好防御的。比如可以检查请求头里面的cookie,看他是不是注册了,登陆了。如果cookie验证不过。就不准它长时间的传输数据。不过因为很多网站开发的构架本身不带有这个功能(似乎?),所以一些劣质网站自然也不会带有这种功能吧。

附python代码:

复制过来也不知道缩进对不对,看看就行。要用的可以去我百度网盘下载。

使用方法:下载安装python最新版本。下载源码,双击运行。

记得将源码中的网址改为自己想要用来测试的网址。

源码:链接:https://pan.baidu.com/s/169sIz5md7BGL9LCw8gdDOQ 密码:ak15

python官网:https://www.python.org/

原理是发大量post请求,维持连接并发送少量垃圾数据。

#!/usr/bin/env python

import socket

import time

import threading

#Pressure Test,ddos tool

#---------------------------

MAX_CONN=30000

#改写下面的网址为你想攻击的网站!!!!!!!!!

PORT=80

HOST="www.sspu.edu.cn"    

PAGE="/recitewords/api"

#---------------------------

buf=("POST %s HTTP/1.1\r\n"

"Host: %s\r\n"

"Content-Length: 10000\r\n"

"Cookie: dklkt_dos_test\r\n"

"\r\n" % (PAGE,HOST))

socks=[]

def conn_thread():

    global socks

    while len(socks)



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有