Test Foro de elhacker.net SMF 2.1

Seguridad Informática => Seguridad => Mensaje iniciado por: Kr0pl0its en 16 Octubre 2016, 23:39 PM

Título: Tengo Una Idea (Attack Broken locks)
Publicado por: Kr0pl0its en 16 Octubre 2016, 23:39 PM
Saludos, Necesito Un Consejo Acerca De Un Programa Que Eh Estado Desarrollando En Estos Días, Que Tiene Como Función Realizar Un Procedimiento Similar a El De Fuerza Bruta Con La Diferencia De Que Debería Funcionar De La Siguiente Manera:    El Programa Contiene Todas Las Letras,Símbolos y Números Posibles. Realiza Una Lista De Cien Millones De Combinaciones ilógicas y Luego Utiliza Un Procedimiento Que Le Permitirá Comparar Todos Los Caracteres de Manera Que Buscara Combinaciones Lógicas (Combinaciones Posibles Para Lograr Acceder) Luego Las Va a Codificar Siguiendo Ciertas Instrucciones  Que Permitirán Descifrar y Almacenar a Las Mejores Combinaciones Es Decir El Programa Mete Una Lista de Contraseña Cifradas Siguiendo El Algoritmo de Cifrado del objetivo (Se Debe Especifica) Realizando Lo Que Yo Llamaría Broken locks... En Fin, Quiero Decir El Programa Rompe a La Fuerza Utilizando El Procedimiento de Cryptografia del objetivo (Es Decir Solo Funciona En Sistemas Débiles ) Busca Las Vulnerabilidades y Genera Combinaciones que permiten acceder a el objetivo (Debe Meterse la lista de forma automática y los patrones deben ser cifrados...) este procedimiento puede tardar un poco, pero con las instrucciones y manejo correcto puede funcionar sin ningún problema.. Eh Estado Pensado en Utilizar Python... Solo Necesito Unos Consejos..  ;D Saludos
Código (cpp) [Seleccionar]

#include <iostream>
#include <conio.h>
#include <windows.h>
#include <stdlib.h>
#include <stdio.h>
#include <string>
#include <time.h>



void encriptarArchivo();
void desencriptarArchivo();
using namespace std;
int main ()
{


char cadena[5185]={'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','0','1','2','3','4','5','6','7','8','9',
        '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','0','1','2','3','4','5','6','7','8','9',
'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','0','1','2','3','4','5','6','7','8','9',
        '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','0','1','2','3','4','5','6','7','8','9',
'/','-','_','#','%'};




   
 int cont=0;
 
     FILE *arch;
 
 char c;
    int a,e,i,o,u; //contadores
   char digito[0];
  char resultado[0];  //array donde vamos a guardar los resultados

   unsigned char caracter='a';  //variable usada para las compraraciones
   int ok=0;
   int y=0;
   int j=0;
   int k=0;
 


 
 
while("pause")
    {
system ("title Brutal");
system("color 9a");

arch=fopen("datos.txt","a");




 

srand(time(NULL));


while (cont!=100000){ // Numero de Cifras a Generar

   

for(u=0;u<=10;u++)
{


   
   for(y=0;y<4;y++){  //bucle que compara y encuentra el 1º caracter
   caracter=(char)y;
        for(j=0;j<8;j++){  //bucle que compara y encuentra el 2º caracter
             caracter=(char)j;
             for(k=0;k<16;k++){  //bucle que compara y encuentra el 3º caracter
                   caracter=(char)k;
                   if(cadena[0 > 2]==caracter){
                       resultado[0 > 4]=caracter;
                       ok++;
                       if(ok==0){break;}
                   }
                   caracter++;            
             
             if(cadena[0 > 4]==caracter){
                 resultado[0 > 8]=caracter;
                 ok++;
             }
             caracter++;
        }
        if(cadena[0 > 8]==caracter){
            resultado[0 > 16]=caracter;
            ok++;
        }

 if(cadena[0 < 2]==caracter){
                       resultado[0 < 4]=caracter;
                       ok++;
                       if(ok==0){break;}
                   }
                   caracter++;            
             }
             if(cadena[0 < 4]==caracter){
                 resultado[0 < 8]=caracter;
                 ok++;
             }
             caracter++;
        }
        if(cadena[0 < 8]==caracter){
            resultado[0 < 16]=caracter;
            ok++;
        }
}
        caracter++;


   
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\n\t\t ");


fputs(resultado, arch);


caracter++;


   printf("\n\t");
 

}
}


  getch ();
}



