Primer ransomware basado en Node.js: Nodera


Tiempo estimado de lectura: 5 5 minutos

Recientemente, durante la búsqueda de amenazas, Quick Heal Security Labs se encontró con un inusual ransomware Nodera basado en framework Node.js. El uso del marco Node.js no se ve comúnmente en las familias de malware. El último desarrollo de los actores de amenazas revela que se está creando un ransomware desagradable y único en su tipo; uno que usa el marco Node.js, que le permite infectar el sistema operativo basado en Windows.

Node.js es un entorno de código abierto, multiplataforma, en tiempo de ejecución de JavaScript que ejecuta código JavaScript fuera de un navegador. Está construido sobre el motor V8 JavaScript. V8 es el motor de código abierto de alto rendimiento de JavaScript y WebAssembly de Google, escrito en C ++. Se usa en Chrome y en Node.js, entre otros. Implementa ECMAScript y WebAssembly, y se ejecuta en Windows 7 o posterior, macOS 10.12+ y sistemas Linux que usan procesadores x64, IA-32, ARM o MIPS. V8 puede ejecutarse de forma independiente o puede integrarse en cualquier aplicación C ++.

Curiosamente, los usuarios pueden infectarse fácilmente con este ransomware Nodera mientras navegan en línea, ya sea haciendo clic en un archivo HTA malicioso o cuando se sirve como un aviso malicioso.

Detalles de análisis:

La muestra recibida en nuestro laboratorio fue un script vbs que tiene múltiples scripts js incrustados. En la ejecución, crea un directorio "GFp0JAk" en el lugar "% Userprofile% AppData Local ".

También crea un subdirectorio "Node_modules" para almacenar bibliotecas Node.js, que son necesarias para ejecutar la carga JS. Para la ejecución de esos scripts, se requiere node.exe que se descargará de la siguiente URL.

https://nodejs.org/download/release/latest-v8.x/win-x86/node.exe

El nodo.exe descargado se almacena como GFp0JAk.exe a "% Userprofile% AppData Local GFp0JAk".

Además crea 3 claves de registro diferentes "Microsoft Office", "Puesta en marcha" y "Windows" a "HKCU Software Microsoft Windows CurrentVersion Run " para hacer su persistencia en el sistema.

Higo 1: Entrada de registro

Luego, elimina algunas bibliotecas necesarias, como fs.js, graceful-fs.js, legacy-streams.js, package.json, polyfills.js en "% Userprofile% AppData Local GFp0JAk node_modules " y también el malicioso JS "LLT8PCI.js" a "% Userprofile% AppData Local GFp0JAk ".

Una vez que todos los módulos necesarios están en su lugar, verifica "% Userprofile% AppData Local GFp0JAk GFp0JAk.exe". Si está presente, comenzará a ejecutar el script invocando

oShell.Run (strExe & "" & outWorkingDir & "" & strEntPoint, 0, verdadero)

dónde strExe = "% userprofile% AppData Local GFp0JAk GFp0JAk.exe"

outWorkingDir = "% userprofile% AppData Local GFp0JAk "

strEntPoint = "% userprofile% AppData Local GFp0JAk lLT8PCI.js"

La carga útil real es el script "lLT8PCI.js" que realiza todas las actividades relacionadas con ransomware.

En este script, para cada función definida por el usuario, el autor ha utilizado Async-Await Generators and Promises. Estos dos son los conceptos más poderosos del framework Node.js. La definición de cualquier prefijo de función con palabras clave asíncronas, en realidad permite escribir código asincrónico de forma síncrona y el valor de retorno de la función asincrónica se llama promesa, que verifica el estado de finalización de una función determinada.

Fig. 2: Inicialización de variables y clave pública

El script JS comienza con la inicialización de algunas variables como "bitcoinAddress" y su precio. Además, incorpora la clave pública RSA de 4096 bits en formato PEM como se muestra en la figura 2.

Fig. 3: Funciones utilizadas en script

Inicialmente, verifica los derechos de administrador en "% WinDir%" tratando de crear un archivo con formato de nombre randomname_of_len_4. randomname_of_len_2. La función "generateKey" se utiliza para generar nombres y extensiones de archivos aleatorios.

Fig. 4: Generar nombre de archivo y extensión

A continuación, invoca la función de escaneo que enumera todas las unidades presentes en el sistema y crea una lista de ellas. Solo para "C:" conducirlo ha hecho alguna exclusión. Solo considera los directorios que contienen archivos específicos del usuario.

Fig. 5: Directorios dirigidos

Generará un archivo con nombre "Randomname_of_len_6 .key" que se utiliza para almacenar la clave cifrada AES-256 de RSA. La clave AES se genera mediante la función "generateKey".

Fig. 6: Todos los módulos

Antes de cifrar los archivos, mata el proceso como se muestra en la figura siguiente y elimina el volumen de instantáneas.

Fig 7: Proceso de matanza

Después de cifrar el archivo, agrega extensión ".Cifrado".

Luego suelta dos archivos:

"% Userprofile% AppData Local GFp0JAk " How-to-buy-bitcoins.html "

"% Userprofile% Desktop Decrypt-your-files.bat".

Fig 8: Nota de rescate – How-to-buy-bitcoins.html

El archivo HTML es una nota de ransomware y un archivo por lotes que contiene comandos para ejecutar el mismo script JS con el parámetro "decryptStatic" que invoca la rutina de descifrado.

Higo 9: Archivos cifrados

Este ransomware parece estar en fase de desarrollo y tiene algunos defectos como se menciona a continuación:

  1. Menciona la clave pública RSA de 2048 bits en la nota de rescate, aunque la clave pública incrustada en el script es de 4096 bits.
  2. Tiempo de destrucción del código duro de la clave privada "1 de marzo de 2018".
  3. No hay ningún canal de comunicación mencionado en la nota de rescate para recibir la clave privada.

Aunque parece haber sido escrito por un desarrollador aficionado, es un trabajo interesante y la probabilidad de que se vuelva popular en el futuro es bastante alta.

Cómo Quick Heal protege a sus usuarios de tales ataques:

Los productos Quick Heal están construidos con la siguiente seguridad de múltiples capas que ayudan a contrarrestar tales ataques.

  1. Anti-Ransomware

Especialmente diseñado para contrarrestar los ataques de ransomware. Esta característica detecta el ransomware siguiendo su secuencia de ejecución.

  1. Cortafuegos

Bloquea los intentos maliciosos de romper las conexiones de red.

  1. IDS / IPS

Detecta intentos de fuerza bruta RDP y bloquea la IP del atacante remoto durante un período definido.

  1. Protección de virus

El servicio de protección antivirus en línea detecta las variantes conocidas del ransomware.

  1. Sistema de detección basado en comportamiento

Rastrea la actividad de los archivos ejecutables y bloquea los archivos maliciosos.

  1. Copia de seguridad y restaurar

Le ayuda a realizar copias de seguridad periódicas de sus datos y restaurarlos cuando sea necesario.

IoCs :

7265C1FB74EB9EA3CD98358475620CE54B9033421BA042957135BDEFD078B366 53A95C9126BE8262AFB0821DA4D7137E6C8A4D9B363F91298249CA134D394BF4

Nombre de detección:

VBS.NoderaRansom.36592

JS.NoderaRansom.36593

Experto en la materia :

Ravi Gidwani, Tripatía de Goutam

Laboratorios de seguridad, Quick Heal Technologies, Ltd.

¿Tienes algo que agregar a esta historia? Compártelo en el



Enlace a la noticia original