blank

blank

No submundo obscuro do crimeware russo, o DCRat parece ser um azarão. Ao contrário dos grupos de ameaças russos bem financiados e massivos que criam malware personalizado para atacar universidades, hospitais, pequenas empresas e muito mais, esse Trojan de acesso remoto (RAT) parece ser o trabalho de um ator solitário, oferecendo uma ferramenta caseira surpreendentemente eficaz para abrir backdoors em um orçamento. Na verdade, o RAT comercial desse agente de ameaças é vendido por uma fração do preço padrão que essas ferramentas cobram em fóruns clandestinos russos.

DCRat (também conhecido como DarkCrystal RAT) é um backdoor russo comercial que foi lançado pela primeira vez em 2018, antes de ser redesenhado e relançado um ano depois. Notavelmente, essa ameaça parece ter sido desenvolvida e mantida por uma única pessoa usando os pseudônimos de “boldenis44”, “crystalcoder” e Кодер (“Coder”).

Vendido predominantemente em fóruns clandestinos russos, o DCRat é um dos RATs comerciais mais baratos que já encontramos. O preço deste backdoor começa em 500 RUB (menos de 5 GBP/US$ 6) para uma assinatura de dois meses e, ocasionalmente, cai ainda mais durante promoções especiais. Não é de admirar que seja tão popular entre os atores de ameaças profissionais, bem como os script kiddies.

Essa faixa de preço é um recurso curioso, pois faz parecer que o autor não é particularmente voltado para o lucro. Pode ser que eles estejam simplesmente lançando uma ampla rede, tentando obter um pouco de dinheiro de um monte de pessoas maliciosas. Também pode ser que eles tenham uma fonte alternativa de financiamento, ou talvez este seja um projeto de paixão e não sua principal fonte de renda.

Perscrutando mais profundamente no Cristal Negro

A arquitetura modular do DCRat e a estrutura de plug-in sob medida o tornam uma opção muito flexível, útil para uma variedade de usos nefastos. Isso inclui vigilância, reconhecimento, roubo de informações, ataques DDoS, bem como execução dinâmica de código em uma variedade de linguagens diferentes.

O próprio produto DCRat consiste em três componentes:

  • Um executável ladrão/cliente
  • Uma única página PHP, servindo como terminal/interface de comando e controle (C2)
  • Uma ferramenta de administrador

A ferramenta do administrador é um executável autônomo escrito na linguagem de programação JPHP, uma implementação obscura do PHP que é executada em uma máquina virtual Java. Assim como os exemplos discutidos em nosso whitepaper anterior, discutindo linguagens de programação exóticas usadas por criadores de malware, o JPHP oferece alguns benefícios potenciais para fazer travessuras.

Como linguagem de programação, o público-alvo do JPHP é principalmente desenvolvedores iniciantes que fazem jogos de desktop multiplataforma. A facilidade de uso, bem como a portabilidade de seu código, atende bem a esse propósito. O autor do malware pode ter escolhido esse formato porque não é particularmente conhecido, ou pode não ter habilidades de programação em outras linguagens mais populares.

De acordo com a documentação do JPHP, esta implementação “compila fontes PHP para bytecode Java Virtual Machine (JVM), que pode então ser executado na JVM”. O projeto JPHP também fornece um ambiente de desenvolvimento integrado (IDE) dedicado em idioma russo chamado DevelNext. Este IDE foi usado para desenvolver a ferramenta de administrador DCRat, bem como algumas das primeiras versões do cliente DCRat.

Os dados de localização disponíveis em perfis públicos do GitHub indicam que a equipe principal de contribuição por trás do JPHP é predominantemente baseada na Comunidade de Estados Independentes (CEI), uma organização intergovernamental composta por doze países pós-soviéticos. A decisão do autor do DCRat de usar o JPHP pode ter resultado de um suposto nível de confiabilidade ou simplesmente da crença de que obter suporte para problemas ou aprimoramentos relacionados à estrutura JPHP seria mais fácil de estabelecer devido à familiaridade compartilhada com o idioma russo .

Examinando a compilação DCRat

O binário do cliente DCRat – destinado a entregar às máquinas da vítima – é escrito em .NET. Versões anteriores foram escritas em JPHP, como a ferramenta de administrador. Isso provavelmente foi feito para simplificar e otimizar o componente do cliente. O JPHP é bastante lento, pois é executado na JVM. E o malware distribuído é muito menor, pois não precisa incluir todas as bibliotecas JPHP.

DCRat é construído em torno de uma arquitetura modular que incorpora uma estrutura de plugins. Os afiliados podem gerar seus próprios plugins de clientes, que podem ser baixados e usados ​​pelos assinantes. (Incluímos uma lista dos plugins atuais na seção “Plugins”, mais adiante neste blog.)

O RAT atualmente parece estar em desenvolvimento ativo. A ferramenta do administrador e o backdoor/cliente são atualizados regularmente com correções de bugs e novos recursos; o mesmo se aplica aos plugins lançados oficialmente.

Durante os últimos meses, vimos frequentemente clientes DCRat sendo implantados com o uso de beacons Cobalt Strike por meio do Prometheus TDS (sistema de direção de tráfego). O Prometheus é um serviço de malware baseado em assinatura que foi usado em muitos ataques de alto perfil, incluindo campanhas contra instituições governamentais dos EUA em 2021.

Uma análise detalhada do cliente DCRat foi publicada pela Mandiant em maio de 2020. Apenas alguns dias após o lançamento deste relatório, o autor do malware mudou a distribuição do RAT para um novo domínio. Está claro que os cibercriminosos estão se tornando mais conscientes da publicidade da mídia e da comunidade de segurança, e estão se acostumando a fazer mudanças rápidas em resposta a essa exposição indesejada.

