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.
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.
É 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.
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
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.
“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.
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.
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”.
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.
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.
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)
- 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
- 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 |
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 |
# 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 |
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: |
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.
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.
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”!).
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.
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:
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”.
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.
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:
- Registro, usando HKLM\Software\Microsoft\Windows\CurrentVersion\Run
- Registro, usando HKCU\Software\Microsoft\Windows\CurrentVersion\Run
- Registro, usando HKLM\Software\Microsoft\Windows NT\CurrentVersion\Winlogon (REG_SZ: “Shell”)
- Tarefa Agendada /ONLOGON
- 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 |
{ “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
“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
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:
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.
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: ladrão de DCRat; Autopreservação; Alterações no Registro do Windows: ladrão de DCRat; Persistência; Registro do Windows: ladrão de DCRat; Persistência; Tarefas agendadas do Windows: ladrão de DCRat; Impressão digital do hospedeiro; Consultas WMI: ladrão de DCRat; Impressão digital do hospedeiro; Registro do Windows: ladrão de DCRat; Tempo de execução; Mutex (formato padrão, se não substituído): Ferramenta DCRat Builder/Admin; Tráfego de rede C2: |
Fonte: BlackBerry
Descubra mais sobre DCiber
Assine para receber os posts mais recentes por e-mail.