Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Garfield07 en 14 Septiembre 2010, 18:33 pm



Título: Projecto EvilBruteforce
Publicado por: Garfield07 en 14 Septiembre 2010, 18:33 pm
Buenas, estoy trabajando en un bruteforce de Telnet, llamado Evil Bruteforce. El caso es que para hacerlo primero hice un server telnet, solo que en el port 31337, pues es una prueba. Sin embargo, tengo dos problemillas con el server:
1. Presentación: Este, aunque es un fallo sin importancia, me mosquea. Despues del listening, deberia aparecer un letrerito "
  • Esperando cliente...", pero no sale hasta que alguien se conecta. El segundo fallo tiene mas importancia, pero me gustaria saber pork no va...
2. Fallos continuos: Si compilan mi server, este va la primera vez. Solo hay que meter la contraseña para que el bruteforce sea sencillo, pero luego lo  perfeccionare xD. Sin embargo, al correr la segunda vez, suelta un fallo en Binding. Estos fallos se producen porque no se tienen privilegios para hacer el binding (puertos bajos), o que el port esta usado. Si el port esta usado es porque: o no cerre bien el port cuando acabe el primer programa, o otro programa lo esta usando (el primero no se ha cerrado y sigue operativo). Para resolver estas dos cuestiones cree una funcion de acabado de programa, y quite el bucle for () infinito. Aun asi, no va.

Alguien me puede ayudar???
Código
  1. #include <stdio.h>
  2.  
  3. #include <stdlib.h>
  4.  
  5. #include <string.h>
  6.  
  7. #include <sys/socket.h>
  8.  
  9. #include <arpa/inet.h>
  10.  
  11.  
  12.  
  13. int sockfd, newsock;
  14.  
  15.  
  16.  
  17. int finalizar (int state)
  18.  
  19. {
  20.  
  21.    printf("[+] Finalizando...");
  22.  
  23.    close (sockfd);
  24.  
  25.        close (newsock);
  26.  
  27.    printf("\t[OK]\n\n");
  28.  
  29.    exit (1);
  30.  
  31. }
  32.  
  33.  
  34.  
  35. int main ()
  36.  
  37. {
  38.  
  39. printf ("\n");
  40.  
  41. printf ("#*************************************#\n");
  42.  
  43. printf ("# -[ EvilBruteforce.0 - by Sagrini ]- #\n");
  44.  
  45. printf ("#  ---------------------------------  #\n");
  46.  
  47. printf ("#          Telnet Bruteforce          #\n");
  48.  
  49. printf ("#*************************************#\n\n\n");
  50.  
  51.  
  52.    struct sockaddr_in host, client;
  53.  
  54.    int a=sizeof (struct sockaddr);
  55.  
  56.    char pass [30];
  57.  
  58.  
  59.  
  60.    printf("[+] Creando el Socket...");
  61.  
  62.    if ((sockfd=socket (2, 1, 0))!=-1)
  63.  
  64.        printf ("[OK]\n");
  65.  
  66.    else
  67.  
  68.    {
  69.  
  70.        printf("[FAIL]\n");
  71.  
  72.        finalizar (1);
  73.  
  74.    }
  75.  
  76.    host.sin_port=htons(31337);
  77.  
  78.    host.sin_family=AF_INET;
  79.  
  80.    host.sin_addr.s_addr=0;
  81.  
  82.    memset (host.sin_zero, 0, 8);
  83.  
  84.  
  85.  
  86.    printf ("[+] Bindeando...");
  87.  
  88.    if(bind(sockfd,(struct sockaddr*)&host,sizeof(host))==-1)
  89.  
  90.    {
  91.  
  92.        printf("\t[FAIL]\n");
  93.  
  94.        finalizar (1);
  95.  
  96.    }
  97.  
  98.    printf ("\t[OK]\n");
  99.  
  100.  
  101.  
  102.    printf ("[+] Listening...");
  103.  
  104.    if(listen(sockfd,5)==-1)
  105.  
  106.    {
  107.  
  108.        printf("\t[FAIL]\n");
  109.  
  110.        finalizar (1);
  111.  
  112.    }
  113.  
  114.    else
  115.  
  116.        printf("\t[OK]\n");
  117.  
  118.  
  119.  
  120.    printf("[+] Esperando cliente...");
  121.  
  122.    if((newsock=accept(sockfd, (struct sockaddr*)&client, &a))==-1)
  123.  
  124.    {
  125.  
  126.        printf("[FAIL]\n");
  127.  
  128.        finalizar (1);
  129.  
  130.    }
  131.  
  132.    else
  133.  
  134.        printf("[OK]\n\n");
  135.  
  136.  
  137.  
  138.    printf("[+] Conexion establecida.\n");
  139.  
  140.    send (newsock, "Password: ", 11, 0);
  141.  
  142.    recv (newsock, &pass, 30, 0);
  143.  
  144.    if (strcmp (pass, "strike\n")==1)
  145.  
  146.    {
  147.  
  148.        printf (" ==> Access granted\n\n");
  149.  
  150.        send (newsock, " ==> Access granted.\n\n", 23, 0);
  151.  
  152.    }
  153.  
  154.    else
  155.  
  156.    {
  157.  
  158.        printf (" ==> Access denied.\n\n");
  159.  
  160.        send (newsock, " ==> Access denied.\n\n", 22, 0);
  161.  
  162.    }
  163.  
  164.    finalizar (0);
  165.  
  166. }
  167.  
  168.  

Evidentemente, este code es bastante simple, pero no funciona como deberia. Pueden ayudarme?
Saludos y muchas gracias.


Título: Re: Projecto EvilBruteforce
Publicado por: Jeypestylerz en 18 Septiembre 2010, 17:48 pm
Hola te recomiendo borrar el server que has creado y hacer uno en el puerto 23
Espero que alguien te ayude, tu programa me parece interesante pero soy wannabe, solo programo archivos por lotes (batch) xD


Título: Re: Projecto EvilBruteforce
Publicado por: Jaixon Jax en 18 Septiembre 2010, 20:59 pm
  pAra la primera, deberia aparecer el letrero a no ser que exista un error al crear socket ...

  La segunda accept debe estar en un Bucle asi despues que alguien se conecta vuelve a espeerar conexion sino despues que acepte la primera conexion sale del main


Título: Re: Projecto EvilBruteforce
Publicado por: Garfield07 en 18 Septiembre 2010, 22:09 pm
Jaja les respondo: el server era algo simple, de pruebas... no queria usar el 23 para no estar todo el rato con el sudo xD... y a mi no me aparece el letrero aunque sea correcto.. estoy extrañado. Compilen, y diganme sobre que. Por cierto, en Windows si va el code y sale el letrero, pero en Linux Ubuntu 10.04 no...
Y otra cosa.. ya lo se, es un server de pruebas. Quite el accept para que no hubiese errores al desconectarse: si cerraba el programa dentro de un bucle infinito con los sockets abiertos, podria ser que no se cerrasen bien... por eso quite el bucle. Asi cierro conex. , cierro sockets y return... es una cuestion insignificante...

PD: muchisimas gracias por contestar, veran, este tema ya se estaba llendo y como coincidio con varios mensajes mas, el mio directamente se fue al quinto puesto, y nadie lo miro. Ya casi era un post viejo muchas gracias pues sigo con la duda...

Bueno, añado, use el mismo code para otro programa, y tenia los mismos problemas... las funciones estan mal... en que?