Vale a pena notar que há um segundo RAT de código aberto que também atende pelo nome DcRAT, que pode ser encontrado no repositório GitHub do usuário “qwqdanchun”. Este é provavelmente um projeto completamente não relacionado. Embora não tenha muitas semelhanças de código com o DCRat, pode ter sido uma inspiração para – ou inspirado por – a ameaça.

Oferta DCRat

O pacote DCRat, seus plugins, estrutura de desenvolvimento de plugins e ferramentas adicionais estão atualmente hospedados em crystalfiles[.]ru. Esses componentes foram movidos para lá de sua localização anterior em dcrat[.]ru. O site crystalfiles apresenta uma interface simples, como pode ser visto na Figura 1 abaixo, e serve apenas como ponto de download para o RAT. Não possui informações ou recursos adicionais para clientes potenciais ou existentes.

blank
Figura 1 – Links de download para componentes DCRat em crystalfiles[.]ru

Todas as operações de marketing e vendas do DCRat são feitas por meio do popular fórum russo de hackers lolz[.]guru, mostrado na Figura 2, que também lida com algumas das consultas de pré-venda do DCRat. Os tópicos de suporte do DCRat são disponibilizados aqui para o público em geral, enquanto o tópico principal de oferta do DCRat é restrito apenas a usuários registrados.

blank
Figura 2 – fórum lolz[.]guru – discussões sobre DCRat

É possível que o RAT também seja vendido em outros fóruns de acesso restrito ou na dark web. Os arquivos DCRat foram vistos em outros URLs e foram compartilhados por meio de mensagens instantâneas do Discord. O nome de arquivo mais comum para distribuição, em diferentes versões do RAT, parece ser “1ac770ea1c2b508fb3f74de6e65bc9c4.zip”.

Todas as novidades e atualizações do DCRat são anunciadas por meio de um canal dedicado do Telegram, conforme mostrado nas Figuras 3 e 4 abaixo. No momento da redação deste artigo, o canal tinha quase 3 mil inscritos.

blank
Figura 3 – Página do DCRat Telegram fornecendo notícias e atualizações

Além da conta DarkCrystalRAT Telegram, também existem dois bots Telegram: um para processar solicitações de vendas (“DCRatSeller_bot”) e outro para suporte técnico (“CrystalSupport_bot”).

Os preços mais recentes para licenças DCRat (excluindo quaisquer descontos temporários) são:

  • 500 RUB / US$ 5 para licença de dois meses
  • 2.200 RUB / US$ 21 por um ano
  • 4200 RUB / US$ 40 para uma licença vitalícia
blank
Figura 4 – DCRat Telegram anunciando descontos e preços especiais

O autor

Enquanto o desenvolvedor do DCRat publica como Кодер (“Coder”) no fórum lolz[.]guru (como mostrado na Figura 5), ​​seu identificador de telegrama é “@boldenis” e seu nome de usuário do GitHub é “boldenis44” (com base em um link de recurso enterrado no código-fonte DCRat mostrado na Figura 6). Eles devem ter usado o último nome no lolz[.]guru em algum momento, já que alguns usuários ainda se referem a eles como tal. Eles listam seu endereço de e-mail como crystalcoder[at]exploit[.]im. A data de nascimento e o endereço listados em seu perfil mostrado na Figura 5 abaixo são provavelmente falsos.

O perfil do fórum lolz[.]guru indica que o desenvolvedor é russo e trabalha sozinho.

blank
Figura 5 – Biografia do autor do DCRat em fóruns clandestinos
blank
Figura 6 – Página do GitHub com o mesmo nome de conta do autor do DCRat

“Boldenis44” também tem contas no fórum de hackers de jogos blast[.]hk, no servidor russo de Minecraft gamai[.]ru, bem como no dark marketplace russo DarkNet[.]ug, mostrado na Figura 7.

blank

blank
Figura 7 – Resultado da busca por “boldenis44”, autor de DCRat

Há também um perfil “Darkcrystal Rat” no VKontakte, uma rede social russa em vk[.]com (dcrat_1994), mas não está claro se pertence à mesma pessoa que boldenis44 / Coder. Esta página de perfil é mostrada abaixo na Figura 8.

blank
Figura 8 – Página de perfil do VKontakte para Darkcrystal Rat

A descrição em russo se traduz aproximadamente em “roubo dados, trabalho em ru, uk e o quê?” Não está totalmente claro o que isso significa, embora seja provável que eles estejam se gabando de roubar dados da Rússia, do Reino Unido e possivelmente de outros países.

A foto neste perfil vem de um filme de hackers alemão de 2014 chamado “Quem sou eu: nenhum sistema é seguro”. Esta foto foi alterada recentemente – a versão em cache deste site mostra uma imagem (veja a Figura 9) que é uma representação relativamente popular de um hacker, e a frase russa que se traduz de forma um tanto criptográfica como: “I drive SS into Dark”.

blank
Figura 9 – Visualização do Google Cache de uma versão anterior do perfil Darkcrystal Rat

Outro criador de malware, alegando ser o autor de um notório RAT chamado njRAT , mudou recentemente sua foto de perfil para o mesmo quadro de “Quem sou eu”, conforme mostrado na Figura 10.

blank
Figura 10 – Página do Facebook do autor do njRAT, apresentando o mesmo avatar do perfil do Darkcrystal Rat

Isso é provavelmente uma coincidência, pois o perfil do njRAT é escrito por alguém que fala árabe, não russo.

Houve outro perfil no site VKontakte que foi visto mencionando a URL crystalfiles[.]ru, como mostrado na Figura 11, que era para Rodion Balkanov (Родион Балканов): https[:]//vk[.]com/bagyuvix . No entanto, esta conta foi removida e não está mais disponível.

blank
Figura 11 – Visualização do Google da página do VKontakte mencionando o URL de distribuição do DCRat

A linha do tempo

Embora o projeto DCRat pareça ter começado com vários meses de antecedência, uma campanha de marketing em maior escala ocorreu em setembro de 2019, quando o canal Telegram foi criado e o domínio dcrat[.]ru registrado. Pouco depois disso, o RAT foi significativamente redesenhado para suportar plugins em um formato personalizado.

