Laboratório de Análise de Malware da PSafe explica como age a “Gangue do Boleto” e faz análise do problema
Como o Bolware infecta o seu computador
A infecção acontece após o usuário baixar um arquivo ZIP contendo um arquivo chamado Receita Federal.cpl que, quando executado, faz o download de 2 novos arquivos: gbiehamz.cpl e resource.bck; e inicializa o processo gbiehamz.cpl, responsável por monitorar o uso dos navegadores e fazer a injeção do código malicioso que modifica a linha digitável do código de barras de boletos de pagamento.
O vírus passa a vigiar o usuário
Para monitorar o uso dos browsers, o malware utiliza um procedimento bem simples. Ele implementa dentro de um timer componente da linguagem Delphi que executa determinado código a cada fração de segundo a verificação da janela que está em uso pelo usuário, utilizando a função GetForegroundWindow(), conforme código abaixo:
Código que verifica o título da janela em uso
Após capturar o handle para a janela em uso, o Bolware utiliza as funçõesGetWindowText() e SendMessage() do Windows para identificar o título da janela e confirmar se o usuário está acessando um serviço monitorado pela Gangue do Boleto.
Caso o título esteja entre os vigiados pelos criminosos, o Bolware verifica se o browser utilizado é o Internet Explorer. Se o navegador for o Firefox ou Chrome, o malwarefecha os programas, impedindo os seus usos para acessar o Internet Banking, forçando o usuário a utilizar o IE, que vem instalado por padrão em qualquer computador com Windows e não possui opção de desinstalação.
Código que fecha o processo do Firefox ou Chrome
Se ele não conseguir identificar o serviço pelo título, ele verifica a URL que está sendo acessada e compara com a lista de alvos do malware. Este método de captura de URLs só funciona no Internet Explorer, pois ele busca por elementos específicos do IE, até encontrar a barra de endereços, e então captura seu conteúdo.
Código que procura o campo da barra de endereços
O código acima procura pelo campo onde fica registrado o endereço visitado pelo usuário, obtém o handle para este campo e captura a informação. Veja abaixo a hierarquia dos campos pesquisados.
Hierarquia dos componentes do IE
Após ter acesso à informação e identificar que o usuário está navegando em um site alvo da gangue do boleto, ele inicia o processo de carregamento do outro módulo, já baixado pelo downloader, porém compactado no arquivo resource.bck.
Este arquivo compactado será carregado para a memória de maneira não convencional. E, para dificultar a sua detecção, o malware utiliza uma técnica conhecida como “Process Hollowing“.
Entenda o Process Hollowing
A técnica consiste em carregar um processo confiável para a memória, substituindo o código existente pelo código malicioso, escondendo a execução do processo malicioso.
No caso do Bolware, ele utiliza o Internet Explorer para esconder seu código, carregando o processo iexplore.exe para a memória em modo suspenso, utilizando a flag CREATE_SUSPENDED na chamada CreateProcessA, conforme podemos verificar na imagem abaixo:
Criação do processo em modo suspenso para hospedar o código malicioso
Com o processo carregado, o vírus captura o contexto da thread, copia o código do malware descompactado para o processo e inicia a thread que estava suspensa, fazendo com que o código do malware seja executado.
GetThreadContext e alocação de memória para receber o código do malware
Escrevendo o código na área alocada e resumindo a thread suspensa
Após este procedimento, o código malicioso estará sendo executado como iexplore.exe, dificultando, assim, a identificação do malware.
Bolware usa dois métodos para saber por onde você navega
O módulo carregado verifica se o usuário abriu algum site alvo de duas maneiras: a primeira, da mesma forma que o processo anterior, verificando se existe alguma janela do IE aberta com títulos específicos. A segunda, recebendo o evento OnDocumentComplete do IE, ou seja, toda vez que um site termina de ser carregado pelo browser, ele chama uma callback que tem, num dos argumentos, a URL carregada. Nesta callback, o malware verifica se a URL é referente a algum alvo controlado e ativa o monitoramento de geração de boletos.
Como o malware faz a troca dos dados do boleto bancário
Ao identificar uma URL relacionada a pagamento de boletos, o Bolware detecta a qual banco pertence e, então, adiciona um evento para o clique do botão “submit“, que será disparado após o usuário terminar de digitar o código do boleto e clicar para continuar o processo de pagamento.
Exemplo de formulário de pagamento de boleto, etapa em que ocorre a captura de dados
Ao receber este evento, o malware procura pelo campo onde está armazenado o boleto digitado, captura o conteúdo do campo e envia para o servidor, que irá gerar uma nova linha digitável, com a conta de destino alterada.
Código do boleto original capturado
Após substituir a linha digitável, a transação continua com o novo código, fazendo com que a transação seja concluída com sucesso, porém a conta destino será outra, desviando o seu dinheiro para a gangue do boleto e criando problemas para você com as empresas cedentes do boleto bancário.
Fonte: Psafe