Nemucod mejora sus probabilidades de infección con cambios en su código

Conocimiento pertenece al mundo
Tweet about this on TwitterShare on FacebookShare on LinkedInShare on Google+Share on StumbleUponShare on TumblrShare on RedditPin on PinterestEmail this to someone

Hace poco detallamos el proceso de infección del ransomware Locky. Desde ese entonces, los creadores del downloader Nemucod (el código malicioso responsable de descargar y ejecutar diversos tipos de malware, entre los que se encuentra Locky) han estado trabajando arduamente para perfeccionar su código.

LOS AUTORES DE NEMUCOD MEJORARON SU DOWNLOADER PARA LOGRAR MÁS EJECUCIONES SIN DETECCIÓN

Una de las versiones más recientes de Nemucod muestra algunos cambios notables con respecto a las primeras versiones. En el pasado, el proceso era bastante simple: el usuario abre el archivo malicioso → el archivo descarga el payload → el payload se ejecuta. Sin embargo, en las versiones más recientes, el proceso no es tan sencillo.

A continuación, analizaremos el funcionamiento del código con más detalle. Para que sea más fácil de leer, se descifró el código para despojarlo de su formato original, que estaba fuertemente ofuscado.

Paso 1: elección del método correcto de conexión

Las versiones anteriores de Nemucod utilizaban un solo método para conectarse a Internet. Sin embargo, en ciertos casos, la conexión fallaba por las distintas configuraciones de la infraestructura (la versión de Windows, los servidores proxy, etc.).

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

Nemucod – proceso

El primer método de conexión que funcione es el que se emplea.

Paso 2: descarga desde distintos sitios

Hasta ahora, Nemucod incluía una sola dirección (por lo general, la de un servidor web infectado) desde donde intentaba descargar su payload. Esto era un problema, ya que, si se eliminaba el payload, fallaba el ataque. Probablemente para aumentar sus posibilidades de éxito, las versiones recientes incluyen múltiples direcciones de descarga, como se ve en estos ejemplos:

Nemucod – 2Nemucod – 3

El código va probando los sitios de la lista en forma cíclica hasta que logra descargar el archivo correctamente:

Nemucod – descarga exitosa

Paso 3: primera etapa de descifrado

En el pasado, los payloads descargados por Nemucod eran archivos binarios tradicionales con extensión “.exe”. Una vez descargados, se ejecutaban directamente. Sin embargo, la descarga de archivos “.exe” implica que los dispositivos con firewall, IDS o UTM pueden interceptar el payload para llevar a cabo un análisis de seguridad, e incluso rechazar el adjunto.

Para evitar este tipo de posibles inconvenientes, la última versión de Nemucod descarga un archivo ofuscado. En primer lugar, descarga el archivo en el directorio %TEMP% de la víctima:

Nemucod – 5Nemucod – 6

Después de guardar el payload ofuscado, esta función pasa el contenido del archivo a otra función que se encarga de realizar la primera etapa de descifrado:

Nemucod – 7

Resulta que esta primera etapa es un simple descifrado por sustitución. Todos los caracteres en el archivo se convierten a sus valores decimales. Si el valor decimal de un carácter es mayor que 127, el carácter se sustituye con el valor que le corresponde según una matriz predefinida de caracteres. De lo contrario, permanece intacto:

Nemucod – 8

Paso 4: segunda etapa de descifrado

Una vez finalizada la primera etapa de descifrado, el contenido del archivo se pasa a otra función que realiza una segunda ronda de descifrado. Esta nueva etapa consta de tres pasos:

  • Quitar los cuatro últimos caracteres del contenido del archivo
  • Aplicar una operación XOR a cada carácter con el carácter “s” (0x73)
  • Invertir el contenido del archivo

Nemucod – 9

Paso 5: comprobación de la validez del archivo

En este punto se realiza una comprobación rudimentaria para verificar si el contenido del archivo resultante es un payload válido. Por lo tanto, comprueba si el tamaño del archivo es de entre 174.080 y 189.440 bytes y si el archivo comienza con “MZ” (0x4D5A): los “bytes mágicos” correspondientes a un archivo ejecutable portable (PE).

Si falla alguna de estas comprobaciones, salta de nuevo al paso dos y trata de descargar un payload desde el sitio de descarga que sigue:

Nemucod – 10

Nemucod – 11

Paso 6: última etapa de descifrado

Si todas las verificaciones son correctas, el archivo se guarda en la carpeta %TEMP% del usuario:

Nemucod – 12Nemucod – 13

La función denominada deobRound3 durante el proceso de descifrado somete el contenido del archivo a otra nueva ronda de sustitución de caracteres, similar a la del tercer paso. Es muy probable que estas rondas de sustitución de caracteres se ejecuten para evitar problemas de “caracteres anchos” durante la segunda etapa de descifrado.

Por último, todos los caracteres se vuelven a convertir desde su valor decimal, y el contenido del archivo resultante debe ser un archivo ejecutable de Windows válido:

Nemucod – 14

Paso 7: ejecución

Ahora que el payload está listo, tiene que ejecutarse. En lugar de ejecutar el archivo “.exe” directamente, las versiones más recientes de Nemucod crean un archivo “.bat” que inicia el ejecutable. A continuación, ejecuta el archivo “.bat”:

Nemucod – 15

Si “todo va bien”, el usuario quedará infectado.

Conclusión

Como se puede ver, los autores de Nemucod han estado ocupados mejorando su downloaderpara incrementar las probabilidades de ejecución de su payload sin que sea detectado. Con todas estas nuevas características, incluso se puede especular que están trabajando arduamente para mejorar su tasa de éxito en entornos corporativos, donde probablemente los servidores proxy y las puertas de enlace UTM ya han bloqueado sus payloads en el pasado.

Fuente:http://www.welivesecurity.com/

Conocimiento pertenece al mundo
Tweet about this on TwitterShare on FacebookShare on LinkedInShare on Google+Share on StumbleUponShare on TumblrShare on RedditPin on PinterestEmail this to someone