O próximo grande lançamento veio em maio de 2020 (versão 3.0), seguido pela versão 4.0 em março de 2021. Entre os principais lançamentos, o RAT recebeu atualizações menores e correções de bugs regularmente, sugerindo que o autor estava altamente envolvido com sua criação durante este período, como mostrado abaixo.

  • 31 de julho de 2018 – Perfil Кодер (“Codificador”) criado no fórum lolz[.]guru
  • 1º de setembro de 2019 – canal Telegram chamado DarkCrystalRat criado
  • 2 de setembro de 2019 – dcrat[.]ru registrado (veja a Figura 12)
blank
Figura 12 – informações whois do domínio dcrat[.]ru
  • 4 de setembro de 2019 – Introdução de um formato de plug-in personalizado: DCLIB
  • 19 de novembro de 2019 – Redesenho da ferramenta do administrador
  • 12 de maio de 2020 – Mandiant publica análise do cliente DCRat
  • 27 de maio de 2020 – crystalfiles[.]ru registrado; distribuição muda para o novo domínio
blank
Figura 13 – informações whois do domínio crystalfiles
  • 30 de maio de 2020 – Versão 3.0 lançada
  • Outubro de 2020 – Lançamento do DCRat Studio, uma plataforma sob medida que permite que desenvolvedores de terceiros criem plugins
  • 18 de março de 2021 – Versão 4.0 lançada
  • 31 de dezembro de 2021 – Desconto de 50% por tempo limitado em todos os tipos de licenças, como oferta de Ano Novo
  • 6 de março de 2022 – Devido à desvalorização do rublo, os preços mudaram de rublos para dólares a uma taxa de câmbio de US$ 1 = 100 RUB
  • 28 de março de 2022 – Desconto de preço por tempo limitado para licenças de dois meses, um ano e vitalícias para US$ 5, US$ 19 e US$ 39, respectivamente.

Novos plugins e pequenas atualizações são anunciados quase todos os dias.

A ferramenta do administrador RAT

O autor do malware optou por desenvolver a ferramenta de administração do RAT em JPHP usando um IDE russo de nicho chamado DevelNext. O DevelNext compila o programa PHP em um bytecode Java, que pode ser executado na JVM.

De acordo com sua página do GitHub, o IDE ainda está em fase beta e está disponível apenas no idioma russo neste momento. No passado, vimos muito poucos exemplos de malware escritos em JPHP, porque os executáveis ​​que ele produz são excepcionalmente grandes e lentos para executar.

Um exemplo de malware que usa esse IDE é um backdoor rudimentar chamado IceRAT, descoberto no início de 2020. Esse malware visava vítimas de língua russa instalando software de mineração de criptografia em seus terminais. Um exemplo mais antigo é aquele que foi escrito para OSX como parte de uma campanha direcionada às carteiras de criptomoedas Jaxx , que foi descoberta em 2018.

Conteúdo do Arquivo

A ferramenta do administrador vem como um arquivo ZIP com a seguinte estrutura:

Nome do arquivo Descrição
DCRat.exe Iniciador de administrador (criado usando o wrapper Launch4j)
dcrat_updservice.exe Ferramenta de atualização de administrador
updatelauncher.bat Script que executa dcrat_updservice.exe
Notificar.wav Arquivo de áudio com som de notificação (2,5 segundos)
dados/ Localização de utilitários auxiliares
Projeto/ Contém o arquivo DeleteAll_legacy.json
lib/ Localização de todos os módulos Java do construtor
plug-ins/ Usado para armazenar plugins baixados; por padrão, contém apenas um plug-in de teste
perfis/ Diretório vazio usado para armazenar os perfis salvos do usuário
O diretório lib é o lar do módulo do construtor principal, junto com vários módulos JPHP legítimos dos quais o construtor depende.
hash SHA256 Descrição
9967ea3c3d1ae8db5a723f714fba38d2fc26d8553435ab0e1d4e123cd211830 Módulo JSON
6014d44d8f7da00f03db051b3dcea9a03ec3837977118c69a4512ef558a6df2a Módulo do construtor principal
cf4068ebb5ecd47adec92afba943aea4eb2fee40871330d064b69770cccb9e23 Módulo GUI
5b37e8ff2850a4cbb02f9f02391e9f07285b4e0667f7e4b2d4515b78e699735a Módulo principal JPHP
4aef566bbf3f0b56769a0c45275ebbf7894e9ddb54430c9db2874124b7cea288 módulo zend
d637e3326f87a173abd5f51ac98906a3237b9e511d07d31d6aafcf43f33dac17 módulo jfoenix
c25d7a7b8f0715729bccb817e345f0fdd668dd4799c8dab1a4db3d6a37e7e3e4 módulo javafx
2d43eb5ea9e133d2ee2405cc14f5ee08951b8361302fdd93494a3a997b508d32 Módulo Google Gson
15f36830124fc7389e312cf228b952024a8ce8601bf5c4df806bc395d47db669 módulo PHP
9c287472408857301594f8f7bda108457f6fdae6e25c87ec88dbf3012e5a98b6 Módulo de tempo de execução JPHP PHP
434e57fffc7df0b725c1d95cabafdcdb83858ccb3e5e728a74d3cf33a0ca9c79 módulo XML
0f26584763ef1c5ec07d1f310f0b6504bc17732f04e37f4eb101338803be0dc4 Módulo JPHP SDK
4bec0794a0d69debe2f955bf495ea7c0858ad84cb0d2d549cacb82e70c060cba módulo javafx
03ead999502aefbf1380bd2e9c4a407acb7a92a7b2fe61f6995aba3fca85efd4 módulo objectweb asm
O ponto de entrada do construtor é especificado em < main_module>.jar/.system/application.conf e aponta para dct/forms/MainForm.phb .
 # CONFIGURAÇÃO PRINCIPAL
