elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29
151  Seguridad Informática / Hacking / Re: [Ayuda] Encontrar Vulnerabilidades en: 10 Julio 2019, 21:46 pm
Saludos, soy nuevo en el foro y no se si estoy poniendo el post en una zona equivocada. Lo que si se es que no encuentro otro sitio donde ponerlo ya que esta es la sección de Bugs y Exploits.

Bien, mi pregunta es si hay algun programa que encuentre las vulnerabilidades de una página web y poder "infiltrarte por ese fallo". He estado buscando pero no encuentro ninguno bueno.

También pediría ayuda para intentar "Hackear" una página web... En realidad no es hackear, sino, como he dicho antes, aprovechar un fallo y hacer modificaciones en la web, sin embargo, no quiero hacer daño a la web, sino cambiar unos parámetros en mi cuenta, que yo no puedo hacer y que lo tendría que hacer un Admin o acceder a la Base de Datos

Quien quiera ayudarme que contacte conmigo.

Gracias y Feliz Año Nuevo !!  ;D

Hola, para querer aprender a hackear una web, cambiando datos de tu cuenta en esa web, primero debes de saber desarrollo web, y todo el funcionamiento de sesiones php y logins,DB's,etc...

Tienes que saber muy bien DB, consultas, y como los programadores hacen para evitar ataques sql (inyeccion sql ) con funciones como mysqli_real_escape() (ya no tan recomendable, mas recomendable consultas preparadas), saber hacer consultas  a DB (base de datos) inserción,eliminacion,modificacion.

En conclusión saber hacer una aplicacion web básica con conexion de DB y Sessiones php.

Después de saber hacer todo esto (es recomendable). ya te puedes plantear aprender hacking ético orientado en este caso a hacking web.

