Em abril deste ano, publicamos um relatório no qual analisamos um novo trojan bancário voltado para usuários corporativos no Brasil. Batizamos essa família de malware como Janeleiro em referência à sua técnica principal: o uso de pop-ups falsos especialmente projetados que se sobreponham e se façam passar pelo site de vários bancos populares no Brasil. Desta forma, o trojan tenta enganar a vítima, mostrando um formulário falso para insira seus dados pessoais que serão enviados automaticamente ao atacante.

No momento da primeira análise, uma das características mais marcantes que observamos no Janeleiro era que toda vez que rodava em um computador comprometido, a ameaça baixava os IPs dos servidores de Comando e Controle (C&C). Neste mesmo repositório, o Janeleiro era atualizado diariamente pelos atacantes com o intuito de mantê-lo em contato constante e, dessa forma, realizar o monitoramento das vítimas.

Após reportar a página com os repositórios, recebemos uma resposta oficial do GitHub que os eliminou no dia 06 de abril deste ano. Por isso, podemos dizer que os atacantes efetivamente perderam o acesso a todos os computadores infectados com as variantes do Janeleiro que analisamos pela primeira vez.

MSIL/Janeleiro.B

Em junho começamos a detectar em nossa telemetria o surgimento de uma nova campanha com uma nova versão do Janeleiro, porém com o mesmo alvo: usuários corporativos no Brasil.

De acordo com nossa telemetria, os níveis semanais de detecção dessa nova versão do Janeleiro começaram a crescer no fim de julho.

Esta versão da ameaça não é muito diferente da última que descrevemos em abril, pois continua usando as mesmas técnicas para enganar as vítimas. Estas são algumas das mudanças mais perceptíveis:

  • Implementação de um produto comercial de ofuscação denominado SmartAssembly, que dificulta a análise estática e dinâmica;
  • Novo processo de carregamento usando DLL-side loading;
  • Uso de um instalador MSI adicional que persiste no sistema para ter um segundo ponto de execução;
  • O código que substitui os endereços de bitcoin na área de transferência foi descartado.

Cadeia de infecção

O Janeleiro continua sendo distribuído por meio de e-mails de phishing que tentam fazer com que as vítimas cliquem em um link que as levará a baixar um arquivo ZIP compactado. No exemplo da Figura 1, a mensagem do e-mail finge estar enviando um currículo para uma empresa alvo da campanha:

Imagem 1. Exemplo de e-mail de phishing distribuindo a nova versão do Janeleiro no Brasil.

O link no corpo do e-mail aponta para um servidor Azure do qual um arquivo ZIP é baixado automaticamente. Este arquivo contém um instalador MSI que é responsável por instalar o Janeleiro e seus componentes no sistema.

Imagem 2. Diagrama da cadeia de infecção do Janeleiro.B.

O instalador MSI implanta vários componentes nos seguintes locais:

  • %AppData%\Progress
  • %AppData%\Executando

Os componentes são:

  • Avira.SystrayStartTrigger.exe
  • Avira.oe.nativecore.dll
  • SecurityHealthSystray.exe
  • msvcp120.dll
  • msvcr120.dll
  • mod110.dll
  • ini.1.msi

Como parte final do processo de instalação, o MSI carrega uma DLL chamada sheriff.dll de um arquivo temporário. Essa DLL tem duas finalidades:

  • Copiar os componentes (com exceção do 1.msi) para uma nova pasta em% ProgramData%, cujo nome é composto por caracteres alfabéticos selecionados aleatoriamente. Os componentes são removidos da pasta original.
  • Para garantir a persistência, Avira.SystrayStartTrigger.exe e ini.1.msi são registrados em: HKCU\Software\Microsoft\Windwos\CurrentVersion\Run para que possam ser iniciados junto com o Windows.

Imagem 3. Captura de tela do registro do Windows logo depois que os componentes do Janeleiro.B são registrados.

Também encontramos uma variante do sheriff.dll chamada SwitchLaunch.dll, que tenta localizar geograficamente o computador infectado com base em seu IP como nas versões anteriores do Janeleiro, cancelando a execução caso o IP não seja do Brasil. Além disso, essa DLL coleta informações básicas do computador e as envia a um servidor que funciona como “tracker” de infecções.

  • http[:]//trackermid.us-east-1.elasticbeanstalk.com/count

Por outro lado, o segundo instalador MSI (ini.1.msi) funciona como um segundo ponto de execução. Ele conta com uma DLL chamada WhileIni.dll que é carregada da mesma forma que o sheriff.dll: a partir de um arquivo temporário como a parte final do processo de instalação. O whileIni é responsável por localizar o arquivo Avira.SystrayStartTrigger.exe e executá-lo.

DLL-side loading

