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:
- 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.
- Tiempo de destrucción del código duro de la clave privada "1 de marzo de 2018".
- 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.
- Anti-Ransomware
Especialmente diseñado para contrarrestar los ataques de ransomware. Esta característica detecta el ransomware siguiendo su secuencia de ejecución.
- Cortafuegos
Bloquea los intentos maliciosos de romper las conexiones de red.
- IDS / IPS
Detecta intentos de fuerza bruta RDP y bloquea la IP del atacante remoto durante un período definido.
- Protección de virus
El servicio de protección antivirus en línea detecta las variantes conocidas del ransomware.
- Sistema de detección basado en comportamiento
Rastrea la actividad de los archivos ejecutables y bloquea los archivos maliciosos.
- 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.