O cibercrime brasileiro é conhecido mundialmente pelo desenvolvimento de trojans bancários, mas é interessante ver que já começou a mover seus esforços para novas áreas de ataque — o que agora inclui ransomware, os vírus sequestradores. Encontramos recentemente uma nova variante de um ransomware desenvolvido por um grupo de criminosos brasileiros. Chamamos a praga de Trojan-Ransom.Win32.Xpan – ela tem sido usada em ataques contra empresas e hospitais, afetando diretamente pessoas inocentes, cifrando os arquivos usando a extensão “.___xratteamLucked”.
Nossa equipe de especialistas foi capaz de decifrar o ransomware XPan, permitindo que um hospital, vítima do ataque desse grupo, pudesse recuperar seus arquivos.
O fato é que este não é o primeiro ransomware originário do Brasil. Já descrevemos no passado o TorLocker e sua criptografia falha, ransomware criado e negociado mundialmente por um criminoso brasileiro. Também já vimos várias versões do HiddenTear usado em ataques locais. Já o trojan ransom Xpan foi criado por um grupo de cibercriminosos brasileiros, que fazem ataques remotos direcionados via RDP, abusando de senhas fáceis ou de configurações incorretas.
Neste artigo vamos detalhar como funciona essa nova família de ransomware e como os cibercriminosos brasileiros estão criando essas pragas a partir do zero.
O grupo atrás do ataque
Ele se identifica com os nomes “TeamXRat“ou, em alguns ataques, como “CorporacaoXRat“. Os primeiros ataques de ransomware feitos por esse grupo usavam cifragem XOR simples, descrito por algumas vítimas nesse tópico do Bleeping Computer (a maioria das vítimas é de brasileiros). A partir do trojan ransom Xpan, podemos ver claramente que o grupo de criminosos evoluiu a qualidade do código para um esquema criptográfico mais complexo.
O pedido de resgate é em Português. A mensagem não informa quanto a vítima terá de pagar para obter seus arquivos, nem o método de pagamento (geralmente, Bitcoins). Em vez disso o pedido de resgate pede diz para as vítimas entrarem em contato via e-mail usando contas configuradas em serviços anônimos de e-mail, como Mail2Tor e Email.tg, em endereços como corporacaoxrat@mail2tor.com, xRatTeam@mail2tor.com e xratteam@email.tg, informando a chave pública usada para cifrar os arquivos. Versões antigas desse ransomware usavam também uma conta no Protonmail, como corporacaoxrat@protonmail.com, agora desativada.
Quando as vítimas entram em contato com o grupo criminoso, eles começam a negociação do pagamento, respondendo em Português e pedindo como pagamento 1 bitcoin (cerca de R$ 2 mil) para decifrar os arquivos. Também apresentam o pagamento como sendo uma “doação” porque “exploraram falhas no seu sistema e fizeram o ataque para que se melhore a segurança”. Ainda oferecem a decifragem de 1 arquivo de graça:
Mensagem do criminoso informando os procedimentos do resgate
Xpan, como funciona a praga
O malware usa packing UPX. Uma vez executado, irá checar o idioma do sistema infectado, configurado na seguinte chave no registro: HKLM\SYSTEM\CONTROLSET001\CONTROL\NLS\LOCALE. Adicionalmente a praga irá verificar o fuso horário do sistema atacado — tudo para certificar de que se trata de brasileiros. A praga irá ainda obter o nome do computador a partir do registro, usando diversos comandos como net.exe, sc.exe e taskkill.exe. Interessantemente, também irá deletar qualquer configuração de proxy definida no sistema, localizada em: HKCU\SOFTWARE\MICROSOFT\WINDOWS\CURRENTVERSION\INTERNET SETTINGS\ZONEMAP.
Uma vez que os alvos são companhias e empresas, o grupo remove a configuração de proxies usados em ambientes corporativos. É bastante provável que essa técnica seja usada para dar conexão direta a internet às vítimas, para que dessa forma possam enviar a mensagem de email para os criminosos, ou acessar sites que vendem bitcoins.
Após concluir sua execução, o ransomware exibe a seguinte mensagem de resgate no sistema infectado:
“Todos os seus arquivos foram cifrados com criptografia RSA 2048 bits”
A amostra do malware foi escrita em C++ e usa STL, construída como aplicação de console. Durante a execução, irá logar no console todas as ações feitas pelo ransomware, para depois remover essas entradas assim que a criptografia dos arquivos estiver sido completada. A operação do malware é ‘guiada’ por um bloco de configurações de dados, armazenados no corpo do trojan:
Bloco de configuração usado pela praga
A configuração contém os seguintes itens:
- Letras das unidades que serão processadas;
- Denylist de substrings: os arquivos cujas pastas contém alguma dessas strings não serão cifrados;
- A mensagem em texto do ransomware, a ser exibido para a vítima;
- A extensão usada nos arquivos cifrados, nesse caso .____xratteamLucked;
- Nome do arquivo com o pedido de resgate;
- Comandos do console que serão executados para processar o processo de criptografia;
- Comandos do console que serão executados após a criptografia;
- A chave pública RSA-2048 bits no formato MSBLOB.
Parte do pseudocódigo usado no procedimento principal da praga
Do Xorist para o Xpan
Uma versão anterior dessa praga, desenvolvida pelo mesmo grupo usava um algoritmo criptográfico mais simples, conhecido como TEA (ou Tiny Encryption Algorithm). Depois de comparar essa versão (chamada de Xorist) contra a nova variante Xpan, nós podemos observar que agora eles estão usando a criptografia AES-256.
Primeira versão do ransomware: constante XOR usada
Xpan ransomware: evolução ao usar AES-256
Xorist | Xpan |
Irá iniciar automaticamente quando o usuário logar no sistema, usando a chave de persistencia SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run | Não usa nenhum método de persistencia |
TEA (Tiny Encryption Algorithm) | AES-256 |
ASM, MS Linker | C++, compilador MinGW |
Inclui uma lista de extensões de arquivos que serão cifrados | Irá cifrar tudo, exceto arquivos .EXE e .DLL que estão no denylist das substrings |
Os desenvolvedores claramente melhoraram os procedimentos de criptografia no malware Xpan. Isso é típico de cibercriminosos –assim que um método criptográfico é encontrado e quebrado, como aconteceu com as primeiras amostras do Xorist.
Lista de arquivos cifrados pelo ransomware Xorist, a primeira criação do grupo
A criptografia dos arquivos
O trojan usa a implementação criptográfica provida pelo MS CryptoAPI. Os arquivos são então cifrados no modo CBC, com AES-256.
Há 2 versões conhecidas desse trojan que podem ser distinguidas por suas extensões. A primeira versão usa a extensão “___xratteamLucked” (3 símbolos ‘_’) e a segunda versão “____xratteamLucked” (4 simbolos ‘_’). Estas duas versões empregam diferentes técnicas para cifrar os arquivos, que descrevemos em detalhes em seguida.
Versão 1 (3 símbolos ‘_’ na extensão)
O trojan gera uma senha de 255 símbolos para todos os arquivos. Esta senha é cifrada por RSA-2048 e colocada no pedido de resgate (concatenada com a chave pública). Então o trojan produz uma chave de 256 bits dessa senha, usando a API CryptDeriveKey; isso será usado para cifrar todos os arquivos.
Ao processar cada arquivo, o malware adiciona a string “NMoreira” ao início de cada arquivo original e cifra seu conteúdo, com blocos de 245 bytes, usando o algoritmo AES-256 em modo CBC. Adicionalmente cada bloco receberá um XOR de byte randômico que será armazenado no final de cada bloco correspondente.
Version 2 (4 símbolos ‘_’ na extensão)
Para cada arquivo, o trojan gera uma nova senha de 255 símbolos, que será posteriormente cifrada por RSA-2048 e colocada no início de cada arquivo cifrado. Então o trojan produzirá uma chave de 256 bits dessa senha usando a API CryptDeriveKey e a usa para cifrar o conteúdo do arquivo original com AES-256 CBC.
A busca e criptografia dos arquivos é feita a partir de múltiplas threads, cada uma processará os arquivos do disco:
O ransomware em ação: a saída do console informa quais arquivos foram cifrados
Depois de completar o processo, o malware muda o papel de parede no desktop e abre o arquivo com o pedido de resgate:
Antes de cifrar os dados no sistema atacado, o ransomware executa os seguintes comandos, visando encerrar o processo de programas de bases de dados populares, a fim de certificar que essa base de dados será criptografa também, causando assim grande dano as vítimas:
echo Iniciando pre comandos
echo Parando Firbird
sc config FirebirdServerDefaultInstance start=disabled
taskkill /IM fb_inet_server.exe /F
net stop FirebirdServerDefaultInstance
echo parando SQL SERVE
taskkill /IM sqlservr.exe /F
sc config MSSQLSERVER start=disabled
sc config MSSQL$SQLEXPRESS start=disabled
net stop MSSQLSERVER
net stop MSSQL$SQLEXPRESS
echo parando poostgree
taskkill /IM pg_ctl.exe /F
sc config postgresql-9.0 start=disabled
net stop postgresql-9.0
Após a execução, o ransomware deleta a si mesmo do sistema atacado, evitando assim deixar evidências nas máquinas comprometidas:
@echo off
goto Delete
:WaitAndDelete
@timeout 5
:Delete
@del “path\sample_name.exe”
if exist “path\sample_name.exe”
goto WaitAndDelete
@del %0
Assim que a cifragem termina, o trojan modifica o registro do Windows para adicionar um handler personalizado para ações que tentem abrir os arquivos cifrados, via duplo clique. Como resultado isso, quando a vítima tenta abrir um dos arquivos cifrados com a extensão “.____xratteamLucked” o comando será executado no registro e será exibido o pedido de resgate numa nova janela, usando o msg.exe (utilitário padrão nativo do Windows).
A chave no Registro do Windows modificada pelo ransomware
Como é o ataque
A maioria dos ataques realizados pelo TeamXRat são feitos manualmente, instalando o ransomware no servidor hackeado. Para fazer o ataque usam força bruta em servidores com o RDP (Remote Desktop Protocol) ativado. Colocar servidores RDP diretamente na internet não é um procedimento recomendado e ataques de força bruta contra eles não é algo novo. Porém, fazê-lo sem os devidos controles para prevenir ou pelo menos detectar e responder as tentativas de ataques é algo bastante desejado pela maioria dos cibercriminosos, que fazem ataques assim regularmente. Uma vez que o servidor é comprometido, o criminoso manualmente desativa o antivírus instalado e procede com a infecção e criptografia dos arquivos.
Também sabemos que vulnerabilidades como a MS15-067 e MS15-030 no protocolo RDP podem ser usadas em ataques assim, pois permitem execução remota de código se um criminoso preparar uma sequência de pacotes para atacar um sistema e comprometê-lo, se o mesmo não estiver devidamente atualizado.
Como vimos no recente caso do xDedic, vulnerabilidades em servidores com conexões RDP expostas são ativos muito valiosos nas mãos dos cibercriminosos. Não é surpresa ver que o Brasil foi o país com o maior número de servidores comprometidos, colocados a venda no site underground –disponível para qualquer criminoso comprar.
xDedic: servidores comprometidos a venda no Mercado underground
Decifragem dos arquivos: podemos ajudar
Se a vítima paga o resgate, o criminoso irá enviar essa ferramenta para decifrar os arquivos:
Mas a boa notícia é que nossa equipe de especialistas foi capaz de quebrar a criptografia usada pelo trojan Xpan. Este esforço possibilitou recuperar os arquivos cifrados, pertencentes a um hospital no Brasil, duramente atacado por essa praga.
Se você foi vítima desse ataque, não pague o resgate! Entre em contato com nosso suporte. Poderemos ajudar.
Conclusão
Como podemos ver, os cibercriminosos brasileiros estão agora diversificando seus “negócios”, com novas famílias de ransomware desenvolvidas do zero, abandonando versões antigas que usavam XOR e adotando algoritmos criptográficos novos e mais robustos. É um sinal claro que começaram a explorar novas áreas e alvos, em ataques diferentes dos que temos presenciado.
Como prevemos no começo desse ano, os ataques de ransomware ultrapassarão em número e impacto os trojans bancários. O ransomware traz vantagens se comparado aos trojans de roubo financeiro direto: monetização direta, usando um sistema de pagamentos anônimo (Bitcoin) e custo por vítima relativamente baixo. Certamente isso chama a atenção dos criminosos brasileiros, conhecidos mundialmente pelo desenvolvimento de trojans bancários. A polícia brasileira é muito boa em investigar e prender quadrilhas que roubam usuários de internet banking no Brasil, usando o “follow the Money” –algo que sabemos ser impossível quando o pagamento é com bitcoin.
Detectamos a nova ameaça (MD5: 34260178f9e3b2e769accdee56dac793) como Trojan-Ransom.Win32.Xpan.a e PDM:Trojan.Win32.Generic. Estamos de olho em variantes dessa praga –que seguramente irão aparecer, vindas dos mesmos criminosos.
TeamXRat: novo ransomware de origem brasileira