mirror of https://github.com/n1nj4sec/pupy.git
Merge branch 'port_scan' of https://github.com/AlessandroZ/pupy
This commit is contained in:
commit
0db77536b0
|
@ -16,7 +16,8 @@ class PortScan(PupyModule):
|
|||
def init_argparse(self):
|
||||
self.arg_parser = PupyArgumentParser(prog="port_scan", description=self.__doc__)
|
||||
self.arg_parser.add_argument('--ports','-p', default="21,22,23,80,139,443,445,3389,7001,8000,8080", help='ports to scan ex: 22,80,443')
|
||||
self.arg_parser.add_argument('--timeout','-t', default="2", help='timeout (default: %(default)s)')
|
||||
self.arg_parser.add_argument('--timeout', default=4, help='timeout (default: %(default)s)')
|
||||
self.arg_parser.add_argument('--threads', default=10, help='number of threads (default: %(default)s)')
|
||||
self.arg_parser.add_argument('target', metavar="ip/range", help='IP/range')
|
||||
|
||||
def run(self, args):
|
||||
|
@ -31,7 +32,7 @@ class PortScan(PupyModule):
|
|||
self.success("Scanning remote host: %s" % host)
|
||||
|
||||
t1 = datetime.now()
|
||||
open_ports = self.client.conn.modules['portscan'].scan(host, ports)
|
||||
open_ports = self.client.conn.modules['portscan'].scan(host, ports, args.threads, args.timeout)
|
||||
if open_ports:
|
||||
self.log('PORT STATE')
|
||||
for p in open_ports:
|
||||
|
|
|
@ -8,16 +8,17 @@ open_port = []
|
|||
|
||||
class WorkerThread(threading.Thread) :
|
||||
|
||||
def __init__(self, queue, tid, remote_ip, ports) :
|
||||
def __init__(self, queue, tid, remote_ip, ports, settimeout) :
|
||||
threading.Thread.__init__(self)
|
||||
self.queue = queue
|
||||
self.tid = tid
|
||||
self.ports = ports
|
||||
self.remote_ip = remote_ip
|
||||
self.timeout = settimeout
|
||||
|
||||
def check_open_port(self, port):
|
||||
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
|
||||
sock.settimeout(4)
|
||||
sock.settimeout(self.timeout)
|
||||
result = sock.connect_ex((self.remote_ip, port))
|
||||
if result == 0:
|
||||
sock.close()
|
||||
|
@ -32,13 +33,12 @@ class WorkerThread(threading.Thread) :
|
|||
self.check_open_port(port)
|
||||
self.queue.task_done()
|
||||
|
||||
def scan(remote_ip, ports):
|
||||
def scan(remote_ip, ports, nb_threads, settimeout):
|
||||
queue = Queue.Queue()
|
||||
threads = []
|
||||
|
||||
# 10 threads
|
||||
for i in range(1, 11):
|
||||
worker = WorkerThread(queue, i, remote_ip, ports)
|
||||
for i in range(1, nb_threads):
|
||||
worker = WorkerThread(queue, i, remote_ip, ports, settimeout)
|
||||
worker.setDaemon(True)
|
||||
worker.start()
|
||||
threads.append(worker)
|
||||
|
|
Loading…
Reference in New Issue