No Eh Hecho Mucho En El Programa Le Faltan Las Funciones Más Importantes...
Título: Re: Tengo Una Idea (Attack Broken locks)
Publicado por: engel lex en 17 Octubre 2016, 00:45 AM
no mezcles librerías de C con las de C++

Código (cpp) [Seleccionar]
#include <iostream>
#include <conio.h> //no la usas aquí, no la uses en general... quitala
#include <windows.h> //no la usas aqui, si puedes evitala, te limita la plataforma
#include <stdlib.h>   //c++ -> <cstdlib>
#include <stdio.h> //c++ -> <cstdio> aunque ya usas iostream
#include <string> 
#include <time.h> //<ctime>


char cadena[5185]= ...
por que usas 5185 espacios? es preferible que la declares del tamaño que usarás... a demás, estás usando la librerís string, no es necesario que uses char directamente aqui


qué es esto? que quieres hacer aquí?
cadena[0 > 2]


en general no comprendo que intenta hacer el sistema... por cierto, no es en general eficiente pasar pot todas las posibilidades y descartar... lo correcto es predecir las posibilidades y evitar en lo absoluto usar cciclos para las no posibles (ya que perderás temipo de calculo descartando)


Título: Re: Tengo Una Idea (Attack Broken locks)
Publicado por: Kr0pl0its en 17 Octubre 2016, 01:00 AM

Código (cpp) [Seleccionar]

#include <iostream>
#include <stdlib.h>
#include <string>
#include <time.h>
#include <cstdlib>


void encriptarArchivo();
void desencriptarArchivo();
using namespace std;
int main ()
{


char cadena[201]={'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','0','1','2','3','4','5','6','7','8','9',
        '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','0','1','2','3','4','5','6','7','8','9',
'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','0','1','2','3','4','5','6','7','8','9',
        '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','0','1','2','3','4','5','6','7','8','9',
'/','-','_','#','%'};




   
 int cont=0;
 
     FILE *arch;
 
 char c;
    int a,e,i,o,u; //contadores
   char digito[0];
  char resultado[0];  //array donde vamos a guardar los resultados

   unsigned char caracter='a';  //variable usada para las compraraciones
   int ok=0;
   int y=0;
   int j=0;
   int k=0;
 


 
 
while("pause")
    {


arch=fopen("datos.txt","a");




 

srand(time(NULL));


while (cont!=100000){ // Numero de Cifras a Generar

   

for(u=0;u<=10;u++)
{


   
   for(y=0;y<4;y++){  //bucle que compara y encuentra el 1º caracter
   caracter=(char)y;
        for(j=0;j<8;j++){  //bucle que compara y encuentra el 2º caracter
             caracter=(char)j;
             for(k=0;k<16;k++){  //bucle que compara y encuentra el 3º caracter
                   caracter=(char)k;
                   if(cadena[0]==caracter){
                       resultado[0]=caracter;
                       ok++;
                       if(ok==0){break;}
                   }
                   caracter++;            
             
             if(cadena[0]==caracter){
                 resultado[0]=caracter;
                 ok++;
             }
             caracter++;
        }
        if(cadena[0]==caracter){
            resultado[0]=caracter;
            ok++;
        }

 if(cadena[0]==caracter){
                       resultado[0]=caracter;
                       ok++;
                       if(ok==0){break;}
                   }
                   caracter++;            
             }
             if(cadena[0]==caracter){
                 resultado[0]=caracter;
                 ok++;
             }
             caracter++;
        }
        if(cadena[0]==caracter){
            resultado[0]=caracter;
            ok++;
        }
}
        caracter++;


   
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\n\t\t ");


fputs(resultado, arch);


caracter++;


   printf("\n\t");
 

}
}


  getch ();
}



soy un  fracaso  :huh: 
[/quote]
Título: Re: Tengo Una Idea (Attack Broken locks)
Publicado por: engel lex en 17 Octubre 2016, 01:13 AM
si eres un fracaso o no, está de tu parte decidirlo