app.name = DCRat2.0
app.uuid = fabb4b64-bb3a-4418-a495-a0e669188d81
app.version = 1 # APP
app.namespace = dct
app.mainForm = MainForm
app.showMainForm = 1
app.fx.splash.autoHide = 0
O diretório de dados contém um compilador sob medida para produzir o executável do cliente, uma ferramenta de ofuscação EXE sob medida, uma ferramenta comercial de proteção .NET chamada .NET Reactor e utilitários de compactação WinRAR e UPX.
SHA256 Nome do arquivo Descrição
d0680ac62e94f953df031533acd0acb718ad8494f938d84198c655507709e5df 7zxa.dll DLL 7zip legítima
914cca033fc8ca52830a21b5dca55263cee1e74ab5571702906ee9c25aedafd7 DCRAC.exe Ofuscador DCRat EXE
812cd4b5e80bc4e83a2e01a6f3fb24346ecf57dcaf8ff6fc3e55a2a6b953da23 DCRCC.exe, DarkCrystalRATCSharpCompiler.exe Compilador DCRat
b11ad1adfa96eacf5f18cf87785884947a6d35a1baebf4f20f16402b04d5109f Default.SFX Parte do WinRAR
a0b6bb521e52a99abf5ac1017302da014d37296619078d42d9edf5d86d137f63 NCC2.dll Parte do .NET Reactor
38274608d5a4b53ec22f8099f798ba46ce0ed41db65a33dfb3853f0dbf849f6f NCC3.dll Parte do .NET Reactor
c41cd461470ff3c936e225cea37e5190cb06e3cd70a3d76ca8e5d3aceead5493 NCCheck.dll Parte do .NET Reactor
770d7b5e40ed9b0aff5d0e3fc2ccf9ba10d4925d3441f38b71a35bd26e6e8d98 Rar.exe Parte do WinRAR, assinado
35a21f1aebf8ea0ab9be1814131fec1fa079d91b701e505054b69eccbdfd0732 RarExt.dll Parte do WinRAR, assinado
db28575f61b1adc88a28ae51ce3b00226e4974ca60894896e414ea408c6ff9fe RarExt64.dll Parte do WinRAR, assinado
ca08ed8423afda4b41757a1f3adf4f855732dc0628fe2ea5d8a96b13f56b9f84 WinCon.SFX Parte do WinRAR, assinado
2293fe261d5c6f5f2a33004b11f068037677b7aa5a6f792031e31555f31f0d69 Zip.SFX Parte do WinRAR
83445595d38a8e33513b33dfc201983af4746e5327c9bed470a6282d91d539b6 dnlib.dll DNLib – biblioteca de leitor/gravador de montagem .NET
e817802f166662a7df0b144571354d74b10e34d120f91ae9d84ca3ba925241c6 dotNET_Reactor.Console.exe Parte do .NET Reactor

 

78684aea83b1a5c402a87ba0ce2e7ad5b0338462cc804e97369203ce53d29834 dotNET_Reactor.exe Parte do .NET Reactor

 

5981e508e89c65c445fca892e91b8ec39b1d8563804d0999d963d640aa592444 enc.vbe Script usado para codificar scripts VBS
d634cde09d1aa1320a1d4c589d35d306f8350129faf225b2bca394128c2c4442 upx.exe UPX 3.96 Windows 32 bits
1317d70682bd11e5d320af850d6ecbb5a70c200d626ec7bf69c47566894db515 wRar.exe Parte do WinRAR, assinado


Formato de arquivo PHB

Em vez de arquivos de classe Java, os arquivos JPHP JAR são compostos principalmente de arquivos PHB.

PHB é um formato de arquivo personalizado usado exclusivamente pelo JPHP. Os arquivos PHB são simplesmente arquivos que contêm arquivos de classe Java não compactados e não criptografados e um cabeçalho PHB. Cada arquivo de classe Java é precedido por um cabeçalho de arquivo de classe, contendo informações como nome do módulo, nomes de métodos, caminho do arquivo PHP e comprimento do arquivo de classe.

Os arquivos de classe podem ser extraídos com o seguinte script Python e, em seguida, descompilados usando ferramentas como JAD ou jd-gui.

import os
import sys
import structin_file = sys.argv[1]
out_dir = os.path.splitext(in_file)[0] + “_extracted”
in_size = os.path.getsize(in_file)

os.mkdir(out_dir)

com open(in_file, ‘rb’) como f:
buf = f.read()
magic = b’\xCA\xFE\xBA\xBE’
offsets = [i for i in range(len(buf)) if buf.startswith (magic, i)]
contagem = 0
para de em deslocamentos:
file_name = os.path.splitext(in_file)[0] + “_” + str(count) + “.class”
f.seek(of – 4)
class_len = struct.unpack(‘>i’, f.read(4))[0]
file_data = f.read(class_len)
com open(os.path.join(out_dir, file_name), “wb”) como f2:
f2 .write(file_data)
contagem += 1


Estrutura do arquivo PHB (exemplo):