Saber hackear no es como en las peliculas. Sabiendo todo lo anterior, debes saber manejarte muy bien en el entorno Linux (sobre todo manejarte muy bien en la terminal), después no solamente saber hacer programacion Web (HTML, CSS, JS/jQuery PHP Mysql/PDO) si no tambien programacion orientada a hacking (bash/Linux, Python) el .sh que es bash linux es archivos de ejecucion de lotes como .bat en windows, y python es un gran lenguaje de programacion (muy recomendable para hacking, AI, etc...). Tambien C++ (en caso de C++ para hacking web no hace falta). Y después saber utilizar Kali Linux y su mayoria de herramientas como sqlmap (entrar en DB's) hydra (Fuerza bruta).

Con todo ello, no vas a encontrar un programa que te haga todo el trabajo en todo caso deberás aprender y con todo el conocimiento de proramacion puedes crear tu propio programa.
152  Programación / Scripting / Re: Conexion sockets en python con IP publica en: 29 Mayo 2019, 16:53 pm
En conexion directa es el cliente el que envia la conexion al servidor.
Tienes que abrir el puerto a la maquina que recobe la conexion.
El router no es adivino y en el caso de tener muchos equipos comectados al mismo router, como sabe el router cual de esos equipo recibira la conexion? Para eso tienes que seleccionar la ip publica (que identifica al equipo que recibe la conexion y abrir los puertos para que el equipo pueda estar en modo escucha a la espera de tu conexion desde el cliente.

En caso de que la conexion sea inversa, es el servidor el que se configura para establecer la conexion con el cliente. Entonces si tienes que abrir los puertos de tu router hacia el equipo en el que estas ejecutando el cliente.a

Imagino que no has escrito tu el codigo. En este caso es el servidor el cual está a la escucha.
Solucion 1: Abre el puerto del router domde estas ejecutando la aplicacion servidor. (Maquina a ser controlada) Cierra el puerto de tu router de tu casa.

Solucion 2: Utiliza otra aplicacion que establezca la conexion desde el equipo que quieres controlar al tuyo.
Es probable que tengas una ip-dinamica (cambia cada x tiempo o si apagas el router un rato.)
Puedes comprobarlo, mira tu ip apaga el router 10 segundos y vuelve a mirar tu ip. Si cambia la ip que configuraste en la aplicacion no coincidira con tu ip actual por lo que no te llegara la conexion desde el equipo a controlar a tu casa. Para solicionar ese problema tiemes que usar un servicio de terceros como.no-ip. Entonces configuras la ip de NO-IP en la aplicacion servidor instalada en la maquina a cpntrolar. Al tener la aplicacion de no-ip abierta en el pc de tu casa, esta envia tu ip actual, y si esta cambia el programa envia la nueva direccion ip. Desde el servidor otorgado por no-ip se redirecciona la conexion del servidor a tu equipo. Por lo que siempre te llegara la conexion desde el equipo a controlar a tu equipo.

No instales ningun programa que te permita controlar un equipo si autorizacion por escrito del duenho del equipo y/o del administrador/propietario de la red local.
En caso contrario estaras cometiendo un delito.
El desconocimiento del codigo penal no exime de su cumplimiento.
Consulta las penas multas del pais en el que resides y tambien del pais en donde esta el servidor en caso de que no este en el mismo que desde donde te encuentras.

Hay muchos manuales. Si te interesa el tema instala algun servidor en el pc con virtualbox usando manuales y experimenta desde tu movil desde tu casa y la casa de un amigo que tenga wi-fi o algun bar/centro comercial.
Esta chulo el tema.

Muchas gracias, por la explicación, probaré lo que comentaste sobre un server en virtualbox, y no te preocupes por esto:
Citar
No instales ningun programa que te permita controlar un equipo si autorizacion por escrito del duenho del equipo y/o del administrador/propietario de la red local.
En caso contrario estaras cometiendo un delito.
El desconocimiento del codigo penal no exime de su cumplimiento.
Consulta las penas multas del pais en el que resides y tambien del pais en donde esta el servidor en caso de que no este en el mismo que desde donde te encuentras.

Mis objetivos no son dañinos sino solamente para aprender y entender. Solamente la conexion sockets lo copie de internet pero lo demás lo desarrollé yo, esto permite funciones como transferir archivos del servidor al ciente y viceversa. Como también moverse por las carpetas, y ver sus archivos (con funciones cd, ls, ls -l ...). Solamente disimular un posible funcionamiento de un backdoor.
153  Programación / Desarrollo Web / Re: Permitir iframe solo desde un determinado dominio en: 2 Mayo 2019, 19:24 pm
Hola, necesito ayuda.
Tengo dos sitios web, ejemplo sitio1.com y sitio2.com
En sitio1.com necesito insertar un iframe de sitio2.com, pero quiero que sitio2.com solo permita que se inserte por iframe de sitio1.com y no me lo roben de otros sitios.
Qué script debería poner en sitio2.com?
Muchas gracias

Hola, para poner un iframe es:
Código:
<iframe src="sitio1.com"></iframe>
info: https://www.w3schools.com/tags/tag_iframe.asp

Lo que no acabo de entender es esto.
Citar
pero quiero que sitio2.com solo permita que se inserte por iframe de sitio1.com y no me lo roben de otros sitios
A que te refieres? Quieres decir que en el iframe no puedan copiar el sitio web, que no puedan selecionar texto?*. O ha que te refieres?

* Si es eso, solamente es el sitio web inserta este css:
Código:
*{
   user-select:none;

Lo que hace esto, es que no puedan seleccionar ningún texto, en toda la web.
154  Comunicaciones / Redes / Re: Re: ¿Se puede sacar la sumascara de una ip? en: 4 Abril 2019, 10:01 am
No. Bien que te puedes guiar por cada una de la clase de la IP, pero ese método es antiguo y poco fiable. Una IP 192.168.1.13 (Clase C) puede ser /24 (255.255.255.0) o cualquier otra que le ponga yo, dado a que es privada. No se claramente si es esta tu pregunta...
Y al no poder averiguarlo, se puede saber los tipos de prefijos de una ip de sitio web, a traves de algun comando wn la terminal Linux/GNU?

Enviado desde mi VTR-L09 mediante Tapatalk
155  Comunicaciones / Redes / Re: Re: ¿Se puede sacar la sumascara de una ip? en: 4 Abril 2019, 09:58 am
No. Bien que te puedes guiar por cada una de la clase de la IP, pero ese método es antiguo y poco fiable. Una IP 192.168.1.13 (Clase C) puede ser /24 (255.255.255.0) o cualquier otra que le ponga yo, dado a que es privada. No se claramente si es esta tu pregunta...
Ok gracias

Enviado desde mi VTR-L09 mediante Tapatalk
156  Programación / Scripting / Conexion sockets en python con IP publica en: 26 Marzo 2019, 23:54 pm
Hola, estoy haciendo un cliente-servidor, para transferencias de archivos,entre el instituto y mi casa.

Servidor.py

Código:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#Se importa el módulo
"""
FUNCIONA EL DOWNLOAD -F
FUNCIONA EL DOWNLOAD -D
"""
import socket, os, getpass, shutil, shlex, commands, tarfile, subprocess, numpy
from pexpect import pxssh
import signal
from subprocess import Popen, PIPE
name_host_server = getpass.getuser()
carpeta_actual_server = os.getcwd()
#instanciamos un objeto para trabajar con el socket
ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = "192.168.8.100" #inti
port = 8000
def handler(signum, frame):
    os.system("fuser -k -n tcp %s" % port)
signal.signal(signal.SIGTSTP, handler)
#Puerto y servidor que debe escuchar
ser.bind((server, port))
#Aceptamos conexiones entrantes con el metodo listen. Por parámetro las conexiones simutáneas.
ser.listen(1)
 
#Instanciamos un objeto cli (socket cliente) para recibir datos
cli, addr = ser.accept() 
while True:
    #creamos comandos especiales para el servidor-cliente
    recibido = cli.recv(1073741824) # 1GB
    cd_recibido = recibido.startswith("cd")
    text_recibido = recibido.startswith("-t")
    ventana_error_recibido = recibido.startswith("-m --error") #ok
    ventana_info_recibido = recibido.startswith("-m --info") #ok
    ventana_input_recibido = recibido.startswith("-m --input") #ok
    ventana_question_recibido = recibido.startswith("-m --question") #ok
    ventana_warning_recibido = recibido.startswith("-m --alert") #ok
    ventana_notification_recibido = recibido.startswith("-m --notification") #ok
    descargar_archivo = recibido.startswith("download -f")
    descargar_carpeta = recibido.startswith("download -d")
    recibido_eliminar_tmp = recibido.startswith("Eliminar download")
    copiar_archivo_listo = recibido.startswith("copy -f ready")
    copiar_carpeta_listo = recibido.startswith("copy -d ready")
    sudo = recibido.startswith("sudo")
    instalar = recibido.startswith("install ready")
    desinstalar = recibido.startswith("uninstall ready")
    fb = recibido.startswith("fb")
    #ejecucion de cuyos comandos
    if text_recibido == 1:
        texto_filtro = recibido.replace("-t ","")
        print(texto_filtro)
        cli.send(texto_filtro)
    elif cd_recibido == 1:
        texto_filtro = recibido.replace("cd ","")
        os.chdir(texto_filtro)
        cli.send(texto_filtro)
    elif ventana_input_recibido == 1:
        texto_filtro = recibido.replace("-m --input ","")
        comando = commands.getoutput("zenity --entry --title '' --text %s --display :0" % texto_filtro)
        cli.send(comando)
    elif ventana_error_recibido == 1:
        texto_filtro = recibido.replace("-m --error ","")
        comando = commands.getoutput("zenity --error --title '' --text %s --display :0" % texto_filtro)
        cli.send(comando)
    elif ventana_info_recibido == 1:
        texto_filtro = recibido.replace("-m --info ","")
        comando = commands.getoutput("zenity --info --title '' --text %s --display :0" % texto_filtro)
        cli.send(comando)
    elif ventana_notification_recibido == 1:
        texto_filtro = recibido.replace("-m --notification ","")
        comando = commands.getoutput("zenity --notification --title '' --text %s --display :0" % texto_filtro)
        cli.send(comando + "\n")
    elif ventana_warning_recibido == 1:
        texto_filtro = recibido.replace("-m --alert ","")
        comando = commands.getoutput("zenity --warning --title '' --text %s --display :0" % texto_filtro)
        cli.send(comando)
    elif ventana_question_recibido == 1:
        texto_filtro = recibido.replace("-m --question ","")
        comando = commands.getoutput("zenity --question --title '' --text %s --display :0" % texto_filtro)
        cli.send(comando)
    elif recibido == "python":
        cli.send("error sintaxis")
    elif recibido == "nano":
        cli.send("error sintaxis")
    elif descargar_archivo == 1:
        archivo_filtro = recibido.replace("download -f ","")
        lista_nombre_archivo = archivo_filtro.split("/")
        ultimo_item_lista = len(lista_nombre_archivo)
        item_nombre = ultimo_item_lista - 1
        nombre_archivo = lista_nombre_archivo[item_nombre]
        nombre_archivo1 = "".join(nombre_archivo.split())
        abrir_archivo = open(archivo_filtro,"rb")
        archivo_bin = abrir_archivo.read()
        cli.send("download -f ready|"+ nombre_archivo1+"|"+ archivo_bin)
    elif descargar_carpeta == 1:
        filtro = recibido.replace("download -d ","")
        lista = filtro.split("/")
        directorio = len(lista) -1
        directorio_fin = lista[directorio]
        directorio_fin1 = "".join(directorio_fin.split())
        destino_gz = "/tmp/"+directorio_fin1
        ruta_comprimida = "/tmp/"+directorio_fin1+".tar.bz2"
        archivo_gz = shutil.make_archive(destino_gz, "bztar",filtro)
        archivo = open(ruta_comprimida,"rb")
        archivo_bin = archivo.read()
        cli.send("download -d ready |"+archivo_bin+" | "+ruta_comprimida)
    elif recibido_eliminar_tmp:
        filtro = recibido.replace("Eliminar download ","")
        os.system("shred -u "+filtro)
    elif copiar_archivo_listo == 1:
        filtro = recibido.replace("copy -f ready |","")
        lista = filtro.split(" | ")
        archivo = lista[0]
        destino = lista[1]
        nombre = lista[2]
        ruta = destino+"/"+nombre
        abrir = open(ruta,"w")
        abrir.write(archivo)
        cli.send("\033[1;32m"+"[+]"+"\033[1;37m"+" Archivo copiado correctamente a"+"\033[1;31m"+":"+"\033[1;37m"+ruta)
        abrir.close()
    elif copiar_carpeta_listo == 1:
        filtro = recibido.replace("copy -d ready |","")
        lista = filtro.split(" | ")
        archivo = lista[0]
        destino = lista[1]
        carpeta = lista[2]
        ruta = "/tmp/"+carpeta+".tar.bz2"
        abrir = open(ruta,"w")
        abrir.write(archivo)
        abrir.close()
        os.system("mkdir "+destino+"/"+carpeta)
        extraer_destino = destino+"/"+carpeta
        desempaquetar = tarfile.open(ruta)
        desempaquetar.extractall(path=extraer_destino)
        os.system("shred -u "+ruta)
        cli.send("Eliminar copy "+ruta)
        #si no hay comandos especiales para ejecutar, se ejecutará los comandos de linux
    elif sudo == 1:
        filtro_c = recibido.replace("sudo ","")
        filtro = recibido.split(" | ")
        comando = filtro[0]
        contrasena = filtro[1]
        command = commands.getoutput("echo "+contrasena+" | sudo -u root -S "+comando)
    elif instalar == 1:
        filtro = recibido.replace("install ready ","")
        lista = filtro.split(" | ")
        comando = lista[0]
        contrasena = lista[1]
        comando = commands.getoutput("echo "+contrasena+" | sudo -u root -S apt-get install -y "+comando)
    elif desinstalar == 1:
        filtro = recibido.replace("uninstall ready ","")
        lista = filtro.split(" | ")
        comando = lista[0]
        contrasena = lista[1]
        comando = commands.getoutput("echo "+contrasena+" | sudo -u root -S apt-get --purge remove -y "+comando)
    elif fb == 1:
        s = pxssh.pxssh()
        ssh = recibido.replace("fb ","")
        lista = ssh.split()
        localhost = lista[0]
        usuario = lista[1]
        comando = commands.getoutput("crunch 1 12 abcdefghijklmnoprstuvwxyzABCDEFGHIJKLMNOPRSTUVWXYZ0123456789 -c 100")
        dic = comando.split("\n")
        del dic[0:7]
        for diccionario in dic:
            try:
                s.login(localhost,usuario,diccionario)
                cli.send("La contrasena es: "+diccionario)
                break;
            except:
                cli.send("Buscando contrasena: "+diccionario)
    else:
        salida = commands.getoutput(recibido)
        cli.send(salida + "\n")           
if ser == True:
    print("Conexion cerrada")
#Cerramos la instancia del socket cliente y servidor
cli.close()
ser.close()

Y el cliente.py

Código:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#Variables
import socket, os, signal, sys, tarfile, shutil, getpass
host = "192.168.8.100" #casa
port = 8000
def handler(signum, frame):
    os.system("fuser -k -n tcp %s" % port)
    sys.exit()
signal.signal(signal.SIGTSTP, handler)
obj = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Conexion con el servidor. Parametros: IP (puede ser del tipo 192.168.1.1 o localhost), Puerto
obj.connect((host, port))
name_host_server = socket.gethostname()
carpeta_actual_server = os.getcwd()
print("\033[1;32m"+"[+]"+"\033[1;37m"+" conexion establecida")
 
#Creamos un bucle para retener la conexion
while True:
    #Instanciamos una entrada de datos para que el cliente pueda enviar mensajes
    mens = raw_input("\033[1;31m"+host+"\033[1;32m"+"@"+name_host_server+":"+"\033[1;37m"+"$ ")
    if mens == "close":
            os.system("fuser -k -n tcp %s" % port)
            break
    #Con el metodo send, enviamos el mensaje
    obj.send(mens)
    data = obj.recv(1073741824)
    descargar_archivo = data.startswith("download -f ready")
    descargar_carpeta_listo = data.startswith("download -d ready")
    copiar_archivo = mens.startswith("copy -f")
    copiar_carpeta = mens.startswith("copy -d")
    eliminar_copiar_carpeta = data.startswith("Eliminar copy")
    sudo = mens.startswith("root")
    instalar = mens.startswith("install")
    desinstalar = mens.startswith("uninstall")
    #descargar un archivo del servidor al cliente
    if descargar_archivo == 1:
            ruta = raw_input("ruta absoluta, donde se descargará el archivo >>\n")
            archivo_filtro = data.replace("download -f ready|","")
            lista_archivo = archivo_filtro.split("|")
            nombre_archivo = lista_archivo[0]
            restante = nombre_archivo+"|"
            archivo_filtro2 = archivo_filtro.replace(restante,"")
            crear_ruta = ruta+"/"+nombre_archivo
            archivo_descargar = open(crear_ruta,"a")
            archivo_descargar.write(archivo_filtro2)
            archivo_descargar.close()
            print("\033[1;32m"+"[+]"+"\033[1;37m"+"archivo descargado correctamente")
    #copiar un archivo del cliente al servidor
    elif descargar_carpeta_listo == 1: #descargar carpeta del servidor al cliente
            ruta = raw_input("ruta absoluta donde descargarás el directorio >>\n")
            filtro = data.replace("download -d ready |","")
            lista = filtro.split(" | ")
            archivo = lista[0]
            ruta_tmp = lista[1]
            lista_ruta = ruta_tmp.split("/")
            ultimo = len(lista_ruta) -1
            nombre = lista_ruta[ultimo]
            nombre_dir = nombre.split(".")
            nombre_directorio = nombre_dir[0]
            abrir = open(ruta_tmp,"w")
            abrir.write(archivo)
            abrir.close()
            os.system("mkdir "+ruta+"/"+nombre_directorio)
            desempaquetar = tarfile.open(ruta_tmp)
            desempaquetar.extractall(path=ruta+"/"+nombre_directorio+"/")
            eliminar = open(ruta_tmp,"w")
            eliminar.write("00000000")
            eliminar.close()
            os.system("shred -u "+ruta_tmp)
            obj.send("Eliminar download "+ruta_tmp)
            print("\033[1;32m"+"[+]"+"\033[1;37m"+"carpeta descargada correctamente")
    elif copiar_archivo == 1:
            destino_servidor = raw_input("ruta absoluta, donde se copiará el archivo al servidor >>\n")
            filtro = mens.replace("copy -f ","")
            abrir = open(filtro,"rb")
            leer = abrir.read()
            lista = filtro.split("/")
            lon_lista = len(lista)
            ultim_lista = lon_lista-1
            nombre = lista[ultim_lista]
            nombre1 = "".join(nombre.split())
            obj.send("copy -f ready |"+leer+" | "+destino_servidor+" | "+nombre1)
    elif copiar_carpeta == 1:
            destino_servidor = raw_input("ruta absoluta, donde se copiará la carpeta al servidor >>\n")
            filtro = mens.replace("copy -d ","")
            lista = filtro.split("/")
            lon_lista = len(lista)
            ultim_lista = lon_lista-1
            directorio = lista[ultim_lista]
            directorio1 = "".join(directorio.split())
            tmp = "/tmp/"+directorio1
            tar = "/tmp/"+directorio1+".tar.bz2"
            comprimir = shutil.make_archive(tmp,"bztar",filtro)
            abrir = open(tar,"rb")
            leer = abrir.read()
            obj.send("copy -d ready |"+leer+" | "+destino_servidor+" | "+directorio1)
            print("\033[1;32m"+"[+]"+"\033[1;37m"+" Directorio copiado correctamente")
    elif  eliminar_copiar_carpeta == 1:
            filtro = data.replace("Eliminar copy ","")
            os.system("shred -u "+filtro)
    elif sudo == 1:
        contrasena = getpass.getpass("Contraaseña del usuario root: ")
        mensaje = mens.replace("root ","")
        obj.send("sudo "+mensaje+" | "+contrasena)
    elif instalar == 1:
        contrasena = getpass.getpass("Contraseña del usuario root: ")
        mensaje = mens.replace("install ","")
        obj.send("install ready "+mensaje+" | "+contrasena)
        while data == "error sudo install":
            contrasena = getpass.getpass("Contraseña del usuario root: ")
            pass
    elif desinstalar == 1:
        contrasena = getpass.getpass("Contraseña del usuario root: ")
        mensaje = mens.replace("uninstall ","")
        obj.send("uninstall ready "+mensaje+" | "+contrasena)
    elif mens == "man":
        print("""
            """+"\033[1;31m"+"""-t"""+"\033[1;37m"+""" [texto] : Envía un mensaje por la terminal.\n
            """+"\033[1;31m"+"""-m --error"""+"\033[1;37m"+""" "[texto]" : Muestra un diálogo de error.\n
            """+"\033[1;31m"+"""-m --info"""+"\033[1;37m"+""" "[texto]" : Muestra un diálogo de información.\n
            """+"\033[1;31m"+"""-m --input"""+"\033[1;37m"+""" "[texto]" : Muestra un diálogo de entrada de texto.\n
            """+"\033[1;31m"+"""-m --question"""+"\033[1;37m"+""" "[texto]" : Muestra un diálogo de pregunta.\n
            """+"\033[1;31m"+"""-m --alert"""+"\033[1;37m"+""" "[texto]" : Muestra un diálogo de alerta.\n
            """+"\033[1;31m"+"""-m --notification"""+"\033[1;37m"+""" "[texto]" : Muestra un diálogo de notificación.\n
            """+"\033[1;31m"+"""download -f"""+"\033[1;37m"+""" [ruta del archivo del servidor a descargar] : Descarga un archivo del servidor al cliente.\n
                Cuando lo ejecutes, te preguntará donde quieres que se guarde el archivo.\n
                    """+"\033[1;31m"+"""$"""+"\033[1;37m"+""" download -f /home/administrador/Imágenes/cleanet.png
                    ruta absoluta, donde se descargará el archivo """+"\033[1;31m"+""">>"""+"\033[1;37m"+"""
                    /home/administrador/Escritorio\n
                    [!]
            """+"\033[1;31m"+"""download -d"""+"\033[1;37m"+""" [ruta del directorio del servidor a descargar] : Descarga un directorio del servidor al cliente.\n
                Cuando lo ejecutes, te preguntará donde quieres que se guarde el directorio.\n
                    """+"\033[1;31m"+"""$"""+"\033[1;37m"+""" download -d /home/administrador/scripts\n
                    ruta absoluta, donde descargarás el directorio """+"\033[1;31m"+""">>"""+"\033[1;37m"+"""
                    /home/administrador/Escritorio\n
            """+"\033[1;31m"+"""copy -f"""+"\033[1;37m"+""" [ruta del archivo del cliente para copiarlo al servidor] : copia un archivo del cliente al servidor.\n
                Cuando lo ejecutes, te preguntará donde quieres que se guarde el archivo.\n
                    """+"\033[1;31m"+"""$"""+"\033[1;37m"+""" copy -f /home/administrador/conexion.py\n
                    ruta absoluta, donde se copiará el archivo al servidor"""+"\033[1;31m"+""">>"""+"\033[1;37m"+"""
                    /home/administrador/Documentos\n
            """+"\033[1;31m"+"""copy -d"""+"\033[1;37m"+""" [ruta del directorio del cliente para copiarlo al servidor] : copia un directorio del cliente al servidor.\n
                Cuando lo ejecutes, te preguntará donde quieres que se guarde el archivo.\n
                    """+"\033[1;31m"+"""$"""+"\033[1;37m"+""" copy -d /home/administrador/actividades \n
                    ruta absoluta, donde se copiará el archivo al servidor"""+"\033[1;31m"+""">>"""+"\033[1;37m"+"""
                    /home/administrador/Documentos \n

                [!] Cuando se haga una transferencia de archivo el tamaño máximo es de 1GB
                [!] Al introducir las rutas, no deben de tener un '/' al final         
            """)
    else:
        print(data)
#Cerramos la instancia del objeto servidor
obj.close()
#Imprimimos la palabra Adios para cuando se cierre la conexion
print("Conexion cerrada")

En el servidor.py, la variable server lo pongo vacio y le asigno el puerto 8000
Código:
import socket, os, getpass, shutil, shlex, commands, tarfile, subprocess, numpy
from pexpect import pxssh
import signal
from subprocess import Popen, PIPE
name_host_server = getpass.getuser()
carpeta_actual_server = os.getcwd()
#instanciamos un objeto para trabajar con el socket
ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = "" #inti
port = 8000
def handler(signum, frame):
    os.system("fuser -k -n tcp %s" % port)
signal.signal(signal.SIGTSTP, handler)
#Puerto y servidor que debe escuchar
ser.bind((server, port))
#Aceptamos conexiones entrantes con el metodo listen. Por parámetro las conexiones simutáneas.
ser.listen(1)
y en el cliente, la ip 127.0.0.1 (localhost) y el puerto 8000
Código:
import socket, os, signal, sys, tarfile, shutil, getpass
host = "127.0.0.1" #casa
port = 8000
def handler(signum, frame):
    os.system("fuser -k -n tcp %s" % port)
    sys.exit()
signal.signal(signal.SIGTSTP, handler)
obj = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Conexion con el servidor. Parametros: IP (puede ser del tipo 192.168.1.1 o localhost), Puerto
obj.connect((host, port))
name_host_server = socket.gethostname()
carpeta_actual_server = os.getcwd()
print("\033[1;32m"+"[+]"+"\033[1;37m"+" conexion establecida")

El funcionamiento va bien, en LAN, pero mi objetivo, es que funcione a traves de ip's publicas (WAN), (siempre y cuando el cliente-servidor esten encendidos). Para ello me informe de que se necesitaba abrir puertos en mi router.

Yo tengo un HUAWEI B315, aquí la imagen del puerto abierto:
https://drive.google.com/file/d/1i2-nF3wRkw8H93MIIXdY9O6OMBZrcDGO/view?usp=sharing

Una vez hecho este paso, modifique un el codigo cliente-servidor para la conexion.
Servidor.py
Código:
import socket, os, getpass, shutil, shlex, commands, tarfile, subprocess, numpy
from pexpect import pxssh
import signal
from subprocess import Popen, PIPE
name_host_server = getpass.getuser()
carpeta_actual_server = os.getcwd()
#instanciamos un objeto para trabajar con el socket
ser = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server = "85.119.xxx.xxx" #inti
port = 8000
def handler(signum, frame):
    os.system("fuser -k -n tcp %s" % port)
signal.signal(signal.SIGTSTP, handler)
#Puerto y servidor que debe escuchar
ser.bind((server, port))
#Aceptamos conexiones entrantes con el metodo listen. Por parámetro las conexiones simutáneas.
ser.listen(1)
 
#Instanciamos un objeto cli (socket cliente) para recibir datos
cli, addr = ser.accept() 

Cliente.py
Código:
import socket, os, signal, sys, tarfile, shutil, getpass
host = "176.87.xxx.xxx" #casa
port = 8000
def handler(signum, frame):
    os.system("fuser -k -n tcp %s" % port)
    sys.exit()
signal.signal(signal.SIGTSTP, handler)
obj = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
#Conexion con el servidor. Parametros: IP (puede ser del tipo 192.168.1.1 o localhost), Puerto
obj.connect((host, port))
name_host_server = socket.gethostname()
carpeta_actual_server = os.getcwd()
print("\033[1;32m"+"[+]"+"\033[1;37m"+" conexion establecida")
 

El caso es que lo probé (ambos PC's encendidos) y no me funcionaba, me daba el error

Servidor
Citar
Traceback (most recent call last):
  File "servidor.py", line 22, in <module>
    ser.bind((server, port))
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address

Cliente
Citar
Traceback (most recent call last):
  File "servidor.py", line 22, in <module>
    ser.bind((server, port))
  File "/usr/lib/python2.7/socket.py", line 228, in meth
    return getattr(self._sock,name)(*args)
socket.error: [Errno 99] Cannot assign requested address

El caso, es que lo que puede estar pasando es que, el router de mi casa tiene el puerto abierto, pero el otro posiblemente no lo tenga?

Gracias de antemano!!
157  Programación / Scripting / Re: Compartir archivos desde python a un equipo remoto en: 26 Marzo 2019, 23:26 pm
Buenos días!
Me gustaría saber cómo podría transferir una serie de ficheros de texto desde mi pc de Windows a un PC MAC.

He encontrado información y ya tengo importadas algunas librerías, a pesar de los ejemplos que he visto por la red, no me ha quedado claro como hacerlo.


Espero que puedan ayudarme! un saludo
Hola, lo que quieres hacer, es una conexion cliente-servidor Sockets. Te recomiendo que veas este link: https://www.google.es/search?ei=tKaaXKXzKMfYaNSxgLAF&q=conexion+socket+python&oq=conexion+socket+python&gs_l=psy-ab.3..0i22i30j0i22i10i30.968.1871..2094...0.0..0.180.1000.0j7......0....1..gws-wiz.......0i71j35i39j0.2Tv4NGqtKQU
158  Sistemas Operativos / GNU/Linux / Re: ¿Linux Parrot es mejor que kali? en: 25 Marzo 2019, 09:12 am
Hola. Esto es gusto de cada uno, el parrot es verdad que tiene unos colores muy atractivos (me encanta el loro multicolor de fondo de escritorio), y hay muchas herramientas. Pero en cambio Kali linux, tiene un arsenal de herramientas, tanto de hacking cómo forenses. Yo creo que los profesionales utilizan Kali Linux, por su gran cantidad de herramientas.

Enviado desde mi VTR-L09 mediante Tapatalk
159  Comunicaciones / Redes / ¿Se puede sacar la sumascara de una ip? en: 24 Marzo 2019, 16:24 pm
Hola, estoy haciendo un firewall con python, y estoy en el proceso de bloquear una web, y he pensado de hacer subnetting, pero, yo solamente sé la IP de un sitio web, y no me bridan el prefijo [lo obtengo de nslookup]. Al hacer subneteo se puede hacer cuando tienes:
  • 1. El numeros de hosts de cada subred
  • 2. El numero de subredes
  • 2. La IP con el prefijo de red.
¿Pero es posible saber el prefijo de red para después hacer el subneteo? o hacer subneteo solamente con IP.

Esto me gustaría hacerlo, ya que si se la IP de una web, y mediante subneteo saber la IP de red de cada subred, podría bloquear todas las IP's que dan acceso a cuya web.

Gracias de antemano.
160  Informática / Hardware / Porque mi ubuntu 18.04 en un disco duro externo XFS no arranca en mi windows 10? en: 20 Diciembre 2018, 20:19 pm
Hola, he instalado ubuntu 18.04 LTS en mi disco duro externo, durante la instalación en las particiones no me dejaba crear con el sistema de archivo ext2/3/4 y ZFS, por la cual instale con el sistema de archivos XFS, me fue todo bien, lo instalé en un ordenador que tenia instalado Ubuntu (uno viejo que tenia). pero, al arrancar mi disco duro externom en mi windows 10, no me arranca.

Me he informado y el sistema de archivos XFS, no es compatible con windows, puede ser por eso? Auque no es raro ya que estoy arrancando desde un disco duro externo, y no depende de windows?

Gracias
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines