Advertisement
Guest User

Untitled

a guest
Mar 2nd, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1. #!/usr/bin/env python2
  2. # Zedspider Module for dumping vnc images
  3.  
  4. from gevent import monkey
  5. monkey.patch_all()
  6.  
  7. from gevent.pool import Pool
  8.  
  9. import socket
  10. import requests
  11. import sys
  12. import os
  13. import time
  14. import csv
  15. import mysql.connector
  16. import re
  17. import gevent
  18. from subprocess import call
  19.  
  20. class report_open_vnc():
  21.  
  22. def __init__(self):
  23. self.classID = 1
  24. self.clsfrID = 1
  25. self.test_list = []
  26. self.sql_query = ("Select tbl_IPAddresses.strIPAddr, tbl_IPAddresses.strCountry, tbl_IPAddresses.strCity, tbl_IPAddresses.strRegion, "
  27. "tbl_service.intPort, tbl_service_content.txtDump From tbl_IPAddresses Inner Join tbl_service on tbl_IPAddresses.idIPAddr "
  28. "= tbl_service.idIPAddr Inner Join tbl_service_content On tbl_service.idSvc = tbl_service_content.idSvc Where "
  29. "((tbl_service.intPort = 5902) or (tbl_service.intPort = 5901) or (tbl_service.intPort = 5900)) and tbl_service.dateDiscovered >= \"2016-01-22 07:30:00\"")
  30. # last check: 2/24/2016 18:00
  31.  
  32. # Generate List of IPs and Ports with idsvc for each port
  33. def generate_list(self, sql_query):
  34. cnx = mysql.connector.connect(unix_socket='/run/mysqld/mysqld.sock',user='dbuser', password='password', database='zedspider')
  35. cursor = cnx.cursor()
  36. cursor.execute(sql_query)
  37.  
  38. test_list = cursor.fetchall()
  39.  
  40. return test_list
  41.  
  42. def syscall_vncsnapshot(self, ipaddr, port):
  43. # System call to grab vnc images
  44. #callstr = "echo %s %d" % (ipaddr, port)
  45. callstr = "timeout 6m proxychains vncsnapshot %s::%d %s.png &" % (ipaddr.encode('utf-8'), port, (ipaddr).encode('utf-8'))
  46. call(callstr, shell=True)
  47.  
  48. def run(self):
  49. # Generate List of IPs and Ports and store in list variable
  50. self.test_list = self.generate_list(self.sql_query)
  51.  
  52. total = len(self.test_list)
  53.  
  54. test_queue = []
  55.  
  56. while self.test_list:
  57. print "Testing " + str(total-len(self.test_list)) + "/" + str(total) + " possible VNC services."
  58. for counter in range(0,min(250, len(self.test_list))):
  59. test_queue.append(self.test_list[0])
  60. del self.test_list[0]
  61. counter += 1
  62. jobs = [gevent.spawn(self.syscall_vncsnapshot, row[0], row[4]) for row in test_queue]
  63. gevent.joinall(jobs)
  64. test_queue = []
  65. counter = 0
  66. time.sleep(240)
  67.  
  68.  
  69. M = report_open_vnc()
  70. M.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement