En esta oportunidad queremos compartir con ustedes un análisis de Win32/TrojanDownloader.Banload.PMI, un troyano que desde hace unos meses está siendo utilizado para propagar un ataque masivo de phishing en Brasil. En lo que respecta a este código malicioso, una vez que infecta un sistema, realiza la descarga de otros dos troyanos que, en conjunto, intentan robar las contraseñas de acceso de los usuarios a más de 16 bancos diferentes.
Al momento de comenzar el análisis de la muestra, se observó que la misma se encontraba comprimida con PKLite32, puntualmente la versión 1.1, un packer que intenta minimizar el tamaño del código malicioso como así también ocultar su verdadero objetivo y así intenta complicar su detección por parte de las distintas soluciones antivirus.
En situaciones en las que una muestra se encuentra empaquetada existen dos variantes que se pueden seguir. La primera es buscar y utilizar un desempaquetador para obtener el ejecutable o realizar esta tarea manualmente. En este caso puntual, se puede obtener el archivo original simplemente encontrando el punto de entrada real en dónde se empieza a ejecutar el código malicioso.
Para poder desenpaquetar esta muestra buscamos dentro de la misma el Entry Point, qué es la dirección de memoria en la cual comienza la verdadera ejecución de este código malicioso. Al comenzar con el análisis estático de la muestra vemos que comienza su ejecución en la dirección 004E8000, sin embargo, es 5 instrucciones más adelante en dónde se encuentra lo que se necesita para llegar a la muestra original. Cómo se puede observar en la siguiente imagen en la dirección 004E8014 se ejecuta la instrucción JMP OsamaExe.004A7C48.
¿Qué es lo que significa esto? La instrucción JMP efectua un salto a la dirección de memoria que se le pasa como parámetro, en este caso 004A7C48, una vez que se accede a esa dirección el programa malicioso continúa con su flujo de ejecución realizando la descarga de otros troyanos bancarios para asegurarse de obtener una mayor efectividad en el robo de información.
Es en la dirección de memoria que mencionamos con anterioridad en donde cae el disfraz creado por el packer. Ahora sabemos en qué parte de la memoria se encuentra la el código malicioso y para poder obtener una copia limpia del código malicioso, para ahondar en el análisis, se necesita efectuar lo que se conoce como un DUMP de memoria.
Realizar el DUMP de memoria significa, en pocas palabras, copiar todo lo que se encuentra en la sección perteneciente al código malicioso y guardarlo como un nuevo ejecutable. Luego de hacer esto hay que efectuar un paso más, editar el archivo creado y modificar el Entry Point que ahora se encuentra en la dirección 000A7C48.
Una vez que se ha obtenido el código original de este troyano podemos realizar un análisis de la amenaza en sí y entender cuáles son las acciones que ejecuta.
Para conocer cuáles son los archivos que se crean dentro del sistema infectado, buscamos la llamada a una función que se ejecuta al crear un archivo en el sistema, la misma tiene el nombre CreateFileW, y es en este punto en donde se configura un breakpoint para que cada vez que se quiera acceder a esta porción de código se pause la ejecución del troyano. Un breakpoint es como una señal de alto, cada vez que se llega a ese punto se detiene permitiendo de esta manera observar qué es lo que se está haciendo.
En total, esta amenaza crea en el sistema infectado:
- 7 archivos en el disco C:
- 7 archivos dentro de las carpetas de configuración del usuario
- 2 archivos en C:Windowssystem32
Como se podrán imaginar la finalidad de este código malicioso no es realizar en sí el robo de información, sino encargarse de descargar y configurar la el resto de las amenazas para vulnerar el sistema y así engañar al usuario en un ataque de phishing completo que incluye técnicas de pharming local en donde se modifica un archivo de configuración del equipo para redirigir al usuario a páginas falsas de bancos en dónde se sustrae su información.
Entonces, ¿cuál es la función principal de Win32/TrojanDownloader.Banload.PMI? El objetivo de esta amenaza es preparar el terreno para que se efectúe el robo de información del usuario, y así lograr que los cibercriminales obtengan los datos del usuario.
Para evitar que este tipo de cambios sean efectuados en el sistema del usuario siempre es recomendable contar con una solución antivirus con capacidad de detección proactiva que identifique y elimine la amenaza antes de que modifique el sistema como así también buenas prácticas para navegar por internet.
Pablo Ramos
Especialista de Awareness & Research