Example #1
0
    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
Example #2
0
    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