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