1C 9A 4A 92 assinatura PHB
01 33 53 D3
00 00 00 00
00 00 00 33
00 33 len da seguinte string
44 3A 5C 49 string “D:\IdeaProjects\DCRat2.0\src\dct\forms\MainForm.php”
[…]
00 00 00 2D
00 2D len
24 70 68 70 “$php_module_mba8a6a7b4b0144048b64e6456cd9fb81”
[…]
00 01
FF FF FF FF
FF FF FF FF
00 07 len
55 6E 6B 6E “Desconhecido”
[…]
00 00 00 00
00 00 03 4F         número de arquivos de classe
00 00 00 36         início do cabeçalho do arquivo de classe #1
00 36 len
24 70 68 70 “$php_module_mba8a6a7b4b0144048b64e6456cd9fb81_closure0”
[…]
00 00 00 00
00 00 00 00
FF FF FF FF
00 00
FF FF FF FF
FF FF FF FF
00 01
00 00 00 00
00 00 00 08
00 08 len
5F 5F 69 6E “__invoke”
76 6F 6B 65
00 00 00 08
00 08 len
5F 5F 69 6E “__invoke”
76 6F 6B 65
01 00 00 00
39 00 00 00
18
00 33 len
44 3A 39 00 00 D:\ IdeaProjects\DCRat2.0\src\dct\forms\MainForm.php”
[…]
00 00 0A 98 len of class file #1
CA FE BA BE         start of class file #1
[…]
00 00 00 36         start of class file header #2
00 36 len
24 70 68 70 “$php_module_mba8a6a7b4b0144048b64e6456cd9fb81_closure1”
[.. .]
00 00 00 00
00 00 00 00
FF FF FF FF
00 00 FF FF
FF FF FF FF
FF FF 00 01
00 00 00 00 00 00
00 08
00 08 len
5F 5F 69 6E “__invoke”
76 6F 6B 65 6F 6B 65
00 08
00 08 len
5F 5F 69 6E “__invoke”
76 6F 6B 65
01 00 00 00
40 00 00 00
18
00 33 len
44 3A 5C 49 “D:\IdeaProjects\DCRat2.0\src\dct\forms\MainForm.php”
[…]
00 00 0A 9B len of class file #2
CA FE BA BE        início do arquivo de classe #2
[…]


Licenciamento

A ferramenta de administrador DCRat, mostrada abaixo na Figura 14, impede o uso não autorizado por meio de uma série de verificações de licença online. Depois que essas verificações forem bem-sucedidas, a interface do administrador ficará disponível.

blank
Figura 14 – Verificações de licença da ferramenta do administrador impedindo o uso não autorizado

As verificações consistem em consultas HTTPS para o domínio codificado dcrat[.]ru.

Validação de pares

A primeira verificação de validação transmite um valor aleatório de 64 caracteres, com hash e codificado em Base64 antes da transmissão. A resposta do servidor C2 deve conter o mesmo valor e deve ser similarmente codificada e codificada para ser considerada válida. Essa troca fornece validação de pares rudimentar, garantindo que a ferramenta do administrador esteja se comunicando com um servidor de licenças DCRat genuíno.

Validação do Assinante

Uma segunda solicitação HTTPS autentica o computador no qual a ferramenta do administrador está sendo executada, conforme mostrado na Figura 15. Várias propriedades do host são coletadas para gerar uma impressão digital exclusiva. Isso é transmitido para dcrat[.]ru e (presumivelmente) corresponderá a uma entrada de assinante válida.

blank
Figura 15 – Consultas HTTPS de validação de licença para o domínio dcrat[.]ru

Botão de desligar

A ferramenta do administrador também realiza uma verificação final incomum de HTTPS para um recurso público hospedado no GitHub, sob o espaço pessoal de “boldenis44”. As funções de consulta e resposta têm um “kill switch” global, conforme mostrado na Figura 16. A critério do autor do DCRat, inverter esse switch tornaria todas as instâncias da ferramenta de administrador do DCRat inutilizáveis, independentemente da validade da licença do assinante (tanto para que “ Licença Vitalícia”!).

blank
Figura 16 – Kill switch mestre hospedado no GitHub; Ainda ativo

Esse recurso kill switch foi encontrado em compilações de ferramentas de administrador separadas datadas de meados de 2021 e início de 2022.

Funções do administrador

A ferramenta do administrador permite que um assinante execute as seguintes ações:

  •  Faça login em um servidor C2 ativo
  •  Emitir tarefas para instalações de clientes registrados
  •  Gerar builds do Loader e/ou Client
  •  Visualizar e consultar estatísticas de instalação
  •  Envie relatórios de bugs para o autor do DCRat

O login precisa ser executado em um servidor C2 ativo que hospeda o PHP de back-end, conforme mostrado na Figura 17.

blank
Figura 17 – Verificações de licença concluídas; agora autenticação para C2 hospedado

Os parâmetros de login seguem uma sintaxe obscura:

  • http://<server>/@<reversed_base64_PHP_pagename_minus_php_suffix>
  • senha

Notícias falsas?

Por motivos que não são totalmente claros, o autor do DCRat implementou uma função que exibe um número gerado aleatoriamente de “Servidores funcionando” e “Usuários online” que devem aparecer como estatísticas em segundo plano da ferramenta do administrador. Pode ser que eles estejam tentando fazer sua ferramenta parecer mais popular, ou que eles simplesmente não saibam como implementar um contador preciso e tenham empregado um pseudo-contador nesse meio tempo como um espaço reservado.

Funções administrativas

Após a autenticação, a ferramenta do administrador começa a sondar o C2 para obter detalhes de hosts conectados e infectados.

As funções são agrupadas usando guias, conforme mostrado na Figura 18:

blank
Figura 18 – Aba de funções principais da ferramenta Administrador

Comercial 

Esta guia lista as instalações ativas/registradas do cliente DCRat em execução em hosts infectados. A lista é atualizada usando uma pesquisa periódica para o C2.

Construtor

Essa guia é onde o agente da ameaça pode configurar (e gerar) compilações do executável do cliente DCRat. Na versão analisada da ferramenta do administrador, o “núcleo” do cliente é baixado do domínio dcrat[.]ru como uma string Base64, tornando-se entrada para “DCRCC.exe”.

blank
Figura 19 – Página de configuração da ferramenta do administrador para configurações de tempo de execução do cliente

