Servidor Socket de practica Bruteforce (Versión 2.0)

  • 0 Respuestas
  • 198 Vistas

0 Usuarios y 1 Visitante están viendo este tema.

Conectado R.altk#6050

  • *
  • Underc0der
  • Mensajes: 3
  • Actividad:
    16.67%
  • Country: ar
  • Reputación 0
    • Ver Perfil

                             

Hola, este es mi tercer post, en esta ocasión les traigo el Servidor con Socket 2.0 con mayor seguridad para experimentar y practicar tus broteforces.
≡¿Por que haces esto si no son buenos códigos?                                               
≡ .1 Hago esto para la gente que recién esta empezando en estos temas, así       
≡  experimentan y aprenden, no son tan buenos códigos por que no es necesario.
≡¿Harás otra parte con el servidor con mas seguridad?                                       
≡ .2 Posiblemente, todo depende de mi tiempo y ganas.
                                   
- Gracias a mi amigo M4 por darme permiso de usar la función de captcha, créditos para él.



Me lo intente currar un poco para que realmente les pueda ayudar, si comentan y dan su opinión lo agradecería mucho.
Si tienen algún problema con el código no duden en comentarme para que se los resuelva, posiblemente de error por la tabulación, aseguraos de ponerlos bien jeje
si gustan pueden poner en los comentarios que quieren que traiga la próxima vez, si se hacerlo y dispongo del tiempo se los puedo traer
Versión 1.0 del Servidor: underc0de.org/foro/python/python-codigo-servidor-basico-para-practicar-bruteforce-con-socket/

Código: [Seleccionar]
#!/usr/bin/env python
import socket,os,random,string

host="0.0.0.0"
port=1879
password="connor" 

s=socket.socket(socket.AF_INET,  socket.SOCK_STREAM)
s.bind((host, port))

def clear(): #La famosa funcion
    if os.name == "nt":
        os.system("cls")
    else:
        os.system("clear")

clear()

print("{*} Servidor encendido.")
sgd = 1

def capcha():  #funcion del captcha < Creditos a M4
a=random.choices(string.ascii_uppercase, k=4)
print("Capcha solicitado "+"".join(a))
return a
while 1:
    s.listen(2)
    conn, addr = s.accept()
    clip = addr
    print("{*} Alguien se ha conectado al servidor: "+str(clip)+"\n")

    capvalue="".join(capcha())
    conn.send(capvalue.encode("utf8"))
    conn.send("\nCapcha> ".encode("utf8"))
    try:
        capclient=conn.recv(1024).decode("utf8")
        capclient=capclient.replace("\n","") 
        if str(capclient)==capvalue:
            print("{*} El usuario entro con el captcha correcto.")
            conn.send("{*} Captcha correcto\n".encode("utf8"))
            while True:
                conn.send("Pass> ".encode("utf8"))
                data=conn.recv(1024).decode("utf8")
                data=data.replace("\n", "")
                if data==password or str(data)==password:
                    conn.send("GG, pass correcta".encode("utf8"))
                    print("El usuario uso la contraseña correcta")
                    break
                else:
                    print("Un user fracaso al poner la contraseña: "+data+"\nIntento numero: "+str(sgd)+"\n")
                    sgd = sgd + 1
                    if sgd==5:
                        conn.send("{*} El Servidor se cierra por ataque de bruteforce".encode("utf8"))
                        print("{*} El servidor fue detenido por ataque de bruteforce\n")
                        print("{*} La IP del posible atacante: " + str(clip))
                        break
                        conn.close()
                        s.close()
                    else:
                        continue
                        conn.send("Contraseña incorrecta\n".encode("utf8"))
        else:
            print("El usuario ha fallado el capcha:"+ capclient)
            conn.send("Failed capcha\n".encode("utf8"))
            conn.close()
    except:
        print("El user se ha desconectado")
        conn.close()

Sé que no es el mejor código del mundo, pero sirve para practicar, el próxima hare algo que sea  mas parecido a un hacker de películas, ya verán jaja, quizás me tarde mas en terminarlo y etc.
Espero que te guste el código y adiós, cuidate.  ;) ;D

Edit: Si no sabes como hacer el cliente acá te dejo la base y te explico mas o menos de que va, en la proxima versión que haga explicare a detalle.

Código: [Seleccionar]
import socket #Importamos Socket, es importante ya que sin eso basicamente no funcionaria nada

host="0.0.0.0" #Aca es donde ponemos la IP, ojo, tenes que poner la misma que pusiste en el servidor, pero igual es mejor dejarlo como esta

port="24" #Lo mismo con la IP, si quieren este pueden cambiarlo, si lo cambian y dice algo como "Permiso denegado" es que no les deja usar ese puerto

s=socket.socket(socket.AF_INET, socket.SOCK_STREAM) #Base del socket (no recomiendo tocar, pero si quieren pueden buscar mejores opciones)
 s.connect((host, port)) #Esto da la orden que se tiene que conectar al puerto e ip


#Datos extras:
#Recomiendo usar nc para ver el servidor como se muestra en la primera imagen en kali linux, se usa de este modo: nc (IP) (PUERTO) ejemplo: nc 0.0.0.0 80
#Recomiendo que si tienen algun fallo o duda me lo dejen en los comentarios ya que se intentare echarles un cable
#Lo mas posible es que de error en los codigos por que quizas esten mal tabulados, ya que al copiar y pegar se modifican las tabulaciones para cualquier lado
#Recuerda que socket es un modulo del cual es algo complicado de usar, pero con tiempo y practica se puede dominar, no todo sale a la primera, lo mas probable es que de error al principio tu cliente
#Tambien recuerda que 0.0.0.0 es igual a localhost, es decir, tu amigo no podra ejecutar el servidor y vos hacer el bruteforce, para eso estan cosas como ngrok del cual podes buscar tutoriales
#de como usarlo, pero no recomiendo usarlo, ya que ngrok para hacer bruteforce al enviar muchas peticiones se cierra


« Última modificación: Abril 03, 2021, 08:25:26 pm por R.altk#6050 »