Se ha descubierto un nuevo Troyano de Acceso Remoto (RAT) basado en JavaScript que se propaga a través de una campaña de ingeniería social. Este malware, denominado DarkWatchman, emplea técnicas «sin archivos» (fileless) para evadir los sistemas de protección y antivirus.
Según investigadores de Prevailion, DarkWatchman hace uso de un algoritmo de generación de dominio resistente (DGA) para identificar su infraestructura de comando y control (C2), y utiliza el Registro de Windows para todas sus operaciones de almacenamiento, lo que permite evitar las utilidades antimalware.
El registro de Windows es una base de datos jerárquica que se encarga de almacenar los ajustes de configuración de windows, del software instalado, dispositivos de hardware, etc. En este registro se almacena mucha información vital para el buen funcionamiento del sistema operativo y los dispositivos conectados.
Este nuevo RAT se distribuye a través de correo electrónico con el asunto «Notificación de caducidad de almacenamiento gratuito» e incorpora un fichero zip con una factura que contiene la carga útil necesaria para infectar el sistema. Este malware tiene dos componentes principales, el código JavaScript malicioso y un registrador de teclas basado en C# que se almacena en el registro de Windows para eludir los sistemas de protección.
DarkWatchman utiliza métodos novedosos para la persistencia sin archivos, la actividad en el sistema y las capacidades dinámicas de tiempo de ejecución como la autoactualización y la recompilación. Representa una evolución en las técnicas de malware sin archivos, ya que utiliza el registro para casi todo el almacenamiento temporal y permanente y, por lo tanto, nunca escribe nada en el disco, lo que le permite operar por debajo o alrededor del umbral de detección de la mayoría de las herramientas de seguridad.
Extracto del informe de los investigadores Matt Stafford y Sherman Smith.
El almacenamiento del binario como texto codificado en el registro de Windows, es un indicativo de que este RAT mantiene una infección persistente en el equipo de la víctima, además de que su ejecutable no escribe datos permanentemente en el disco. Los hackers podrían modificar o reemplazar DarkWatchman cada vez que se ejecute.
Después de infectar el sistema, el RAT puede ejecutar binarios arbitrarios, cargar archivos DLL, ejecutar código JavaScript, comandos de PowerShell, cargar archivos a un servidor remoto, actualizarse e incluso desinstalar el RAT y el registrador de teclas de la máquina comprometida. En el siguiente código se pueden ver las funciones JavaScript que el malware utiliza para instalar el registrador de teclas:
function keylogger_hex_to_registry(hex_data) {
var k = new Array();
for (var i = 0; i < 4; i++) { k[i] = parseInt(hex_data.substr(i * 2, 2), 16); }
var kl_plain_data = unxor(hex_data.substr(8), k);
return cfg_set_param(uid + 1, kl_plain_data);
}
function keylogger_to_registry() {
if (fso.FileExists(self_dir + '2204722946')) {
var kl_hex_data = get_file_content(self_dir + '2204722946', false);
erase_file(self_dir + '2204722946');
return keylogger_hex_to_registry(kl_hex_data);
}
else return false;
}
El código malicioso en JavaScript también es responsable de establecer la persistencia mediante la creación de una tarea programada que ejecuta el malware en cada inicio de sesión de usuario.
Dadas sus características, los investigadores apuntan a que DarkWatchman podría utilizarse como puerta de entrada en los sistemas de las víctimas y posteriormente realizar ataques con ransomware con su correspondiente extorsión. El registro de Windows contiene mucha información y se actualiza con frecuencia, por lo que es muy complejo diferenciar la información necesaria para que el equipo funcione correctamente con aquella que no es legítima.