Estes são os parâmetros disponíveis para configuração:

  • Rede: 
    • Especifica uma lista de hosts C2 primários e secundários (os protocolos de transporte são limitados a HTTP/S).
  • Proteger: (mostrado na Figura 19)
    • Ofuscação opcional de binários de cliente gerados usando o .NET Reactor
    • Nome mutex a ser usado durante a execução – por padrão, é uma string alfanumérica aleatória de 20 caracteres precedida pelo prefixo DCR_MUTEX
    • DCR_MUTEX-<20_ALPHANUM_RAND>
    • Desative o Gerenciador de Tarefas do Windows por meio da entrada do Registro (consulte IoC)
    • Especifique o carimbo de data/hora de criação do PE (spoof)
    • Atraso de lançamento em segundos
  • Plug-ins: 
    • Configurar e habilitar plugins DCRat
  • Instalação: 
    • Caminho para descompactar módulos quando o cliente DCRat é executado
    • Mecanismo de persistência a ser usado
    • Primeiro script de comando de inicialização a ser usado
    • Valor da tag a ser exibido em hosts que executam a compilação DCRat (ou seja, ID da campanha)
    • Funções automáticas – funções para iniciar automaticamente após o lançamento:
      • Ladrão
      • Keylogger
      • Desinstalar (excluir automaticamente)
    • Force Admin – tente forçar os direitos de administrador no lançamento
    • Criar armazenamento em cache
  • Construir:
    • Compressão UPX opcional da compilação
    • Extensão de arquivo a ser usada
    • ícone do arquivo PE

Carregador 

Configure e construa um binário do carregador DCRat. O suporte é fornecido para uma variedade de “Ações” empilháveis ​​combinadas para determinar o comportamento do tempo de execução:

  • ⇬ Fazer download do arquivo
  • Executar arquivo
  • solicitação HTTP
  • Script CMD
  • Esperar
  • Caixa de mensagem

Ferramentas 

Fornece upload de arquivos e conversor de cookies Netscape para JSON.

Definições 

Defina as configurações do Construtor:

  • Alterar imagem de fundo da GUI
  • Pesquise automaticamente C2 para hosts/instalações conectados (infectados)
  • Mostrar notificações

Estatisticas 

Relatórios predefinidos para consultar as instalações do cliente DCRat (país, versão do Windows etc.)

ID DO USUÁRIO 

Não podemos confirmar no momento para que serve essa função. É possível que este seja um cliente de terminal/controle remoto direto para um host infectado.

Relatório de erro 

Envie um relatório de bug ao(s) mantenedor(es) do DCRat.

Tarefas

Configure as tarefas a serem executadas em um ou mais clientes DCRat. As tarefas podem ser salvas (exportadas) ou carregadas (importadas) do arquivo de texto. As tarefas são armazenadas como uma string Base64 invertida.

Funções Globais 

Configure as tarefas a serem executadas em todos os clientes DCRat registrados.

Cliente DCRat

Nesta seção, revisamos os recursos do cliente DCRat (stealer) e do DCRat Loader. O comportamento do tempo de execução para ambos é configurado usando a ferramenta de administrador DCRat.

Carregador de cliente

A ferramenta do administrador fornece uma função para gerar um executável DCRat “Loader”. Na versão que analisamos, a geração de um loader em formato DLL não era suportada. É concebível que o autor possa adicionar esse suporte em compilações mais recentes.

O comportamento do Loader quando executado é configurado por meio de uma ou mais “Ações” enlatadas, conforme mostrado na Figura 20. Uma compilação típica pode ser uma combinação de “Download File”, “Wait” e “Execute File”, que puxaria silenciosamente baixar um arquivo e executá-lo depois de esperar tempo suficiente para evitar levantar suspeitas.

blank
Figura 20 – Tarefas de tempo de execução para o carregador DCRat, configuradas usando a ferramenta Aadministrator

O código-fonte do Loader é incorporado à ferramenta do administrador como uma série de strings Base64 que decodificam para revelar o código-fonte C#. O código para o executável é selecionado com base nas ações escolhidas pelo usuário. O pacote “DCRCC.exe” gera o executável.

Se selecionado, o executável gerado será protegido usando o DotNET Reactor:

“-control_flow_obfuscation 1 -flow_level 9 -resourceencryption 1 -stringencryption 1 -suppressildasm 0 -all_params 1 -obfuscate_public_types 1 -exception_handling 0”

Persistência

A persistência para DCRat é limitada a locais comuns de “execução automática” do Windows:

  1. Registro, usando HKLM\Software\Microsoft\Windows\CurrentVersion\Run
  2. Registro, usando HKCU\Software\Microsoft\Windows\CurrentVersion\Run
  3. Registro, usando HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon (REG_SZ: “Shell”)
  4. Tarefa Agendada /ONLOGON
  5. Tarefa agendada /sc minuto RandomMinMax(5,15)

O executável do cliente se copia para a raiz da unidade do sistema (por exemplo, C:\) usando o nome de um processo em execução escolhido aleatoriamente, excluindo “svchost.exe”.

Configuração

A configuração do DCRat é incorporada no binário do cliente como um recurso de string codificado em Base64. Ele tem um formato JSON e contém URLs C2, uma tag, um nome mutex e algumas opções de execução, bem como opções de configuração específicas de plug-ins para plug-ins incluídos.

