12239691 1105105132864713 6272586772664789988 n Rafael Lior
Estudiante de la ingenieria Inversa usando las herramientas de Ollydbg y el actual IDA PRO, actualm
Creado 21 días | leído hace menos de 1 minuto

Realizando Ingeniería inversa a perfect keylogger

Post54 nn

INFORMACION DE LA VICTIMA


Es una herramienta popular que gano varios premios, traducido más de 20 idiomas, como su nombre lo indica nos permitirá capturar las pulsaciones de teclado, el mouse, screenshot, etc.


AL ATAQUE


Primero usaremos RDG Packer Detector, para ver si tiene protección o se encuentra empaquetado, ademas nos permitira ver en que lenguaje se desarrollo la aplicación.




NOTA


Se aconseja sacar un backup del .exe principal por medida de seguridad, ya que se realizara cambios que pueden afectar o perjudicar el software. Así que a copiar y pegar en un directorio aparte y tener un bloc de notas para apuntar los datos principales (Como la vieja escuela).




Ahora pasaremos analizar el software y ver qué tipo de protección posee, ejecutemos la aplicación:


  • 1) Duración Limitada, el programador pretender que su software se utilice un cierto tiempo para que luego deje de funcionar cumplido sus días.




Ahora vamos obtener información del “BAD BOY”


Al tener el dato del “BAD BOY” que dice : “Registration code or user name is invalid. Please check all fields and try again!”, buscaremos el texto en Text string referenced, en este caso me estoy saltando otros pasos, debido a que se explico en otros tutoriales.




En este caso me apareció que la dirección de memora 0041ABDB presenta el string que buscamos, hacemos clic derecho en el texto -> Follow import in Disassembler.



En este se analizo anteriormente y vimos que toda la validación se encuentra dentro de un CALL, de lo cual como se observa veras un return en la dirección de memoria 0041AC01, donde nos indica que retornara al CALL, para ello agregue un BP (BreakPoint), para detener el proceso en esa dirección, pero antes de eso debo hallar el inicio de todo ese CALL (Proceso).



Llegamos a la dirección de memoria 0041AA37 donde es el inicio del proceso de lo cual agrego un BP (BreakPoint), recuerde que estamos dentro de un CALL (Proceso), donde analizara las credenciales, en mi caso escribí:


Usuario : L1Or
Clave : AAAA-BBBB-CCCC-DDDD


De ley que no conocemos la clave, pero pronto lo conoceremos ☺, así que presionamos “F9”, o play y agregamos las credenciales y se detendrá en la dirección 0041AA37, donde inicia el proceso de validación.





Procederemos a tracear con “F8”, hasta llegar a la dirección de memoria 0041AB04 (Numero 1 de color amarillo), donde se observa que nuestro primer bloque de clave introducido es “AAAA”, al parecer lo esta alojando en la pila.



Seguimos tracenado y llegamos a la dirección de memoria 0041AB18 donde nos muestra el string “BBBB”, donde tambien lo pushea en la pila.



En el tercer string “CCCC”, lo pushea hacia la pila y si te percatas en la dirección de memoria 0041AB26, se aloja la clave ingresado.



En el cuarto string nos muestra el string “DDDD”, en donde observamos que es el ultimo bloque y en donde terminara el proceso de unir los cuatro bloque de texto, para mostrarnos AAAABBBBCCCCDDDD, seguiremos tracenado con “F8”.



Como observamos en la dirección de memoria 0041AB51, nos muestra el string2 = “AAAABBBBCCCCDDDD” y lineas mas abajo nos muestra el string1 , seguimos traceando con “F8”.



En la dirección de memoria 0041AB58 con el string1 = “TREKAYIYWHSJHERM”, es la supuesta clave, pero como llegamos a validar que es la correcta, debido a que vemos lineas mas abajo la clase lstrcmpiA, su función es comparar dos string y si no es correcto salta a la “BAD BOY”.


En este caso yo apunte el string1 y lo registre con mi usuario L1oR y Clave : “TREK-AYIY-WHSJ-HERM”, donde nos muestra que la clave ingresa es correcto, en este punto me percate que el uno de las variables que ayuda generar la clave es el usuario ingresado, si ingresamos otro usuario y con la misma clave, nos aparecera el “BAD BOY”. Tengo mi bloc de notas para que vean lo importante que es tomar apuntes.



SEGUNDO METODO

Nuevamente traceamos “F8” y nos detenemos en la dirección de memoria 0041AB61, en esta linea veremos el salto hacia el “BAD BOY”, es decir:

Si JNZ -> Salta debido a que Z=0, por lo tanto, como podremos llegar al “GOOD BOY”?, Para ello hacemos doble clic en la bandera Z para que cambie de valor a “1”, y así evitar que salte. 




Como se observa el Flag Z=1, entonces no salta y aparece la carita “GOOD BOY”, por lo tanto estamos en buen camino y podemos decir que ya esta, pero debemos parcharlo, tener en cuenta que si me salto algunos pasos es porque ya leyeron los anteriores tutoriales, si no es así entonces lean jaja.



Si seguimos traceando podemos ver que se ejecuta el MessageBox del “GOOD BOY”.



Y al final de todo se parcho , en este punto doy un tiempo para poder reflexionar y decir que a pesar de que es un software dedicado a seguridad, no se preocupa por los metodo de protección de su producto, por otro lado si tienen alguna duda del tutorial, pueden comentar estaré al tanto de sus dudas y poder brindarle mi poca experiencia. Ahí nos vemos.

HAPPY CRACKING. 




Artículos que te pueden interesar

Perfil Samuel Esteban
Creado más de 1 año | leído hace alrededor de 1 hora

¿Cómo realizar un Pentesting sigiloso con Nmap?

Post1

Para realizar un Pentesting es importante dejar la menor cantidad de rastros, por esta razón a continuación se explicará, como realizar...

Leer más

Reznoxep Abel O Rian
Creado más de 2 años | leído hace alrededor de 16 horas

Seguimos avanzando en Backtrack Academy

Post7

Ya están por cumplirse 2 semanas desde que se lanzó la plataforma y hay hartas noticias que les queremos contar

Leer más

12063705 10207273024561428 5910637785024423418 n %282%29 Felipe Barrios
Creado alrededor de 2 años | leído hace alrededor de 1 hora

Promoción curso de Bash Backtrack Academy

Post5

Bash es el intérprete predeterminado en la mayoría de sistemas GNU/Linux, además de MAC OS, se ha llevado a Microsoft Windows por el pr...

Leer más