-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathAutoMetasploit.py
99 lines (82 loc) · 3.04 KB
/
AutoMetasploit.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/usr/bin/python
# -*- coding: utf-8 -*-
import os
import multiprocessing as mp
# Mi CORE
from core import Config
from core.Menu import Menu
from core.Escaner import Escaner
from core.Dispositivo import Dispositivo
from modulos.Interfaces import Interfaces
class AutoMetasploit():
def __init__(self):
self.__cargarConfiguracion()
self.__cargarParametros()
self.__inicio()
#
# Toda la configuracion se carga aqui en variables de clase
#
def __cargarConfiguracion(self):
# Cada clase, una variable de configuración
self.config = Config.Config
self.configInterfaces = Config.ConfigInterfaces
self.configNmap = Config.ConfigNmap
self.configErrores = Config.ConfigErrores
def __cargarParametros(self):
# Configuracion General
self.interfaces = Interfaces()
self.coreMenu = Menu()
# Configuracion Interfaces
self.mi_ip = self.configInterfaces.mi_ip
self.interfaces_mi_pc = self.configInterfaces.interfaces_mi_pc
self.parametros_obligatorios_interfaces = self.configInterfaces.PARAMETROS_OBLIGATORIOS
# Configuracion Nmap
self.parametros_nmap = self.configNmap.PARAMETROS
self.parametros_obligatorios_nmap = self.configNmap.PARAMETROS_OBLIGATORIOS
self.parametros_predefinidos_nmap = self.configNmap.FIJOS
# Variables finales necesarias para conjugacion de datos
self.interfaces_selec = []
self.parametros_nmap_selec = []
self.output = mp.Queue() # Multiproceso
def get_parametros_seleccionador(self, lista, seleccionados):
lista_selec = []
cont=0
for param in lista:
if cont in seleccionados:
lista_selec.append(param)
cont+=1
return lista_selec
#
# Inicio del programa principal
#
def __inicio(self):
self.elegirInterfaz()
self.elegirParametrosNmap()
self.iniciarEscaneo()
def elegirInterfaz(self):
self.coreMenu.elegirOpcionMenu(
parametros=self.interfaces_mi_pc,
parametros_selec=self.interfaces_selec,
param_obligatorios=self.parametros_obligatorios_interfaces)
def elegirParametrosNmap(self):
print("PARAMS:{}".format(self.parametros_predefinidos_nmap))
self.coreMenu.elegirOpcionMenu(
parametros=self.parametros_nmap,
parametros_selec=self.parametros_nmap_selec,
param_obligatorios=self.parametros_obligatorios_nmap,
predefinidos=self.parametros_predefinidos_nmap)
def iniciarEscaneo(self):
interfaces_params = self.get_parametros_seleccionador(lista=self.interfaces_mi_pc, seleccionados=self.interfaces_selec)
nmap_params = self.get_parametros_seleccionador(lista=self.parametros_nmap, seleccionados=self.parametros_nmap_selec)
nmap_params = ' '.join(nmap_params)
procesos = []
for inter in interfaces_params:
procesos.append(mp.Process(target=Escaner, args=(inter, nmap_params)))
for p in procesos:
p.start()
for p in procesos:
p.join()
if __name__ == '__main__':
script = AutoMetasploit()
# TODO Segun configuracion deberia auto importar el orden lo los menus y automaticamente coger la configuracion el AutoMetasploit() en el inicio recursivamente segun los metodos publicos de cada modulo
# TODO Solucionar que se cierren los multiprocesos al salir