veo que lo haces a los golpes que es el problema, tienes que sentarte con calma, recomiendo  usar una libreta y "simular" el codigo (la salida) que quieres a mano para visualizarlo...

explica paso a paso que se supone que haga (no la explicación que diste, sino realmente paso a paso) para ver si te podemos ayudar...

si, python podría ser util para esto, su manejo de cadenas es efectivo y simple, pero c++, es enormemente más rápido y potente

CitarDe Cien Millones De Combinaciones ilógicas y Luego Utiliza Un Procedimiento Que Le Permitirá Comparar Todos Los Caracteres de Manera Que Buscara Combinaciones Lógicas

100.000.000 de combionaciones son apenas 4 letras (y la mitad de camino de la 5ta) luego de generarlas tardarás x tiempo decidiendo cuales son buenas o no... eso tomará tiempo... y si lo escribes en disco para leerlo desde allí, taradrá una cantida ridicula de tiempo, es preferible que llenes la ram y hacer todo desde allí

Título: Re: Tengo Una Idea (Attack Broken locks)
Publicado por: Kr0pl0its en 17 Octubre 2016, 06:40 AM
Gracias, Me Pondré a Trabajar con calma el programa... cuando lo termine o tenga un avance.. paso código  ;D
Título: Re: Tengo Una Idea (Attack Broken locks)
Publicado por: Kr0pl0its en 20 Octubre 2016, 05:59 AM
Es lo que Hecho Hasta Ahora, me gustaría saber como evitar windows.h

#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <string>
#include <ctime>
#include <fstream>
#include <windows.h>  //quiero evitar esto, pero es la unica forma de que funcione keybd_event();

using namespace std;


int main ()
{


char cadena[201]={'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','0','1','2','3','4','5','6','7','8','9',
         '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','0','1','2','3','4','5','6','7','8','9',
'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','0','1','2','3','4','5','6','7','8','9',
         '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','0','1','2','3','4','5','6','7','8','9',
'/','-','_','#','%'};  //Letras, Numeros y Simbolos a Utilizar.




int cont=0;
char c;
int a,e,i,o,u; //contadores
char digito[0];
char resultado[0];  //array donde vamos a guardar los resultados
unsigned char caracter='a';  //variable usada para las compraraciones
    int ok=0;
    int y=0;
    int j=0;
    int k=0;
 

srand(time(NULL));


while (cont!=100000){ // Numero de Cifras a Generar

 
 
for  (i = 0; cadena[i]!='\0';i++) //se generar toda la cadena para luego descodificar (Criptografia Inversa).
       {
   
   
   
for(u=0;u<=100;u++)
{

for(u=0;u<=100;u++)
{

cadena[i]-=i; //se descodifica
printf("%c ",cadena[i]);

for(u=0;u<=100;u++)
{

for(u=0;u<=100;u++)
{

for(u=0;u<=100;u++)
{

for(u=0;u<=100;u++)
{


for  (e = 0; resultado[e]!='\0';e++) //Se Generan Los Resultados
       {
   

printf("%c ",resultado[rand() % 201]);
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);
printf("\t\t ");
printf ("%c",resultado[rand() % 201]);


       
resultado[e]-=e; //se descodifican los resultados
printf("%c ",resultado[e]);
       
   
keybd_event((BYTE)VkKeyScan(resultado[rand() % 201]), 0, 0, 0); //se escriben en pantalla
keybd_event((BYTE)VkKeyScan(resultado[rand() % 201]), 0, 0, 0);


keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
keybd_event(VK_RETURN, 0, 0, 0); //Levantamos enter
printf("\n\t\t ");


}




}

}

}

}

}

}




}


caracter++; //se siguen generando

    printf("\n\t");
 
  keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
keybd_event(VK_RETURN, 0, 0, 0); //Levantamos enter

}




   getch ();
}


 
 

 
Título: Re: Tengo Una Idea (Attack Broken locks)
Publicado por: MCKSys Argentina en 20 Octubre 2016, 22:22 PM
Si llamas  a las APIs de windows, creo que no puedes prescindir de windows.h, a menos que especifiques el prototipo de la función/es a las que llamas (osea, lo mismo que hace el .h)

Pero bueno, no programo mucho de C/C++.

Saludos!