El malware Nemucod mejora sus técnicas de infección y ofuscación

ransom_tecla2

Durante los últimos meses hemos visto como se lanzaban campañas de propagación de ransomware prácticamente todas las semanas, campañas que tenían sus peculiaridades y que iban mejorando sus técnicas de infección y ofuscación para tratar de evadir las detecciones de los antivirus y alcanzar al mayor número de usuarios posibles.

Uno de los ransomware que más quebraderos de cabeza ha ocasionado en meses recientes ha sido Locky, malware que analizamos en repetidas ocasiones en este blog. Este malware estaba estrechamente relacionado con Nemucod el “descargador” o “downloader” utilizado por los delincuentes para descargar y ejecutar Locky en el sistema de la víctima. Sabiendo que sus creaciones estaban en el punto de mira de investigadores de todo el mundo, los criminales han dedicado muchos esfuerzos para depurar su código.

Una de las versiones más recientes de Nemucod muestra cambios importantes con respecto a versiones anteriores. Hasta no hace mucho, el proceso de infección era bastante simple: “El usuario abre el fichero malicioso → Este fichero descarga la carga maliciosa o payload → El payload se ejecuta”. Sin embargo, en versiones más recientes los pasos son menos directos.

Gracias a las investigaciones realizadas por nuestro compañero Doony Maasland, Director de investigación y de los servicios de Ciberseguridad de ESET Holanda, podemos ver que hace este código malicioso con más detalle. Para hacerlo más legible, este código fue desofuscado partiendo de su formato original altamente ofuscado.

Primer paso: Elección del método de conexión correcto

Las primeras versiones de Nemucod tan solo utilizaban un método para conectarse a Internet. Sin embargo, esto podía hacer que el malware no funcionase correctamente por culpa de las diferentes configuraciones existentes (versión de Windows, servidores pruxy, etc.).

Para poder disfrutar de una mayor compatibilidad, los autores de Nemucod crearon una función que intenta conectarse usando múltiples métodos.

nemucod4

El primer método que funcione es el que utilizará en malware.

Segundo Paso: Probando diferentes sitios de descarga

Hasta ahora, Nemucod venía con solo una dirección predefinida (normalmente un servidor web comprometido) desde la cual intentaba descargar la carga maliciosa. Esto representaba una posibilidad de fallo muy grande puesto que, una vez el malware fuera eliminado de esa ubicación, el ataque fallaría. Quizas con la esperanza de incrementar sus posibilidades de éxito, versiones recientes han incluido múltiples ubicaciones de descarga, tal y como podemos observar en los siguientes ejemplos:

nemucod2

nemucod3

El código malicioso va probando las diferentes direcciones hasta que consigue conectar con una de ellas:

nemucod4

Tercer paso: Primera pasada de desofuscación

En versiones anteriores, los payloads descargados por Nemucod eran ficheros .exe normales. Estos ficheros podían ser ejecutados directamente. No obstante, la descarga de ficheros con extensión “.exe” siginifica que dispositivos como cortafuegos, sistemas IDS y UTM eran capaces de interceptar el payload para poder realizar un análisis de seguridad o incluso rechazarlo.

Para impedir estas barreras de seguridad, la versión más reciente de Nemucod descarga un fichero ofuscado, ubicándolo originalmente en la carpeta %TEMP% de la víctima:

nemucod5

nemucod6

Tras guardar este payload, esta función traslada el contenido del fichero a una función que realiza la primera ronda de desofuscación:

nemucod7

Resulta que el primer paso de desofuscación es un simple cifrado de sustitución. Todos los caracteres en la fila son convertidos a sus valores decimales y, si el valor decimal de un carácter es mayor de 127, el carácter es sustituido por su valor correspondiente desde un array predefinido de caracteres. En caso contrario, el carácter permanece inalterado:

nemucod8

Cuarto paso: Segunda ronda de desofuscación

Tras completar la primera ronda de desofuscación, el contenido del fichero es trasladado a una función que realiza una segunda pasada de desofuscación. Esta ronda consiste en tres pasos:

  • Elimina los últimos 4 caracteres del contenido del fichero
  • Realiza una operación XOR en cada character con la letra “s” (0x73)
  • Descifra el contenido del fichero

nemucod9

Quinto paso: Comprobación de validez

En este punto se realiza una comprobación rudimentaria del contenido del fichero resultante para comprobar si es un payload válido. Comprueba si el tamaño del fichero se encuentra entre 174.080 y 189.440 bytes y si el fichero empieza por “MZ” (0x4D5A), los “bytes mágicos” que determinan que estamos ante un fichero PE o Portable Executable. Si alguna de estas comprobaciones falla, vuelve al paso dos e intenta descargar un payload desde el siguiente enlace disponible:

nemucod10

nemucod11

Sexto paso: Ronda final de desofuscación

Si el fichero pasa todas las comprobaciones se ubica en el fichero %TEMP% del usuario:

nemucod12

nemucod13

La función con el nombre deobRound3 que aparece durante el proceso de desofuscación procesa el contenido del fichero a otra ronda de sustitución de caracteres similar la realizada en el tercer paso. Esta ronda de sustitución de caracteres se ejecuta probablemente para evitar problemas con “Caracteres Amplios” durante la segunda ronda de desofuscado.

Finalmente, todos los caracteres son convertidos desde su valor decimal y el contenido resultante debería ser un fichero ejecutable válido de Windows:

nemucod14

Séptimo paso: Ejecución

Ahora que el payload está listo necesita ser ejecutado. En lugar de ejecutar el fichero “.exe” directamente, las versiones más recientes de Nemucod generan una fichero “.bat” que arranca el ejecutable y luego ejecuta el fichero “.bat”:

nemucod15

Si todo “funciona correctamente” el malware habrá cumplido su objetivo y el usuario se habrá infectado.

Conclusión

Como hemos podido ver, los autores de Nemucod han estado ocupados mejorando su descargador para incrementar las posibilidades de que su carga maliciosa pueda ejecutarse sin ser detectada. Con todas estas nuevas características podríamos incluso especular que están trabajando duro para mejorer sus ratios de éxito en entornos corporativos, donde los servidores proxy y gateways UTM podrían haber estado bloqueando sus payloads en el pasado.

Ficheros analizados

customers 366.wsf [JS/TrojanDownloader.Nemucod.ABI trojan]

MD5: 4DEDF4085E6D2F74CB879AD2E9680AFB

SHA1: EF2A9C6A61E98091A952328592D45214F6E44178

cstomers 9679.js [JS/TrojanDownloader.Nemucod.ABI trojan]

MD5: 42D054143A67DE14EE10F7B8C91D8A1A

SHA1: D3DC6E3D066BFA8E1F4408DE471BC95B001D0D25

Yhnpl47OMCLJm.exe [a variant of Win32/Kryptik.EYIB trojan]

MD5: C1F95ADBCAF520BF182F9014970D33E5

SHA1: 80B96F0207B9C5D1DAA3A6E6CF646F5AFA7BBA2C

 

 

 

Adobe soluciona vulnerabilidad en Flash aprovechada en ataques dirigidos