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

 

 


Tema destacado: Trabajando con las ramas de git (tercera parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Ingeniería Inversa (Moderadores: karmany, .:UND3R:., MCKSys Argentina)
| | |-+  Programa que pide datos de internet.
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Programa que pide datos de internet.  (Leído 3,701 veces)
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Programa que pide datos de internet.
« en: 10 Diciembre 2008, 04:41 am »

Hola! Me topé con un programa que hicieron en la empresa donde trabaja mi viejo, entonces decidí empezar a analizarlo. El programa lo que hace es mostrar una pantalla de Login, entonces un pone su usuario y contraseña, estos se envían y se comprueban en una base de datos en el servidor, el cual lo autentifica.

Empecé a analizar el tráfico del servidor (tengo una cuenta válida) y me di cuenta que el servidor manda los datos sin problemas, osea que la pantalla de login, si pudiera ser pasada, el programa directamente empezaría a recibir datos sin problemas.

Entonces traté de saltearla, aca se me quemaron los papeles (no sabia que hacer), xq me metí con el olly, y traté poniendo un jmp en el codigo del boton "aceptar" para que saltara a la función que carga el programa, pero no pude, cuando lo ensamble y lo guardé, al probarlo crasheo al tratar de apretar el boton aceptar.

No puedo editar los recursos (no se por que), no andan los programas mas comunes con este archivo, está creado en VB 6.

Lo que quiero hacer es encontrar el lugar donde recibe la respuesta del servidor (si es valido o no el login) y hacer que sea siempre verdadera. El tema es que no se que api buscar, alguien tiene una idea???
Un abrazo
APOKLIPTICO

Update: Lo peor de todo! el programa recibe los errores de internet, asi que no los puedo buscar en "referenced text strings" ahh!! it's a nightmare!!
« Última modificación: 10 Diciembre 2008, 04:51 am por APOKLIPTICO » En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Shaddy


Desconectado Desconectado

Mensajes: 722


one_bit_manipulator()


Ver Perfil WWW
Re: Programa que pide datos de internet.
« Respuesta #1 en: 10 Diciembre 2008, 06:36 am »

Hola! Me topé con un programa que hicieron en la empresa donde trabaja mi viejo, entonces decidí empezar a analizarlo. El programa lo que hace es mostrar una pantalla de Login, entonces un pone su usuario y contraseña, estos se envían y se comprueban en una base de datos en el servidor, el cual lo autentifica.

Empecé a analizar el tráfico del servidor (tengo una cuenta válida) y me di cuenta que el servidor manda los datos sin problemas, osea que la pantalla de login, si pudiera ser pasada, el programa directamente empezaría a recibir datos sin problemas.

Entonces traté de saltearla, aca se me quemaron los papeles (no sabia que hacer), xq me metí con el olly, y traté poniendo un jmp en el codigo del boton "aceptar" para que saltara a la función que carga el programa, pero no pude, cuando lo ensamble y lo guardé, al probarlo crasheo al tratar de apretar el boton aceptar.

No puedo editar los recursos (no se por que), no andan los programas mas comunes con este archivo, está creado en VB 6.

Lo que quiero hacer es encontrar el lugar donde recibe la respuesta del servidor (si es valido o no el login) y hacer que sea siempre verdadera. El tema es que no se que api buscar, alguien tiene una idea???
Un abrazo
APOKLIPTICO

Update: Lo peor de todo! el programa recibe los errores de internet, asi que no los puedo buscar en "referenced text strings" ahh!! it's a nightmare!!

Y bueno hay muchos métodos, igual no para por referencias pero si cuando coge el texto, si está en VB 6 hay un plugin que se llama "puntos mágicos" o algo así, que pone un breakpoint en VB5 o VB6 (o el punto H), para cada vez que se produzca un evento que pare, así cuando le des al botón de aceptar pues eso.

Salu2...
En línea

"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Programa que pide datos de internet.
« Respuesta #2 en: 10 Diciembre 2008, 17:51 pm »

Si bueno, pero en realidad no necesito mucho eso, xq con vbdecompiler mire las direcciones de cada uno de los controles, y puse un bp en el "push ebp"...
Ahi tengo que ir apretando F8 forever hasta que aparezca una comparacion o algo asi?
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Shaddy


Desconectado Desconectado

Mensajes: 722


one_bit_manipulator()


Ver Perfil WWW
Re: Programa que pide datos de internet.
« Respuesta #3 en: 10 Diciembre 2008, 19:38 pm »

Si bueno, pero en realidad no necesito mucho eso, xq con vbdecompiler mire las direcciones de cada uno de los controles, y puse un bp en el "push ebp"...
Ahi tengo que ir apretando F8 forever hasta que aparezca una comparacion o algo asi?


y no porque probablemente lo que hará será enviar unos datos y comprobarlo en una bse de datos de MySQL o algo así, por lo tnato no verás ninguna compración.

Salu2...
En línea

"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Programa que pide datos de internet.
« Respuesta #4 en: 11 Diciembre 2008, 00:22 am »

A lo que me refiero, es el jump condicional, que continua con la función de cargar, en definitiva, quiero saltearme la pantalla de login, o bien que cujando ponga acpetar, directamente sea o no correcto el nombre de usuario, que salte a la pantalla principal...
Como hago para saltearmela?
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Shaddy


Desconectado Desconectado

Mensajes: 722


one_bit_manipulator()


Ver Perfil WWW
Re: Programa que pide datos de internet.
« Respuesta #5 en: 11 Diciembre 2008, 05:14 am »

A lo que me refiero, es el jump condicional, que continua con la función de cargar, en definitiva, quiero saltearme la pantalla de login, o bien que cujando ponga acpetar, directamente sea o no correcto el nombre de usuario, que salte a la pantalla principal...
Como hago para saltearmela?

Bueno pues cuando se hace la función Load, miras la direccion del evento y en vez de cargar el form de login cargas el principal y listo..
En línea

"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Programa que pide datos de internet.
« Respuesta #6 en: 11 Diciembre 2008, 19:33 pm »

Voy a probarlo y te cuento como me va, gracias!...
En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
APOKLIPTICO


Desconectado Desconectado

Mensajes: 3.871


Toys in the attic.


Ver Perfil
Re: Programa que pide datos de internet.
« Respuesta #7 en: 11 Diciembre 2008, 19:50 pm »

Okay, el problema es que no encuentro el evento Form_Load ni en la pantalla de login, ni en la principal (que es un form MDI), pero encuentro una funcion que se llama "cargar", entonces reemplazo el "push ebp" de la funcion cargar del form de login, y le hago un "jmp 005AB520" que es la funcion "cargar" del form MDI, pero me tira access violation...
Todo esto usando el ollydbg shadow y el vbdecompiler para conocer las direcciones de las funciones, eventos, etc...
Alguna otra idea?

PD: esta es el native code del evento click del boton "aceptar".

Código
  1. 004EF980     55             PUSH EBP
  2. 004EF981     8BEC           MOV EBP,ESP
  3. 004EF983     83EC 0C        SUB ESP,0C
  4. 004EF986   . 68 36CC4000    PUSH <JMP.&MSVBVM60.__vbaExceptHandler>  ;  SE handler installation
  5. 004EF98B   . 64:A1 00000000 MOV EAX,DWORD PTR FS:[0]
  6. 004EF991   . 50             PUSH EAX
  7. 004EF992   . 64:8925 000000>MOV DWORD PTR FS:[0],ESP
  8. 004EF999   . 83EC 58        SUB ESP,58
  9. 004EF99C   . 53             PUSH EBX
  10. 004EF99D   . 56             PUSH ESI
  11. 004EF99E   . 57             PUSH EDI
  12. 004EF99F   . 8965 F4        MOV DWORD PTR SS:[EBP-C],ESP
  13. 004EF9A2   . C745 F8 F03940>MOV DWORD PTR SS:[EBP-8],Estacion.004039>
  14. 004EF9A9   . 8B75 08        MOV ESI,DWORD PTR SS:[EBP+8]
  15. 004EF9AC   . 8BC6           MOV EAX,ESI
  16. 004EF9AE   . 83E0 01        AND EAX,1
  17. 004EF9B1   . 8945 FC        MOV DWORD PTR SS:[EBP-4],EAX
  18. 004EF9B4   . 83E6 FE        AND ESI,FFFFFFFE
  19. 004EF9B7   . 56             PUSH ESI
  20. 004EF9B8   . 8975 08        MOV DWORD PTR SS:[EBP+8],ESI
  21. 004EF9BB   . 8B0E           MOV ECX,DWORD PTR DS:[ESI]
  22. 004EF9BD   . FF51 04        CALL DWORD PTR DS:[ECX+4]
  23. 004EF9C0   . 8B16           MOV EDX,DWORD PTR DS:[ESI]
  24. 004EF9C2   . 33FF           XOR EDI,EDI
  25. 004EF9C4   . 56             PUSH ESI
  26. 004EF9C5   . 897D E8        MOV DWORD PTR SS:[EBP-18],EDI
  27. 004EF9C8   . 897D E4        MOV DWORD PTR SS:[EBP-1C],EDI
  28. 004EF9CB   . 897D D4        MOV DWORD PTR SS:[EBP-2C],EDI
  29. 004EF9CE   . 897D C4        MOV DWORD PTR SS:[EBP-3C],EDI
  30. 004EF9D1   . 897D B4        MOV DWORD PTR SS:[EBP-4C],EDI
  31. 004EF9D4   . 897D A4        MOV DWORD PTR SS:[EBP-5C],EDI
  32. 004EF9D7   . 897D A0        MOV DWORD PTR SS:[EBP-60],EDI
  33. 004EF9DA   . FF92 38070000  CALL DWORD PTR DS:[EDX+738]
  34. 004EF9E0   . 3BC7           CMP EAX,EDI
  35. 004EF9E2   . 7D 12          JGE SHORT Estacion.004EF9F6
  36. 004EF9E4   . 68 38070000    PUSH 738
  37. 004EF9E9   . 68 34654300    PUSH Estacion.00436534
  38. 004EF9EE   . 56             PUSH ESI
  39. 004EF9EF   . 50             PUSH EAX
  40. 004EF9F0   . FF15 B8104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
  41. 004EF9F6   > 8B06           MOV EAX,DWORD PTR DS:[ESI]
  42. 004EF9F8   . 56             PUSH ESI
  43. 004EF9F9   . FF90 2C070000  CALL DWORD PTR DS:[EAX+72C]
  44. 004EF9FF   . 3BC7           CMP EAX,EDI
  45. 004EFA01   . 7D 12          JGE SHORT Estacion.004EFA15
  46. 004EFA03   . 68 2C070000    PUSH 72C
  47. 004EFA08   . 68 34654300    PUSH Estacion.00436534
  48. 004EFA0D   . 56             PUSH ESI
  49. 004EFA0E   . 50             PUSH EAX
  50. 004EFA0F   . FF15 B8104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaHresu>;  MSVBVM60.__vbaHresultCheckObj
  51. 004EFA15   > 8B0E           MOV ECX,DWORD PTR DS:[ESI]
  52. 004EFA17   . 8D55 A0        LEA EDX,DWORD PTR SS:[EBP-60]
  53. 004EFA1A   . 52             PUSH EDX
  54. 004EFA1B   . 56             PUSH ESI
  55. 004EFA1C   . FF91 3C070000  CALL DWORD PTR DS:[ECX+73C]
  56. 004EFA22   . 66:397D A0     CMP WORD PTR SS:[EBP-60],DI
  57. 004EFA26   . 0F84 9D000000  JE Estacion.004EFAC9
  58. 004EFA2C   . 8B06           MOV EAX,DWORD PTR DS:[ESI]
  59. 004EFA2E   . 56             PUSH ESI
  60. 004EFA2F   . FF90 0C070000  CALL DWORD PTR DS:[EAX+70C]
  61. 004EFA35   . 8B0E           MOV ECX,DWORD PTR DS:[ESI]
  62. 004EFA37   . 56             PUSH ESI
  63. 004EFA38   . FF91 04030000  CALL DWORD PTR DS:[ECX+304]
  64. 004EFA3E   . 8B3D 44114000  MOV EDI,DWORD PTR DS:[<&MSVBVM60.#520>]  ;  MSVBVM60.rtcTrimVar
  65. 004EFA44   . 8945 DC        MOV DWORD PTR SS:[EBP-24],EAX
  66. 004EFA47   . 8D55 D4        LEA EDX,DWORD PTR SS:[EBP-2C]
  67. 004EFA4A   . 8D45 C4        LEA EAX,DWORD PTR SS:[EBP-3C]
  68. 004EFA4D   . BB 09000000    MOV EBX,9
  69. 004EFA52   . 52             PUSH EDX
  70. 004EFA53   . 50             PUSH EAX
  71. 004EFA54   . 895D D4        MOV DWORD PTR SS:[EBP-2C],EBX
  72. 004EFA57   . FFD7           CALL EDI                                 ;  <&MSVBVM60.#520>
  73. 004EFA59   . 8B0E           MOV ECX,DWORD PTR DS:[ESI]
  74. 004EFA5B   . 56             PUSH ESI
  75. 004EFA5C   . FF91 08030000  CALL DWORD PTR DS:[ECX+308]
  76. 004EFA62   . 8945 BC        MOV DWORD PTR SS:[EBP-44],EAX
  77. 004EFA65   . 8D55 B4        LEA EDX,DWORD PTR SS:[EBP-4C]
  78. 004EFA68   . 8D45 A4        LEA EAX,DWORD PTR SS:[EBP-5C]
  79. 004EFA6B   . 52             PUSH EDX
  80. 004EFA6C   . 50             PUSH EAX
  81. 004EFA6D   . 895D B4        MOV DWORD PTR SS:[EBP-4C],EBX
  82. 004EFA70   . FFD7           CALL EDI
  83. 004EFA72   . 8B3D D0124000  MOV EDI,DWORD PTR DS:[<&MSVBVM60.__vbaSt>;  MSVBVM60.__vbaStrVarVal
  84. 004EFA78   . 8B1E           MOV EBX,DWORD PTR DS:[ESI]
  85. 004EFA7A   . 8D4D A4        LEA ECX,DWORD PTR SS:[EBP-5C]
  86. 004EFA7D   . 8D55 E4        LEA EDX,DWORD PTR SS:[EBP-1C]
  87. 004EFA80   . 51             PUSH ECX
  88. 004EFA81   . 52             PUSH EDX
  89. 004EFA82   . FFD7           CALL EDI                                 ;  <&MSVBVM60.__vbaStrVarVal>
  90. 004EFA84   . 50             PUSH EAX
  91. 004EFA85   . 8D45 C4        LEA EAX,DWORD PTR SS:[EBP-3C]
  92. 004EFA88   . 68 24044300    PUSH Estacion.00430424
  93. 004EFA8D   . 8D4D E8        LEA ECX,DWORD PTR SS:[EBP-18]
  94. 004EFA90   . 50             PUSH EAX
  95. 004EFA91   . 51             PUSH ECX
  96. 004EFA92   . FFD7           CALL EDI
  97. 004EFA94   . 50             PUSH EAX
  98. 004EFA95   . 56             PUSH ESI
  99. 004EFA96   . FF93 18070000  CALL DWORD PTR DS:[EBX+718]
  100. 004EFA9C   . 8D55 E4        LEA EDX,DWORD PTR SS:[EBP-1C]
  101. 004EFA9F   . 8D45 E8        LEA EAX,DWORD PTR SS:[EBP-18]
  102. 004EFAA2   . 52             PUSH EDX
  103. 004EFAA3   . 50             PUSH EAX
  104. 004EFAA4   . 6A 02          PUSH 2
  105. 004EFAA6   . FF15 50134000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStrList
  106. 004EFAAC   . 8D4D A4        LEA ECX,DWORD PTR SS:[EBP-5C]
  107. 004EFAAF   . 8D55 C4        LEA EDX,DWORD PTR SS:[EBP-3C]
  108. 004EFAB2   . 51             PUSH ECX
  109. 004EFAB3   . 8D45 B4        LEA EAX,DWORD PTR SS:[EBP-4C]
  110. 004EFAB6   . 52             PUSH EDX
  111. 004EFAB7   . 8D4D D4        LEA ECX,DWORD PTR SS:[EBP-2C]
  112. 004EFABA   . 50             PUSH EAX
  113. 004EFABB   . 51             PUSH ECX
  114. 004EFABC   . 6A 04          PUSH 4
  115. 004EFABE   . FF15 48104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
  116. 004EFAC4   . 83C4 20        ADD ESP,20
  117. 004EFAC7   . 33FF           XOR EDI,EDI
  118. 004EFAC9   > 897D FC        MOV DWORD PTR SS:[EBP-4],EDI
  119. 004EFACC   . 68 00FB4E00    PUSH Estacion.004EFB00
  120. 004EFAD1   . EB 2C          JMP SHORT Estacion.004EFAFF
  121. 004EFAD3   . 8D55 E4        LEA EDX,DWORD PTR SS:[EBP-1C]
  122. 004EFAD6   . 8D45 E8        LEA EAX,DWORD PTR SS:[EBP-18]
  123. 004EFAD9   . 52             PUSH EDX
  124. 004EFADA   . 50             PUSH EAX
  125. 004EFADB   . 6A 02          PUSH 2
  126. 004EFADD   . FF15 50134000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeS>;  MSVBVM60.__vbaFreeStrList
  127. 004EFAE3   . 8D4D A4        LEA ECX,DWORD PTR SS:[EBP-5C]
  128. 004EFAE6   . 8D55 B4        LEA EDX,DWORD PTR SS:[EBP-4C]
  129. 004EFAE9   . 51             PUSH ECX
  130. 004EFAEA   . 8D45 C4        LEA EAX,DWORD PTR SS:[EBP-3C]
  131. 004EFAED   . 52             PUSH EDX
  132. 004EFAEE   . 8D4D D4        LEA ECX,DWORD PTR SS:[EBP-2C]
  133. 004EFAF1   . 50             PUSH EAX
  134. 004EFAF2   . 51             PUSH ECX
  135. 004EFAF3   . 6A 04          PUSH 4
  136. 004EFAF5   . FF15 48104000  CALL DWORD PTR DS:[<&MSVBVM60.__vbaFreeV>;  MSVBVM60.__vbaFreeVarList
  137. 004EFAFB   . 83C4 20        ADD ESP,20
  138. 004EFAFE   . C3             RETN
  139.  

Alguna de los saltos condicionales puede ser el que evita que cargue el formulario principal?
« Última modificación: 11 Diciembre 2008, 19:55 pm por APOKLIPTICO » En línea

AMD Phenom II 1075T X6 @ 290 Mhz x 11 (HT 2036 Mhz NB Link 2616 Mhz) 1.23 Vcore
ASUS M4A89GTD-PRO/USB3
2x2gb G-Skill RipjawsX DDR3 1600 Mhz CL7 (7-8-7-24-25-1T)
Seagate 500 Gb
XFX HD4850 512Mb GDDR3. 650 Mhz/995 Mhz 1.1 Tflops.
Shaddy


Desconectado Desconectado

Mensajes: 722


one_bit_manipulator()


Ver Perfil WWW
Re: Programa que pide datos de internet.
« Respuesta #8 en: 12 Diciembre 2008, 02:49 am »

mmm... cuando paras en el punto que te digo, vas a una tabla de "eventos", estoy seguro que cuando pasas el login va a uno de esos eventos... pues evitar el que va al login e ir directamente ahí..
En línea

"Si buscas resultados diferentes, no hagas siempre lo mismo" (Albert Einstein)

http://abssha.reversingcode.com
http://www.reversingcode.com
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
UNA EMBAJADA ME PIDE EL SALDO POR INTERNET « 1 2 »
Seguridad
yuly111 10 4,930 Último mensaje 15 Marzo 2011, 16:34 pm
por c0d3rSh3ll
Un virus pide 100 euros para rescatar los datos
Noticias
wolfbcn 0 2,612 Último mensaje 13 Noviembre 2011, 01:34 am
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines