DCRat (DarkCrystal RAT): o backdoor C# usado pelo Sandworm e pela campanha do GTA 6

Artigo

DCRat (DarkCrystal RAT): o backdoor C# usado pelo Sandworm e pela campanha do GTA 6

Rodrigo ColissiRodrigo Colissi
28 de setembro de 202614 min de leitura—
MalwareThreat Intelligence

Resumo: DCRat (DarkCrystal RAT) é um backdoor escrito em C# (.NET), vendido em fóruns underground com builder próprio. Suporta acesso remoto completo, keylogging, captura de tela e webcam, roubo de credenciais de Telegram e Discord, ataques DDoS e execução de shell remoto. Foi documentado em campanhas do grupo Sandworm (CERT-UA, 2022) contra operadoras de telecomunicação ucranianas e na campanha do falso GTA 6 (Huntress, 2026) que distribuía NJRat e Chaos Wiper. Este artigo analisa a arquitetura, o protocolo C2, as capacidades e as técnicas de defesa contra o DCRat.

Pré-requisitos

Para acompanhar esta análise, é recomendável ter familiaridade com:

  • Engenharia reversa de binários .NET — o DCRat é compilado em C# e pode ser decompilado com ferramentas como dnSpy.
  • Análise estática de malware — ferramentas como PEStudio (analisador de PE que extrai seções, imports, hashes e strings de binários Windows) ajudam a triar amostras rapidamente.
  • Conceitos de comunicação C2 — o DCRat usa um protocolo próprio com comandos hasheados que dificultam a análise de tráfego.

Ferramentas mencionadas ao longo do artigo:

  • PEStudio (/tools/analise-estatica-malware-pestudio) — análise estática de PE.
  • XWORM (/articles/xworm) — outro RAT em C# que compartilha técnicas similares de persistência.
  • Campanha do falso GTA 6 (/news/gta-6-falso-download-njrat-chaos-wiper) — contexto de distribuição de malware via download falso de jogo.

O que é o DCRat

DCRat (DarkCrystal RAT) é um backdoor remoto (Remote Access Trojan) de código aberto escrito em C# (.NET), comercializado em fóruns underground através do site dcrat.ru. Diferente de RATs fechados como o NJRat ou XWORM, o DCRat oferece um builder próprio que permite ao comprador configurar o mutex, as funcionalidades habilitadas e os endereços de C2 antes de compilar o binário final.

O malware foi identificado publicamente pela primeira vez em 2019, mas ganhou notoriedade a partir de 2020 com a análise aprofundada da Mandiant FLARE (FireEye Lifecycle Automated Report Engine — time de engenharia reversa da Mandiant), que publicou a primeira dissecção completa do protocolo de comunicação. Em 2022, a CERT-UA (Computer Emergency Response Team of Ukraine) documentou seu uso pelo grupo Sandworm, vinculado à inteligência militar russa (GRU), contra operadoras de telecomunicação ucranianas. Em 2026, o DCRat ressurgiu na campanha do falso GTA 6, que distribuía NJRat, Chaos Wiper e o próprio DCRat como cargas maliciosas.

Arquitetura e construção do binário

O DCRat é distribuído como um builder — o comprador recebe um executável (DCRatBuild.exe) que gera o binário final a partir de parâmetros configurados em uma interface. Essa abordagem é comum em RATs comerciais do underground e permite que cada instância do malware seja única, dificultando assinaturas estáticas.

Configuração embarcada

Quando o builder gera o payload final, a configuração é embutida no binário como uma string codificada em Base64 e comprimida via GZip/Deflate. O malware decodifica e descomprime esses dados em tempo de execução para extrair quatro valores:

  • MHost — URL do C2 principal.
  • BHost — URL do C2 de backup (pode ser idêntica ao MHost).
  • MX — nome do mutex (usado para impedir múltiplas execuções simultâneas).
  • TAG — rótulo de identificação da amostra.

Além da configuração de rede, o builder define um bitmap de funcionalidades habilitadas (screenshot, Telegram stealer, clipboard monitoring, sysinfo, entre outras). Isso significa que duas amostras de DCRat podem ter capacidades completamente diferentes mesmo usando o mesmo builder.

Ofuscação e anti-análise

Assim como boa parte do malware .NET comercial, o DCRat é protegido com .NET Reactor, um ofuscador comercial que renomeia símbolos, embaralha fluxo de controle e criptografa strings. A Mandiant FLARE demonstrou que a ferramenta de4dot consegue reverter essa ofuscação automaticamente, restaurando o código a um estado legível em dnSpy.

Um diferencial técnico importante é o uso de códigos hash para representar comandos C2. Em vez de transmitir strings como "shell" ou "keyloggerstart" na rede, o malware envia hashes numéricos (ex: 677710U para shell, 419613U para keyboardrecorder). O Splunk Threat Research Team conseguiu recuperar parte desses hashes simulando o algoritmo de hashing do DCRat a partir das strings divulgadas pela Mandiant. A tabela abaixo mostra os comandos mapeados:

ComandoHashDescrição
shell677710UExecuta comando no cmd.exe
ddos160478UEnvia pacotes TCP e UDP para alvo
forkbomb225809UInstancia processos cmd.exe infinitos
shutdown281864UDesliga a máquina
restart134266UReinicia a máquina
logoff334551UDesconecta o usuário
keyboardrecorder419613UCaptura e envia teclas pressionadas
clipboard788583UObtém conteúdo da área de transferência
fm_delete516557UApaga arquivos recursivamente
fm_zip18691UCompacta diretório e envia ao C2
uninstall859704URemove o malware do sistema
taskkill343584UFinaliza um processo
browseurl119627UAbre URL no navegador padrão

Persistência

O DCRat emprega três técnicas distintas de persistência, executadas em paralelo para maximizar a chance de sobrevivência a reinicializações:

Agendamento de tarefas. O malware cria uma tarefa agendada (scheduled task) no Windows que executa o payload copiado para %APPDATA% ou C:.

Chave de execução automática no registro. Uma entrada é adicionada em HKCU\Software\Microsoft\Windows\CurrentVersion\Run apontando para um atalho (.lnk) que executa a cópia do malware.

Chave Winlogon. O DCRat também adiciona uma entrada em HKCU\Software\Microsoft\Windows\CurrentVersion\Run\Winlogon, uma técnica menos comum que amplia as opções de inicialização automática.

O nome do executável copiado é escolhido aleatoriamente a partir de processos em execução no momento da infecção (ex: svchost.exe), o que dificulta a identificação por nome de arquivo.

Cadeia de infecção

A infecção pelo DCRat segue um padrão clássico de múltiplos estágios, documentado tanto pela CERT-UA quanto pela Splunk.

Primeiro estágio: spear-phishing. O alvo recebe um e-mail com um documento Office malicioso (.xls ou .xlsm) contendo macro VBA. Ao abrir o documento e habilitar as macros, o script VBA executa um comando PowerShell que baixa o próximo estágio de um servidor remoto.

Segundo estágio: PowerShell downloader. O comando PowerShell embutido na macro executa um script Base64 que faz o download de um loader (.bat ou .exe) para o diretório público do Windows (C:\Users\Public). Esse loader é responsável por fazer o download e executar o payload final do DCRat.

Terceiro estágio: execução do DCRat. O loader baixa o binário principal do DCRat (compilado pelo builder), salva em disco com um nome de processo aleatório e o executa. A partir desse momento, o backdoor estabelece persistência e inicia o beaconing para o C2.

Tática de atraso via w32tm

Um artefato comportamental curioso identificado pela Splunk é o uso do utilitário legítimo w32tm (Windows Time Service). O DCRat cria um script .bat que executa w32tm stripchart contra um servidor NTP, usando o delay gerado pela resposta como mecanismo de temporização antes de iniciar a comunicação com o C2. Esse comando raramente é usado por usuários comuns em redes de produção, o que o torna um pivô valioso para detecção.

Protocolo de comunicação C2

A Mandiant FLARE realizou engenharia reversa completa do protocolo C2 do DCRat, publicando o formato das mensagens e uma implementação proof-of-concept de servidor em Python.

Beacon inicial

Ao ser executado, o DCRat envia um beacon ao MHost calculando o hash SHA1 da URL completa do C2 e concatenando-o ao path da requisição, com o parâmetro ?data=active. Se o servidor responder com o corpo "ok", o malware segue usando o MHost. Caso contrário, ele passa a usar o BHost — que, na prática, costuma ser o mesmo endpoint.

