Esempio n. 1
0
 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
Esempio n. 2
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
Esempio n. 3
0
 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)
Esempio n. 4
0
 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
Esempio n. 5
0
 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
Esempio n. 6
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
Esempio n. 7
0
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):