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 __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