Nome Tipo Descrição
H1 fragmento URL C2 principal
H2 fragmento URL C2 secundário
MARCAÇÃO fragmento Uma tag especificada no momento da compilação (por exemplo, ID da vítima, ID da campanha etc.)
MUTEX fragmento Nome mutex; por padrão, é um valor alfanumérico aleatório precedido pelo prefixo “DCR_MUTEX-“, mas pode ser definido como qualquer string
DBG bool Ativar/desativar a depuração
BCS int Criar tamanho de armazenamento em cache
AUR int Uso exato desconhecido; controla o comportamento de renomeação/persistência do arquivo
COMO bool Ativar/desativar roubo automático
AK bool Ativar/desativar keylogger automático
DE ANÚNCIOS bool Ativar/desativar a desinstalação automática
CONFIGURAÇÕES DE PLUGIN objeto Opções de configuração específicas do plug-in
Abaixo está um exemplo de configuração encontrado em uma amostra distribuída por meio do Prometheus TDS:
{
“H1”: “http[:]//co44089.tmweb[.]ru /9rsk8lug9peq4f23cjhyo3fz2q7j81vhnvil6c6tjdc7adzbia1ki04d9p65b5wfe4ronb0rtm/4vsyc5bajheyp1gt5i63igklh15828uwuwsek0x0p9frsqy1l2boc3l936aratwc7jddw2djzm40u83r6f/ybxoa2zsmu9ovinlf57463869tj”,
“H2”: “http[:]//co44089.tmweb[.]ru /9rsk8lug9peq4f23cjhyo3fz2q7j81vhnvil6c6tjdc7adzbia1ki04d9p65b5wfe4ronb0rtm/4vsyc5bajheyp1gt5i63igklh15828uwuwsek0x0p9frsqy1l2boc3l936aratwc7jddw2djzm40u83r6f/ ybxoa2zsmu9ovinlf57463869tj”,
“TAG”: “GFN”,
“MUTEX”: “DCR_MUTEX-bQ2or3bMKAwvUmZaLKHY”,
“DBG”: falso,
“BCS”: 0,
“AUR”: 1,
“AS”: true,
“AK”: true,
“AD”: false,
“PLUGINCONFIGS”: {
“MessageOnStartConfig”: {
“caption”: “GFN hacker”,
“text”: “Aguarde 10 minutos”,
“icon”: “Informações”,
“botões”: “OK”,
“uniq”: “chpf05oqbupjilp1ccxqb65xf”
},
“XMRigMinerCFG”: {
” SavePuth”: “C:/WindowsDefender/RunShell.exe”,
“Gate”: “xmr.pool.minergate.com:45700”,
“UserName”: “[email protected]”,
“Password”: “x”,
“DopArguments”: “–donate-level=1 –pause-on-battery”,
“CPUPriority”: “0”,
“cpumaxthreadshintn”: “25”,
“mode”: “light”
}
}
}


Impressão digital do host

Como parte do registro inicial, o cliente DCRat relata uma série de atributos de host para seu C2. Essas informações são determinadas usando uma combinação de WMI, classes de instrumentação fornecidas pelo .NET e consultas de registro do Windows:

  • Nome do computador host
  • Nome de usuário do host
  • Produto/versão do Windows
  • Valor da tag (incorporado; ID da campanha)
  • É administrador
  • Nome(s) da placa de vídeo
  • Produto/fornecedor de CPU
  • Etiquetas de unidades locais, de rede e removíveis
  • Tem microfone
  • Webcam instaladas
  • Texto da janela ativa
  • País, Cidade, Lat/Long (geoip)
  • Produtos antivírus instalados
  • Produto(s) de firewall instalado(s)
  • fabricante do BIOS
  • Fabricante da placa-mãe
  • Fornecedor de CPU
  • Memória física
  • Interfaces de rede (IP, WiFi/Ethernet)
  • Versão .Net instalada
blank
Figura 21 – Consulta WMI do ladrão de DCRat para identificar dispositivos de webcam como parte da impressão digital do host
Todas as transações HTTPS usam um User Agent aleatório, escolhido de uma matriz incorporada de 12:
“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/96.0.4664.45 Safari/537.36”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:95.0) Gecko/20100101 Firefox/95.0”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/95.0.4638.69 Safari/537.36”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/96.0.4664.93 Safari/537.36”,

“Mozilla/5.0 (Windows NT 10.0; rv:91.0) Gecko/20100101 Firefox/91.0”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/96.0.4664.55 Safari/537.36 Edg/96.0.1054.34”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/95.0.4638.69 Safari/537.36 Edg/95.0.1020.53”,

“Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/96.0.4664.45 Safari/537.36”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/95.0.4638.69 Safari/537.36 OPR/81.0.4196.60”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/96.0.4664.45 Safari/537.36 Edg/96.0.1054.29”,

“Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Firefox/91.0”


Funcionalidade do ladrão

As funções Stealer do DCRat são pré-configuradas usando a ferramenta de administrador “Builder”. Stealer “Tarefas” definem a sequência de operações realizadas durante o roubo de informações armazenadas:

O DCRat pode roubar das seguintes fontes (incluindo as ilustradas na Figura 22):

  • Cookies do navegador
  • Senhas armazenadas no navegador
  • Conteúdo do formulário armazenado no navegador
  • Histórico do navegador
  • Cartões de crédito armazenados (via Windows DPAPI e banco de dados Chrome SQLite)
  • Telegrama
  • Conta Steam
  • Fichas de discórdia
  • Credenciais do FileZilla
  • Capturas de tela
  • Keylogger
  • Conteúdo da área de transferência
  • Sysinfo
blank
Figura 22 – Categorias de informações roubadas pelo cliente DCRat

O componente Stealer também é capaz de executar plugins sob medida, tornando-o extensível para acomodar informações que os autores de malware encontram em alvos específicos.

Negação de serviço

O DCRat Stealer contém código primitivo multi-thread para executar diferentes formas de ataques DOS – incluindo HTTP(S) POST, UDP e TCP – para uma combinação específica de host e endpoint.

Táticas de atraso

Comum a muitas famílias de malware, o DCRat emprega o uso de ferramentas de linha de comando do Windows para realizar atrasos na execução. Associadas à execução do cliente DCRat estão as invocações da ferramenta de linha de comando do Windows para configuração do serviço de tempo, w32tm. Quando configurado com argumentos de linha de comando adequados, conforme mostrado na Figura 23, ele pode atuar como um mecanismo de atraso. No caso de DCRat, são passados ​​argumentos que atuam como atrasos de 10 segundos. Instâncias coincidentes de w32tm no endpoint XDR podem ser um sinal possível, embora um pouco fraco, da execução do cliente DCRat:

blank
Figura 23 – Comandos de atraso usados ​​ao terminar automaticamente

Plug-ins