Mensagens format 1 (GET)

Para enviar dados ao C2, o malware constrói URLs no formato:

<C2>/<path>/<user_hash>.php?type=__ds_setdata&__ds_setdata_user=<user_hash>&__ds_setdata_ext=<message_hash>&__ds_setdata_data=<data>

Onde:

  • user_hash é calculado como SHA1(OS_version + machine_name + user_name) usando a classe System.Environment do .NET.
  • message_hash é MD5(ext + user_hash), onde ext identifica o tipo de mensagem.
  • Um tipo especial de mensagem usa o valor "u" no lugar de message_hash.

Mensagens format 2 (GET especial)

Para tarefas específicas (screenshot, áudio, keylogging), o malware usa um formato alternativo onde o message_hash aparece diretamente no path, e o servidor responde com o comando desejado. Tipos possíveis incluem s_comm (screenshot pendente), m_comm (microfone), RDK (teclas a reproduzir) e comm (demais comandos).

Upload de arquivos (POST)

Arquivos grandes (screenshots, gravações de áudio, webcam, logs de cookies) são enviados via POST multipart para o C2, com o parâmetro name contendo o user_hash + tipo do arquivo (.jpg, .wav, .bmp, .zipstealerlog, .file).

Capacidades do DCRat

A análise da Mandiant FLARE catalogou mais de 40 comandos suportados pelo backdoor. As principais categorias são:

Acesso remoto e controle. Execução de shell remoto (cmd.exe), controle remoto da área de trabalho (RDStart/RDStop), abertura de chat, criação e deleção de usuários.

Roubo de dados e spyware. Keylogger com início/parada remota, captura de clipboard, screenshots, fotos de webcam, gravação de microfone, roubo de cookies de navegadores e credenciais salvas do FileZilla. O DCRat também coleta informações de contas Steam (user ID), Telegram (caminho do executável) e Discord (caminho dos dados locais).

Coleta de informações do sistema. GPU, CPU, webcam disponível, tipo de servidor, nome da máquina, nome de usuário, status de administrador e IP público (via consulta a ipinfo.io/json).

Manipulação de arquivos. Upload, download, rename, delete, zip, unzip de arquivos e diretórios. Enumeração de unidades lógicas.

Ataques de rede. DDoS via flood de pacotes TCP e UDP contra IP ou host especificado.

Impacto no sistema. Fork bomb (instanciação infinita de cmd.exe), desligamento, reinicialização, logoff, abertura/fechamento de bandeja de CD-ROM, ocultação da área de trabalho e da barra de tarefas, rotação de tela.

Execução de código arbitrário. Compilação e execução de código C# e VB em tempo real, carregamento de plugins .dll (DC LIB).

Como se proteger contra o DCRat

A detecção e mitigação do DCRat exigem uma abordagem em camadas, combinando monitoramento de endpoints, análise de tráfego e hardening de estações.

Monitoramento de processos e linha de comando. A Splunk publicou detecções específicas para o DCRat que identificam o uso atípico do w32tm stripchart, execução de fork bomb via cmd.exe, e chamadas a ipinfo.io a partir de processos não-navegador. Esses padrões são fortes indicadores de atividade do backdoor.

Controle de execução de macros. Como a porta de entrada mais comum do DCRat é o spear-phishing com documentos Office, bloquear macros de fontes não confiáveis via GPO ou MDM reduz drasticamente a superfície de ataque.

Lista de permissões de aplicações. Ferramentas como AppLocker ou Windows Defender Application Control podem impedir a execução de binários não assinados em diretórios como %APPDATA% e %TEMP%, que são os alvos preferenciais do DCRat para cópia de persistência.

Análise de tráfego HTTP suspeito. O protocolo C2 do DCRat gera URLs longas com paths compostos por hashes hexadecimais e parâmetros como __ds_setdata e __ds_getdata. Regras de proxy reverso ou IDS/IPS que sinalizem esses padrões podem identificar a comunicação mesmo antes de o payload ser detectado.

Monitoramento de mutex conhecidos. Embora o nome do mutex seja configurável no builder, alguns mutexes como DCR_MUTEX-* aparecem em amostras públicas. Ferramentas de Sysinternals como Handle ou Process Explorer podem ser usadas para inspecionar mutexes ativos em estações suspeitas.

