njRAT é um trojan de acesso remoto (RAT), ou seja, um programa malicioso que pode permitir a um atacante controlar remotamente um computador comprometido e executar várias ações. As primeiras detecções do njRAT foram registradas no Oriente Médio em 2012, provavelmente o lugar onde foi criado, juntamente com outra variante da ameaça conhecida como njw0rm, também desenvolvida pelo mesmo criador. Os produtos ESET detectam essa ameaça como MSIL/Bladabindi.

njRAT ou njw0rm?

Embora algumas publicações se refiram às duas ameaças como o mesmo malware, em alguns casos o njw0rm é descrito como uma variante que se acredita ter sido desenvolvida pelo mesmo criador do njRAT, incorporando a funcionalidade de reprodução automática por meio de unidades USB removíveis. Ao contrário, o njRAT não pode reproduzir-se automaticamente.

njRAT usado como um modelo de malware

O código-fonte do njRAT, juntamente com o programa que o configura, foi exposto em fóruns da dark web por volta de 2013, embora alguns desenvolvedores de malware já o estivessem usando para criar versões novas, aprimoradas ou modificadas com outros nomes. Algumas dessas variantes foram utilizadas tanto para campanhas em massa quanto em ataques dirigidos a indivíduos ou organizações por cibercriminosos e grupos APT.

Um exemplo disso foi a Operação Spalax, uma campanha direcionada a orgãos governamentais e empresas na Colômbia na qual os criminosos utilizaram a versão 0.7.3 desse RAT, também conhecida como Lime, que inclui recursos como DDoS ou criptografia de ransomware.

Desde o seu vazamento, a popularidade do njRAT como modelo de malware não diminuiu e a ameaça provavelmente se tornou o trojan de acesso remoto mais prevalente e acessível, considerando a quantidade de informações e tutoriais que existem na web. Por isso, o njRAT é frequentemente referido como um RAT commodity.

Vimos vários códigos maliciosos que reutilizam o código do njRAT, especialmente suas funcionalidades para receber e enviar informações para seus servidores de Controle & Comando e de keylogging, que embora não sejam particularmente sofisticados, permite que qualquer desenvolvedor os utilize.

Um caso interessante ocorreu em uma recente campanha de malware que os pesquisadores da ESET batizaram de Janeleiro. A ameaça trata-se de um trojan bancário que está sendo utilizado em campanhas direcionadas a usuários corporativos no Brasil e cujo principal malware é uma adaptação em .NET do código-fonte do NjRAT. O interessante deste caso é que o Janeleiro conta com as mesmas características de outros trojans bancários da América Latina que analisamos anteriormente: o uso de pop-ups falsos para se fazer passar pela página de um banco que a vítima estava tentando acessar. No entanto, ao contrário dos trojans bancários que normalmente operam na região, todos são desenvolvidos na linguagem de programação Delphi.

Veja mais: Janeleiro: análise de um trojan bancário direcionado a usuários corporativos no Brasil

Ao relatar que o njRAT foi utilizado para algum tipo de ataque ou campanha, é bastante comum que os pesquisadores estejam se referindo a uma variante modificada, e que em muitos casos não apresente características notáveis ​​(ao contrário do caso do Janeleiro, por exemplo) que sejam importantes para documentar ou reservar para um determinado tipo de detecção, portanto, costuma-se usar o nome de Bladabindi ou njRAT de forma genérica para esse tipo de variante.

Principais características do Trojan njRAT

Estas são algumas das principais características do njRAT original:

  • Desenvolvido na linguagem de programação C#
  • Captura de tela, captura de câmera e áudio
  • Captura de pressionamento de teclas (keylogging)
  • Persistência no registro do Windows
  • Manipulação, download, extração e execução de arquivos
  • Manipulação do registro do Windows
  • Roubo de credenciais
  • Adiciona uma exceção no Firewall do Windows para poder se comunicar
  • Conexão com o servidor C&C via Socket TCP e dados codificados em Base64

Para complementar, a seguinte tabela do MITER ATT&CK lista algumas técnicas que foram usadas nas variantes do njRAT.

Técnica ( ID) Nome Descrição
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.