def __generate_command_nmap(ip: str, ports: str = "", os_ana: bool = False, script: bool = False, tcp: bool = True, version: bool = False, agressive: bool = False, delay: int = -1): commandlist: list = [] if ControlVariables.variableCorrecta(ip): commandlist.append("nmap") commandlist.append(ip) if agressive is True: # print("Pls no seas agresivo") commandlist.append("-A") else: if script is True: commandlist.append("-sC") elif version is True: commandlist.append("-sV") elif os_ana is True: commandlist.append("-O") if tcp is True or tcp: commandlist.append("-sS") else: commandlist.append("-sU") if ControlVariables.variableCorrectaInt(delay) is True: if 0 <= delay <= 5: commandlist.append(f"-T{delay}") if ControlVariables.variableCorrecta(ports) is True: if ports == "all": commandlist.append("-p-") else: commandlist.append(f"-p {ports}") return commandlist
def __analizar_puerto(linea_completa: str, paramentros_de_los_puertos: int): dict_port: dict = {} linea_split: list = linea_completa.split(' ') ControlVariables.removeNullFromList(linea_split) puerto_y_protocolo = linea_split[0].split("/") dict_port.update({ "port": puerto_y_protocolo[0], "protocolo": puerto_y_protocolo[1], "state": linea_split[1], "servicio": linea_split[2] }) if paramentros_de_los_puertos == 4: if linea_split.__len__() == 5: dict_port.update( {"version": linea_split[3] + " " + linea_split[4]}) elif linea_split.__len__() == 4: dict_port.update({"version": linea_split[3]}) else: dict_port.update({"version": "desconocido"}) #if paramentros_de_los_puertos == linea_split.__len__(): # dict_port.update({"version": linea_split[3]}) #elif paramentros_de_los_puertos > linea_split.__len__(): # dict_port.update({"version": "".join('a' for a in range())}) return dict_port
def __save_or_restart(self, string_process: str): pos: int = ControlVariables.contains_any(string_process, self.__dicts_values) if pos == -1: if self.__funcion is not None: self.__funcion(string_process) else: print(string_process) else: self.__procesarString(string_process, pos)
def getwhois(self, url: str): result: dict = {"data_dict_response": True} if ControlVariables.variableCorrecta(url) is True: url = URLController.fixURLWhoIs(url) try: result.update(whois.query(url).__dict__) except: result[self.__data_dict_response] = False else: result[self.__data_dict_response] = False return result
def locate(self, ip: str): result: dict = {"data_dict_response": True} if ControlVariables.variableCorrecta(ip) is True: try: with geoip2.database.Reader( './Funcionalidades/geolite2_city.mmdb') as gi: rec = gi.city(ip) result.update({ "pais": rec.country.name, "ciudad": rec.city.name, "region": rec.subdivisions.most_specific.name, "latitud": rec.location.latitude, "longitud": rec.location.longitude }) except: result[self.__data_dict_response] = False else: result[self.__data_dict_response] = False return result
def __analizar_nmap_results(result: list): dict_final: dict = {} if result is not None: lista_diccionarios_puertos: list = [] paramentros_de_los_puertos: int = 0 ControlVariables.removeNullFromList(result) for linea_a_analizar in result: # region startswith if linea_a_analizar.startswith("Not shown:"): dict_final.update({ "closed_ports": linea_a_analizar.split(": ")[1].split(' ')[0] }) elif linea_a_analizar.startswith("All "): dict_final.update( {"closed_ports": linea_a_analizar.split(" ")[1]}) elif linea_a_analizar.startswith("Host is up"): dict_final.update({"status": "up"}) dict_final.update({ "latencia": linea_a_analizar.split(' ')[3].replace('(', '') }) elif linea_a_analizar.startswith("Note:"): dict_final.update({"status": "down"}) elif linea_a_analizar.startswith("Nmap done:"): dict_final.update({ "scanning_time": linea_a_analizar.split("scanned in ")[1].split(' ')[0] }) elif linea_a_analizar.startswith("OS details"): dict_final.update({"os": linea_a_analizar.split(": ")[1]}) elif linea_a_analizar.startswith("OS CPE"): dict_final.update( {"os cpe": linea_a_analizar.split(": ")[1]}) elif linea_a_analizar.startswith("Running (JUST GUESSING):"): dict_final.update( {"os pos": linea_a_analizar.split(": ")[1]}) elif linea_a_analizar.startswith("PORT"): lista = linea_a_analizar.split(' ') ControlVariables.removeNullFromList(lista) paramentros_de_los_puertos = lista.__len__() elif linea_a_analizar.startswith("Nmap scan"): linea_list = linea_a_analizar.split(' ') ip: str = linea_list[len(linea_list) - 1] #print(ip) ip = ip.replace('(', '').replace(')', '') #print(ip) dict_final.update({"ip": ip}) # endregion elif ControlVariables.startWitnNum(linea_a_analizar): if linea_a_analizar.__contains__( "returning data.") is False: lista_diccionarios_puertos.append( MyScanner.__analizar_puerto( linea_a_analizar, paramentros_de_los_puertos)) elif linea_a_analizar.startswith("SF:"): print(linea_a_analizar) else: print(linea_a_analizar) if lista_diccionarios_puertos.__len__() > 0: dict_final.update({"ports": lista_diccionarios_puertos}) return dict_final
import webbrowser from tkinter import messagebox from Easy_Tkinter.guiclass import GeneralTab, GeneralButton, GeneralNotebook, GeneralVentana, GeneralMenuBar, GeneralMenu, \ GeneralDivTab, GeneralTextAreaScrollTab, GeneralEntradaTexto, GeneralCombox, GeneralCheckBox from Llanylib.SimpleTools import ControlVariables, URLController, FilesController from Funcionalidades.FuncionesRastreator import Spider, SpiderModes, SpiderEvade from Funcionalidades.FuncionesNmap import MyScanner from Funcionalidades.FuncionesInfoServer import InfoServer from Funcionalidades.FuncionesFuzz import FuzzAnalyzer info: InfoServer = InfoServer() varcontroller: ControlVariables = ControlVariables() urlcontroller: URLController = URLController() scanner: MyScanner = MyScanner() files = FilesController() # region Menu class MainMenuHelp(GeneralMenu): def __init__(self, parent: GeneralMenuBar): super().__init__("Help", parent) self.nucleo.add_command(label="Help", command=self.__help) self.nucleo.add_command(label="Not help", command=self.__openNever) self.nucleo.add_separator() self.nucleo.add_command(label="Acerca de...", command=self.__opengit) def __help(self): if messagebox.askyesno("Help", "¿Necesitas ayuda?"): messagebox.showinfo("Help", "Entonces busca en google") def __openNever(self):