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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  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 17,737 veces)
fantasma306

Desconectado Desconectado

Mensajes: 28



Ver Perfil
Re: Ataque por fuerza bruta en c++
« Respuesta #20 en: 21 Junio 2011, 18:30 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!

si, eso tambien lo habia pensado, desensamblar el programa victima, ver en que direccion de memoria se guardan los datos, y a partir de ahi crear el programa BruteForce, e ir escribiendo en esas zonas de memoria..., tengo que probarlo :P

pero como escribir en esas zonas de memoria?

saludos


En línea

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

Desconectado Desconectado

Mensajes: 28



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

Ya encontre el error, me da vergüenza decir donde estaba el error  :-[

error de logica en el codigo victima...

bueno aqui os dejo el codigo por si quereis hecharle un vistazo:

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 << "Contraseña: ";
  16. cin >> PAS;
  17. cin.clear();
  18.    }while(usu!=USU || pas!=PAS);
  19. if(usu==USU && pas==PAS)
  20. cout<<"Contraseña CORRECTA"<<endl;
  21.    return 0;
  22. }
  23.  

ATAQUE:
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. getline(user,login,'\n');
  18. while(!pass.eof() && seguir){
  19. getline(pass,pswd,'\n');
  20. SetForegroundWindow((HWND)Consola);
  21. seguir=enviar(login,pswd);
  22. Sleep(300);
  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
  33. if (hCalc != 0){
  34. cout<<"User: "<<login<<endl;
  35. cout<<"Pass: "<<pass<<endl;
  36. SetForegroundWindow(hCalc);
  37.  
  38. /*enviar login*/
  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 pass*/
  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. }
  59.  
  60.  


en la consola de ataque, el ultimo user y pass son los correctos...

solo un pequeño detalle, si en el codigo de la victima, el programa no se cierra, el programa atacante sigue poniendo el users y pass en la consola. Por lo tanto no se podria saber cual es el codigo y el users


En línea

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

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


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

...

Usa getforegroundwindow() para saber si el handle de la ventana ACTIVA es el correcto ( con respecto al obtenido con FindWindow() ) )... si estas en windows ( Obvio por que veo las apis de windows... ) puedes usar SendMessage() para enviar las pulsaciones (teclas y/o texto), de este modo no importa si esta minimazada la ventana u otro estado, SIEMPRE le llegaran las pulsaciones de teclas ( 2do plano ).

En el codigo del proceso enviar deberian usar GetForegroundWindow() para saber si la ventana SUPERIOR esta activa ( focus() ) o es otra, de este modo se invocaria nuevamente a SetForegroundWindow() para establecerle el foro (activa), este es un metodo cutre, usar pipes o SendMessage() son mas factibles ademas de que pueden trabajar en 2do plano.

En Resumen:

Ya que quedan fuera los pipes usa SendMessage() + WM_KEYDOWN + WM_KEYUP + hHandle de la ventana destino ( para asegurar la llegada de las pulsaciones virtuales ) + las constantes Virtual Key Code

Dulces Lunas!¡.
« Última modificación: 21 Junio 2011, 23:39 pm por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
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,425 Último mensaje 15 Agosto 2011, 16:42 pm
por CloudswX
Ataque dirección web fuerza bruta?
Hacking
ItaiMegamisama 5 4,416 Último mensaje 18 Abril 2012, 01:02 am
por Breixo
Ataque fuerza bruta con medusa ! BT 5!
Seguridad
32hacking 2 4,594 Ú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,342 Ú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,655 Último mensaje 14 Abril 2013, 01:35 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines