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. |