njRAT es un troyano de acceso remoto (RAT, por sus siglas en inglés); es decir, un programa malicioso que permite a un atacante controlar remotamente un equipo comprometido y realizar diversas acciones. Las primeras detecciones de njRAT se registraron en el Medio Oriente en 2012, probablemente el lugar donde fue creado , junto a otra variante de este troyano conocida como njw0rm, también desarrollada por el mismo autor. Los productos de ESET detectan esta amenaza como MSIL/Bladabindi.

¿njRAT o njw0rm?

Aunque algunas publicaciones se refieren a los dos como el mismo malware, en algunos casos se describe a njw0rm como una variante que se cree fue desarrollada posteriormente por el autor de njRAT, incorporando funcionalidad para reproducirse automáticamente a través de unidades USB extraíbles. A diferencia de este, njRAT no puede reproducirse automáticamente.

njRAT utilizado como plantilla de malware

El código fuente junto con el programa que lo configura se filtró en foros de la dark web alrededor del año 2013, aunque algunos desarrolladores de malware ya lo estaban utilizando para crear nuevas versiones mejoradas o modificadas bajo otros nombres. Algunas de estas variantes se han utilizado tanto para campañas masivas como en ataques dirigidos a individuos u organizaciones por parte de cibercriminales y grupos de APT.

Un ejemplo fue Operación Spalax, una campaña dirigida a instituciones gubernamentales y empresas en Colombia en la cual se utilizó la versión 0.7.3 de este RAT, también conocida como Lime, la cual incluye funcionalidades como DDoS o cifrado de ransomware.

Desde su filtración la popularidad de njRAT como plantilla de malware no ha mermado y se ha convertido probablemente en el troyano de acceso remoto más prevalente y accesible dada la cantidad de información y tutoriales que existen en la web. Por todo esto es que se suele hablar de njRAT como un RAT commoditie.

Hemos visto varios códigos maliciosos que reutilizan código de njRAT, especialmente sus funcionalidades para recibir y enviar información a sus servidores de Control & Comando y de keylogging, las cuales si bien no son particularmente sofisticadas, son fáciles de utilizar para cualquier desarrollador.

Un caso interesante se dio en una reciente campaña de malware que investigadores de ESET nombraron Janeleiro. Se trata de un troyano bancario que está siendo utilizado en campañas dirigidas a usuarios corporativos en Brasil y cuyo malware principal es una adaptación en .NET del código fuente de NjRAT. Lo interesante de este caso es que Janeleiro comparte con varios troyanos bancarios de América Latina que hemos analizado previamente su principal característica: el uso de ventanas emergentes falsas para suplantar la identidad del banco que la víctima estaba intentando visitar. Sin embargo, a diferencia de los troyanos bancarios que tradicionalmente operan en la región, todos están desarrollados en el lenguaje de programación Delphi.

Lectura Relacionada: Janeleiro:  otro troyano bancario que apunta a usuarios corporativos en Brasil

Es muy común que cuando se reporta que njRAT fue utilizado para algún tipo de ataque o compaña en realidad se esté haciendo referencia a una variante modificada, y que en muchos casos no presente ninguna característica notable (a diferencia del caso de Janeleiro, por ejemplo) que sea valiosa documentar o apartar para un tipo de detección en particular, por lo tanto, se suele utilizar el nombre Bladabindi o njRAT genéricamente para este tipo de variantes. 

Características principales del troyano njRAT

Estas son algunas de las características principales del njRAT original:

  • Desarrollado en el lenguaje de programación C#
  • Captura de pantalla, captura de cámara y audio
  • Captura de pulsaciones de teclado (keylogging)
  • Persistencia en el registro de Windows
  • Manipulación, descarga, extracción, y ejecución de archivos
  • Manipulación del registro de Windows
  • Robo de credenciales
  • Agrega una excepción en el Firewall de Windows para poder comunicarse
  • Conexión al servidor de C&C via Socket TCP y datos codificados en Base64

Complementariamente, la siguiente tabla de MITRE ATT&CK lista algunas técnicas que se han utilizado en variantes de njRAT.

Tecnica ( ID) Nombre Descripción
T1071 0.001 Application Layer Protocol: Web Protocols njRAT  has used HTTP for C2 communications.
T1010 Application Window Discovery njRAT  gathers information about opened windows during the initial infection.
T1547 .001 Boot or Logon Autostart Execution: Registry Run Keys / Startup Folder njRAT has added persistence via the Registry key HKCU\Software\Microsoft\CurrentVersion\Run\ and dropped a shortcut in %STARTUP%.
T1059 .003 Command and Scripting Interpreter: Windows Command Shell njRAT  can launch a command shell interface for executing commands.
.001 Command and Scripting Interpreter: PowerShell njRAT has executed PowerShell commands via auto-run registry key persistence.
T1555 0.003 Credentials from Password Stores: Credentials from Web Browsers njRAT has a module that steals passwords saved in victim web browsers.
T1132 0.001 Data Encoding: Standard Encoding njRAT uses Base64 encoding for C2 traffic.
T1005 Data from Local System njRAT can collect data from a local system.
T1568 0.001 Dynamic Resolution: Fast Flux DNS njRAT has used a fast flux DNS for C2 IP resolution.
T1041 Exfiltration Over C2 Channel njRAT has used HTTP to receive stolen information from the infected machine.
T1083 File and Directory Discovery njRAT can browse file systems using a file manager module.
T1562 0.004 Impair Defenses: Disable or Modify System Firewall njRAT has modified the Windows firewall to allow itself to communicate through the firewall.
T1070 Indicator Removal on Host njRAT is capable of deleting objects related to itself (registry keys, files, and firewall rules) on the victim.
T1105 Ingress Tool Transfer njRAT can download files to the victim’s machine.
T1056 0.001 Input Capture: Keylogging njRAT  is capable of logging keystrokes.
T1112 Modify Registry njRAT can create, delete, or modify a specified Registry key or value.
T1106 Native API njRAT has used the ShellExecute() function within a script.
T1571 Non-Standard Port njRAT has used port 1177 for HTTP C2 communications.
T1027 Obfuscated Files or Information njRAT has included a base64 encoded executable.
0.004 Compile After Delivery njRAT  has used AutoIt to compile the payload and main script into a single executable after delivery.
T1120 Peripheral Device Discovery njRAT will attempt to detect if the victim system has a
T1057 Process Discovery njRAT can search a list of running processes for Tr.exe.
T1012 Query Registry njRAT can read specific registry values.
T1021 0.001 Remote Services: Remote Desktop Protocol njRAT has a module for performing remote desktop access.
T1018 Remote System Discovery njRAT can identify remote hosts on connected networks
T1091 Replication Through Removable Media njRAT can be configured to spread via removable drives
T1113 Screen Capture njRAT can capture screenshots of the victim’s machines.
T1082 System Information Discovery njRAT enumerates the victim operating system and computer name during the initial infection.
T1033 System Owner/User Discovery njRAT enumerates the current user during the initial
T1125 Video Capture njRAT can access the victim's webcam.