Firewall de host. Bloquear conexões de saída para IPs suspeitos e serviços de descoberta de IP público (ipinfo.io) quando iniciadas por processos sem justificativa legítima.

Conclusão

O DCRat representa um marco na evolução dos RATs comerciais do underground: ele combina a flexibilidade de um builder modular com ofuscação razoável, um protocolo C2 que dificulta assinaturas de rede estáticas (via comandos hasheados) e um conjunto de capacidades comparável a soluções de acesso remoto legítimas. Sua adoção por grupos de alto calibre como o Sandworm demonstra que ferramentas de baixo custo disponíveis em fóruns já são sofisticadas o suficiente para operações state-sponsored. Para defensores, entender o protocolo, os padrões de beaconing e os IoCs do DCRat é essencial — especialmente com o ressurgimento do malware em campanhas brasileiras como a do falso GTA 6.

Perguntas frequentes

O DCRat é um malware novo?

Não. O DCRat (DarkCrystal RAT) existe desde pelo menos 2019, inicialmente em Java. A versão em C# (.NET) é relativamente mais recente e foi analisada em profundidade pela Mandiant FLARE em 2020.

Quem usa o DCRat em campanhas reais?

O DCRat foi documentado em campanhas do grupo Sandworm (GRU, Rússia) contra a Ucrânia em 2022, e na campanha do falso GTA 6 em 2026, que distribuía múltiplas cargas maliciosas incluindo NJRat e Chaos Wiper.

O DCRat é detectado por antivírus comuns?

Sim. A maioria dos antivírus detecta o DCRat com nomes como Backdoor.MSIL.DarkCrystal ou Trojan.GenericKD. No entanto, como o malware é gerado por um builder, cada amostra compilada tem hash diferente, o que significa que assinaturas estáticas sozinhas não são suficientes — é preciso detecção comportamental.

Qual a diferença entre DCRat e NJRat ou XWORM?

O DCRat tem builder próprio e é vendido como produto comercial em fóruns underground, enquanto o NJRat e o XWORM são RATs mais antigos e amplamente vazados. O DCRat se diferencia pelo protocolo C2 com comandos hasheados e pela arquitetura modular com suporte a plugins.

O que é o builder do DCRat?

É um executável (DCRatBuild.exe) que permite ao atacante configurar o nome do mutex, as funcionalidades habilitadas (screenshot, keylogger, Telegram stealer, etc.) e as URLs de C2 antes de compilar o payload final. Isso gera binários únicos que dificultam a detecção por hash.

Como o DCRat se comunica com o servidor C2?

O DCRat usa HTTP GET e POST para se comunicar com o C2. As URLs são longas e contêm hashes SHA1 e MD5 que identificam a máquina e o tipo de mensagem. Comandos são representados por hashes numéricos em vez de strings legíveis, o que dificulta assinaturas de rede estáticas.

O DCRat funciona em sistemas atualizados (Windows 11)?

Sim. Por ser escrito em .NET, o DCRat é compatível com qualquer versão do Windows que tenha o .NET Framework instalado (incluindo Windows 10 e 11). As técnicas de persistência (scheduled tasks, registry run keys) funcionam em todas as versões modernas do Windows.

É possível recuperar arquivos roubados pelo DCRat?

Isso depende de quando a infecção foi descoberta. Se o C2 do atacante ainda estiver ativo e o tráfego for interceptado, é possível capturar os dados exfiltrados. Após a remoção do malware, não há garantia de recuperação dos dados já enviados — a prioridade deve ser conter a exfiltração e rodar uma varredura completa.

Como remover o DCRat de uma máquina infectada?

A remoção envolve: (1) desconectar a máquina da rede para impedir nova comunicação C2, (2) executar varredura com antivírus atualizado, (3) remover manualmente as entradas de persistência (scheduled tasks, registry keys) e (4) deletar os binários copiados em %APPDATA% e C:. Em ambientes corporativos, a recomendação é restaurar a partir de um backup limpo ou reinstalar o sistema.

O DCRat tem versão para outras plataformas além do Windows?

As versões conhecidas do DCRat são Windows-only (Java e C#). Não há relatos públicos de versões para Linux ou macOS.

Fontes e leituras adicionais

Gostou? Receba novos conteúdos por e-mail.

Entre na comunidade

Discussões técnicas e novidades em primeira mão.