A técnica de DLL side-loading (T1574.002), também conhecida como "DLL de carregamento lateral", consiste em substituir uma DLL usada por um programa legítimo que não realiza nenhum tipo de validação e, portanto, pode ser explorado para carregar em seu processo uma DLL maliciosa. Essa é uma técnica muito popular entre os trojans bancários que visam o Brasil e é a primeira vez que o Janeleiro faz uso dela.

Figura 4. Diagrama do fluxo de execução dos diferentes componentes do Janeleiro ao iniciar o sistema ou ao ser executado durante o processo de instalação.

Nesse caso, o programa explorado pelo Janeleiro é o Avira.SystrayStartTrigger.exe, que usa uma DLL chamada Avira.oe.nativecore.dll, que é representada por uma DLL que na verdade é o carregador do Janeleiro. Essa DLL tenta localizar um arquivo no local atual de onde o programa está sendo executado, o nome do arquivo deve começar com "mod" (de mod110.dll). Caso o arquivo seja encontrado, a DLL também o carregará no processo do Avira.SystrayStartTrigger.exe.

Comando e Controle

Apesar de ter sido um dos pontos fracos das campanhas anteriores, os operadores do Janeleiro decidiram continuar usando o GitHub com a mesma metodologia anterior: os repositórios são atualizados diariamente com novos endereços IP armazenados criptografados e codificados em arquivos de texto.

Imagem 5. Captura de tela do repositório no GitHub utilizado pelos operadores do Janeleiro.B.

O nome da página no GitHub, o repositório e os arquivos de texto são gerados diariamente através do seguinte procedimento:

1. Gerar uma cadeia concatenando os elementos:

  1. Prefixo "SLK" característico do Janeleiro.
  2. Converter um valor numérico em uma string. Vimos apenas o número 1.
  3. Data atual no formato ddMMaaaa.

2. Criptografar uma cadeia que é a data atual no formato ddMMaaaa, usando AES no modo CBC, usando a cadeia como uma frase secreta e como um valor Salt. O resultado é codificado em base64 pela função responsável por realizar a criptografia.

3. O resultado é usado como uma frase secreta e um valor Salt para criptografar a cadeia gerada na etapa 1.

4. Descartar caracteres não alfabéticos e numéricos, por exemplo: "+", "=", "/".

Imagem 6. Função que é responsável pela criptografia no Janeleiro.B.

As funções de criptografia EncryptDecryptUtils.Encrypt vêm de uma biblioteca chamada RijndaelEncryptDecrypt que os desenvolvedores do Janeleiro vêm usando há muito tempo.

No momento da publicação desta análise, tanto a conta usada para administrar como a conta no GitHub da falsa organização foram excluídas.

O futuro do Janeleiro

Embora as detecções do Janeleiro tenham diminuído desde o fim de agosto, é improvável que esta família de malware pare de operar atualmente: como outras famílias de trojan bancários latino-americanos, é de se esperar que eles continuem se adaptando para permanecerem ativos e poderem começar a se concentrar em outros países de língua espanhola na região.

Agradecemos especialmente ao Cyber Threat Intelligence do Itaú Unibanco, Johnatan Camargo, pela sua contribuição nesta pesquisa.

Detecção

Os produtos ESET detectam novas variantes do Janeleiro como:

  • Backdoor MSIL/Janeleiro.B
  • Backdoor MSIL/Janeleiro.C
  • Backdoor MSIL/Agent.ACY
  • Backdoor MSIL/Agent.ACU

Dicas para estar protegido

Algumas recomendações para ter em mente e evitar ser vítima desse tipo de ameaça:

  • Analise os dados do remetente do e-mail. Preste atenção aos seguintes detalhes:

- Endereço de e-mail e sua origem.

- Nome da pessoa que enviou o e-mail.

- Verifique o conteúdo do e-mail; por exemplo, erros ortográficos.

  • Caso não haja indicação de que o e-mail seja falso, verifique se o destinatário é válido.
  • Não abra nenhum e-mail se houver motivo para suspeitar, seja sobre o conteúdo ou sobre a pessoa que o enviou.
  • Não baixe anexos que chegam por e-mail caso tenha dúvidas sobre sua origem.
  • Verifique as extensões dos arquivos. Por exemplo, se um arquivo termina com ".msi" a última extensão é a que determina o tipo de arquivo, neste caso seria ".msi"; ou seja, um executável.
  • Se um e-mail incluir um link que nos leva a uma página que nos pede para inserir seus dados de login, não as insira! Recomendamos abrir a página oficial em outro navegador ou outra guia e acessar a partir daí.
  • Tenha cuidado ao baixar e extrair arquivos compactados .zip, .rar, etc., independentemente de a fonte de envio do e-mail ser legítima.
  • Mantenha as soluções de segurança instaladas e atualizada no dispositivo.