Os plug-ins podem ser projetados por desenvolvedores de terceiros com o uso de um IDE dedicado chamado DCRat Studio. Plugins oficiais estão disponíveis para download em crystalfiles[.]ru (como mostrado na Figura 24) e sua funcionalidade inclui exfiltração de dados/roubo de credenciais, manipulação de sistema e mineração de criptomoedas.

blank
Figura 24 – Plugins disponíveis para download para assinantes

Para aproveitar o poder do desenvolvimento de crowdsourcing e incentivar um ecossistema de plug-ins que visam diferentes armazenamentos de informações, os assinantes do DCRat têm acesso a uma lista de plug-ins de terceiros suportados. O funcionamento interno preciso de cada plugin é desconhecido, mas o nome de cada um fornece um indicador de função:

  • AutoKeylogger (obsoleto)
  • AntiVM (fundido com AntiAnalysis)
  • MiscInfoGrabber
  • WebBrowserPassView
  • Executar Uma Vez
  • DesktopGrabber
  • StartupPlus
  • AntiKiller
  • AntiSNG
  • BlockInput
  • Mensagem no início
  • ClipboardLogger
  • RegEditor
  • Pesquisador de arquivos
  • FileGrabber
  • TitleKiller (obsoleto)
  • ProcessKiller
  • CryptoStealer
  • TelegramNotifier
  • AntiAnálise
  • Aparador
  • CountryBlackList
  • VPNGrabber
  • ForceAdmin
  • SystemRestorePoints Cleaner
  • UserPingCounter
  • Notificador ActiveWindow
  • FakeSteam Windows
  • Notificações de discórdia (terceiros)
  • IgnorTags (terceiros)
  • Kryptex Miner (terceiro)
  • XMRig (terceiro)

Conclusões

Os maiores e mais chamativos grupos de ameaças podem ter seu nome em evidência, mas não são necessariamente os cibercriminosos que mantêm os profissionais de segurança acordados à noite. As ameaças assustadoras e de ponta que saem desses grupos de ameaças avançados e bem financiados ocasionalmente causam dores de cabeça para aqueles de nós que não estão guardando segredos de estado ou quantias ridículas de dinheiro. Mas os malfeitores com muito tempo em suas mãos muitas vezes podem causar tanto aborrecimento.

De um modo geral, você recebe o que paga, mesmo em malware. Se você paga uma ninharia por algo, seria sensato esperar que fosse menos funcional ou mal suportado. Mas o DCRat parece quebrar essa regra de uma forma que é profundamente desconcertante.

O código deste RAT está sendo aprimorado e mantido diariamente. Se a ameaça está sendo desenvolvida e sustentada por apenas uma pessoa, parece que é um projeto em que ela está trabalhando em tempo integral.

Certamente há opções de programação nessa ameaça que apontam para um autor de malware novato que ainda não descobriu uma estrutura de preços apropriada. Escolher programar a ameaça no JPHP e adicionar um contador de infecção bizarramente não funcional certamente aponta nessa direção. Pode ser que essa ameaça seja de um autor tentando ganhar notoriedade, fazendo o melhor com o conhecimento que tem para tornar algo popular o mais rápido possível.

Embora a aparente inexperiência do autor possa fazer essa ferramenta maliciosa parecer menos atraente, alguns podem vê-la como uma oportunidade. Atores de ameaças mais experientes podem ver essa inexperiência como um ponto de venda, pois o autor parece estar dedicando muito tempo e esforço para agradar seus clientes.

Indicadores de Compromisso (IOCs)

ladrão de DCRat; Comando de atraso; Invocação de processo/.BAT:
“w32tm /stripchart /computer:localhost /period:5 /dataonly /samples:2”

ladrão de DCRat; Autopreservação; Alterações no Registro do Windows:
HKCU\Software\Microsoft\Windows\CurrentVersion\Policies\System
REG_DWORD: “DisableTaskMgr”:1

ladrão de DCRat; Persistência; Registro do Windows:
HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon
REG_SZ: “Shell”: “explorer.exe, %STEALER_EXE_PATH%”
HKCU|HKLM\Software\Microsoft\Windows\CurrentVersion\Run: <STEALER_EXE_PATH>

ladrão de DCRat; Persistência; Tarefas agendadas do Windows:
schtasks.exe /create /tn <STEALER_EXE_NO_EXTENSION> /sc ONLOGON /tr <STEALER_EXE_PATH> /rl HIGHEST /f
schtasks.exe /create /tn <STEALER_EXE_NO_EXTENSION> /sc minuto /mo <RND_MIN5_MAX15> /tr <STEALER_EXE_PATH> /f

ladrão de DCRat; Impressão digital do hospedeiro; Consultas WMI:
SELECT * FROM AntivirusProduct: displayName
SELECT * FROM FirewallProduct: displayName
SELECT * FROM Win32_BIOS: Manufacturer
SELECT * FROM Win32_BaseBoard: Manufacturer, SerialNumber
SELECT * FROM Win32_Processor: Name
SELECT * FROM Win32_ComputerSystem: TotalPhysicalMemory
SELECT * FROM Win32_VideoController: Name, AdapterRAM
SELECT * FROM Win32_PnPEntity WHERE (PNPClass = ‘Imagem’ OU PNPClass = ‘Câmera’)

ladrão de DCRat; Impressão digital do hospedeiro; Registro do Windows:
LEIA: HLKM\SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full\Release
LEIA: HKLM\SYSTEM\ControlSet001\Control\Class\ {4d36e968-e325-11ce-bfc1-08002be10318}\<SUBKEY_1.. SUBKEY_N>\{AdapterString,DriverDesc,qwMemorySize}

ladrão de DCRat; Tempo de execução; Mutex (formato padrão, se não substituído):
DCR_MUTEX-<20_ALPHANUM_ULCASE_RAND>

Ferramenta DCRat Builder/Admin; Tráfego de rede C2:
DNS + HTTPS: dcrat[.]ru, crystalfiles[.]ru

Fonte: BlackBerry


Descubra mais sobre DCiber

Assine para receber os posts mais recentes por e-mail.