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

Charly face Alejandro Rivera
Creado más de 1 año | leído hace alrededor de 5 horas
Creación y análisis básico de una imagen forense en windows 7 con FTK imager y Volatility. - Backtrack Academy

Creación y análisis básico de una imagen forense en windows 7 con FTK imager y ...

Necesitaremos una laptop con Windows 7 y dos herramientas; FTK imager y Volatility, lo primero que aprenderemos es crear un volcado de memoria con ftk como se m...


Z43vi97d 400x400 José Alejandro Gago
Creado 10 meses | leído hace 11 minutos
Análisis forense reconstruyendo imágenes desde dumps de memoria. - Backtrack Academy

Análisis forense reconstruyendo imágenes desde dumps de memoria.

Obtener datos y pruebas que te ayuden en una investigación no es tarea fácil, hace unas noches atrás (Si de aquellas que te sientas a investigar y terminas vien...