O retorno do BOM

Não é sempre que se pode mostrar novas técnicas a velhos desenvolvedores de malware

Não é novidade ver cibercriminosos brasileiros tentando novas formas de se manter fora de foco. Porém desta vez os criminosos locais adotaram um método existente há alguns anos.

Criados por grupos russos para distribuir malware capaz de modificar o arquivo de hosts em sistemas Windows, essa técnica foi publicada pela McAfee em 2013, e consistem em adicionar bytes ao UTF-8 BOM (Byte Order Mark) para evitar a detecção.

Visto que estas campanhas dependem de spear phishing para aumentar o número de vítimas, o desafio era confundir scanners de email com arquivos corrompidos para que eles sejam entregues nas caixas de correio dos usuários.

O primeiro indicador do golpe aparece quando o usuário tenta abrir o arquivo ZIP com o visualizador padrão do explorer e encontra o seguinte erro:

A mensagem de erro sugere que o arquivo está corrompido, mas se checamos seu conteúdo veremos algo diferente.

Cabeçalho Zip prefixado com bytes UTF-8 BOM

Ao invés de ter o cabeçalho normal do ZIP iniciando com a assinatura “PK” (0x504B), nós temos três bytes extra (0xEFBBBF) que representam o Byte Order Mark (BOM) normalmente encontrado dentro de arquivos de texto com codificação UTF-8. Algumas ferramentas não irão reconhecer este arquivo como um arquivo do formato ZIP, elas lerão ele como um arquivo de texto UTF-8 e não conseguirão extrair o payload malicioso.

Entretando, programas como WinRAR e 7-Zip simplesmente ignoram estes bytes e extraem seu conteúdo corretamente. Uma vez que o usuário consiga abrir o arquivo corretamente utilizando uma destas ferramentas, ele será infectado.

The file is successfully extracted by WinRAR

O executável malicioso atua como um loader para o payload principal que está inserido na seção de recursos.

Tabela de recursos mostrando o recurso com o conteúdo encriptado

DLL encriptada armazenada na seção de recursos

O conteúdo armazenado dentro do recurso, encriptado com um algoritmo baseado em XOR, é normalmente visto em diferentes amostras de malware de origem brasileira. O recurso decriptado é uma DLL que vai carregar e executar a função exportada “BICDAT”.

Código utilizado para carregar a DLL extraída e executar a função exportada BICDAT

Esta biblioteca vai então descarregar um payload de segunda etapa que é um arquivo ZIP protegido por senha também encriptado pela mesma função do payload anterior. Após extrair todos os arquivos, o loader vai então rodar o executável principal.

Código executado pela função BICDAT

Strings relacionadas ao malware Banking RAT

Este payload final é uma variante do malware Banking RAT e ele que está atualmente sendo distribuido no Brasil e Chile.

Os produtos Kaspersky Lab podem extrair e analisar arquivos comprimidos contendo Byte Order Mark sem qualquer problema.

Indicadores de Compromisso

087b2d745bc21cb1ab7feb6d3284637d
3f910715141a5bb01e082d7b940b3552
60ce805287c359d58e9afd90c308fcc8
c029b69a370e1f7b3145669f6e9399e5

Publicaciones relacionadas

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *