En el último tiempo ha crecido de manera notable la cantidad de códigos maliciosos que tienen como finalidad extraer información sensible de los usuarios infectados que son clientes de alguna entidad bancaria. Entre ellos, ha sido notable la presencia de Emotet, un malware muy poderoso que tiene como objetivo principal el robo de credenciales bancarias, el cual ESET detecta bajo la firma de Win32/Emotet.AB.
Su método de propagación es a través de correos electrónicos fraudulentos. La amenaza afecta en gran parte a la región europea, más específicamente a Alemania. Lo llamativo es que en nuestros reportes logramos ver que este código malicioso se propagaba atreves de URLs de Latinoamérica. Hoy comenzaremos su análisis viendo como extraer el payload de esta amenaza.
Según los sistemas de alerta temprana de ESET, Win32/Emotet.AB tuvo su pico de actividad durante el mes de noviembre de 2014, en donde una de cada cinco detecciones correspondió al principal objetivo de este ataque, usuarios alemanes:
En base a las URLs latinoamericanas que se utilizaron para su propagación, pudimos relevar cuáles fueron los nombres de archivos más utilizados durante el ataque estos fueron:
- rechnung_11_2014_3280000236_telekom_de.zip
- rechnung_11_2014_vodafone_team.zip
- volksbank_de_transaktions_id_000023928001_2014_11.zip
- de_rechnung.zip
- ihre_telekom_mobilfunk_december_2014.zip
- 1&1_2014_11rechnung_onlinerechnung.zip
- 2014_11vodafone_onlinerechnung.zip
- ihre_telekom_mobilfunk_november_2014.zip
- 2014_11_rechnung_1_1_000309399002.zip
- zahlung_in_auftrag_2014_12.zip
Además, sobre un total de 125 dominios diferente de América Latina desde el Laboratorio de Análisis e Investigación de ESET Latinoamérica identificamos 169 URLs diferentes entre más de 200 campañas de propagación.
En el siguiente gráfico podemos ver los países con mayor cantidad de URLs asociadas a las campañas de Win32/Emotet.AB:
En el gráfico anterior es posible visualizar que los cibercriminales eligen webs vulnerables o con poca seguridad para alojar las muestras de malware que luego propagan a través de enlaces maliciosos en campañas de spam. Tal y como lo hemos reportado en otro tipos de ataques como el de CTB-Locker o los troyanos bancarios brasileños. En esta oportunidad la mayor cantidad de URLs maliciosas que propagaron variantes de Emotet estaban alojadas en Brasil.
Como primera instancia, realizamos un análisis dinámico, con lo cual observamos que la amenaza crea archivos, procesos y modificar llaves del registro.
Al momento de verificar si estos archivos creados por la amenaza se encontraban en los path que indicaba una de las herramientas que utilizamos, comprobamos que no estaban en esos directorios.
Por esta razón decidimos ir más a fondo y analizar esta muestra con debuggers y desensambladores para poder extraer estos archivos antes de que termine su ejecución.
Al volcar la amenaza en Immunity Debugger, establecimos breakpoints en determinadas llamadas a funciones de la API de Windows, como por ejemplo, OpenProcess, CreateProcessW, WriteProcessMemory, CreateRemoteThread y ResumeThead. Una vez realizado este paso, ejecutamos las instrucciones hasta llegar al primer breakpoint. Como podemos ver, es una llamada a la función OpenProcess, la cual va a iniciar el proceso y nos brinda el ID del proceso en Hexadecimal “C54", que codificado a decimal sería “3156”.
Luego continuamos ejecutando las instrucciones hasta el siguiente breakpoint, el cual nos indica que nos situamos en la llamada a la función CreateProcessW. Podemos destacar que esta función es utilizada con frecuencia por códigos maliciosos ya que como su nombre lo indica, crea un nuevo proceso. En este caso, la amenaza crea otro proceso del mismo ejecutable pero en estado suspendido:
En el siguiente breakpoint, la función WriteProcessMemory nos brinda datos a tener en cuenta, como el ID del handle “6C”, el buffer que va a leer y cuáles van a ser los primeros bytes en escribir (400 en hexadecimal, 1024 bytes).
En un principio mencionamos que no podíamos ver todos los procesos o archivos que el malware había creado; ahora los pudimos visualizar, con excepción de que si seguimos ejecutando las instrucciones corremos el riesgo de que los procesos terminen y perdamos estos datos. Es muy importante tener en cuenta el valor que contiene el buffer (013E0000).
Comentamos también en el inicio que esta amenaza creó otros archivos por ejemplo un “.bat”. Lo que realizaremos es un volcado de memoria para obtener estos archivos que no logramos encontrar al comienzo del primer análisis dinámico.
Para esto, utilizaremos una herramienta llamada LordPE Deluxe. Buscamos en la ventana principal de la aplicación la amenaza, hacemos clic derecho y seleccionamos “dump región…”:
En la nueva ventana, buscaremos la dirección de memoria que habíamos obtenido al depurar el código malicioso (013E0000); una vez seleccionado dicho valor haremos clic en el botón “Dump”. Guardaremos el archivo en alguna carpeta de nuestro equipo, para luego analizarlo.
Si al archivo obtenido le cambiamos su extensión de “.dmp” a ”.exe”, conseguiremos la verdadera amenaza Win32/Emotet.AB. Al comparar las strings del archivo original con el nuevo, observamos que son totalmente diferentes y con esta muestra podremos visualizar o analizar correctamente su funcionamiento.
Conclusión
Lo que descubrimos con esta primera parte de nuestra investigación sobre Win32/Emotet.AB, es que no solo había una amenaza embebida en el archivo original, sino que se alojaba y se instalaba al ejecutarse una segunda amenaza, la cual ESET detecta como Win32/ServStar.AD.
A su vez, podríamos decir que lo que el atacante intentó hacer es un método similar a un dropper para ocultar las verdaderas amenazas y que de esta manera sean difíciles de apreciar a simple vista. Ya vimos cómo extraer el payload de Emotet, para en un próximo análisis compartir con ustedes sus mecanismos de persistencia en el sistema y la comunicación con su centro de comando y control.