Análise de Malware: Win32 ProxyChanger

Este malware foi obtido em um ataque de Phishing Scam. O atacante encaminhou um link contendo um executável se passando por um arquivo compactado que faz referência a um boleto de cobrança vencido em nome da vítima. Ataques de engenharia social deste tipo visam fazer com que o usuário sinta-se atraido por visualizar seu conteúdo, sendo assim,  boletos de cobrança, faturas e chamarizes que façam alusão a dados pessoais sempre acabam sendo empregados.

Segue abaixo o e-mail recebido na íntegra:

phishing01

É possível visualizar na imagem acima que o campo de destinatário consta o valor “Recipientes”. Isso nos diz duas coisas:

1 Este ataque não foi o que chamamos de Spear Phishing Attack, ou seja, não foi uma mensagem criada especificamente para um ataque direcionado e sim um Phishing em massa.

2 A mensagem não tem nenhum resquicio de técnica avançada para disparo da mensagem. Foi utilizado apenas um e-mail em HTML com um Hyperlink no corpo da mensagem, nenhum tipo de payload malicioso (ex. Drive-by Exploit).

O host responsável pelo disparo da campanha de Phishing pertence a empresa Dytech.

É muito comum que criminosos que utilizam este tipo de abordagem procurem por contas de e-mail hospedadas em domínios .COM.BR.  Isto faz com que diversos filtros de conteúdo de e-mail, reputação e antispam sejam contornados. Geralmente domínios corporativos por padrão tem reputação elevada nos Scores de análise.

Abaixo o whois do domínio utilizado como difusor da Campanha:

whois01

Efetuando uma rápida checagem através do site http://mxtoolbox.com  é possível identificar falhas na configuração que permitiriam utilizar o servidor MX do domínio de forma maliciosa (relay aberto):

whois04

A credencial utilizada pelo criminoso pode ter sido comprometida através de algum phishing diretamente na rede corporativa. Outras possibilidades são de que o usuário possua uma senha muito simples que pode ser facilmente descoberta utilizando algum tipo de Brute-Force, ou então alguma aplicação web vulnerável que permita o envio indiscriminado de mensagens.

Ao clicar no link anexado no corpo do e-mail o usuário é direcionado para o download de um binário com nome de “cobranca.docx.exe” a partir do seguinte link:

http ://nwgawomensexpo  com/modules/ mod_finder/ cobranca.doc/ 

host01

Abaixo segue o Whois do domínio que hospeda o artefato:

whois03

Criminosos procuram por aplicações web vulneráveis para efetuar Upload de seus artefatos e hospeda-los de forma não rastreável.

Vamos agora analisar o artefato coletado e verificar o seu comportamento e que tipo de dano ele causa na máquina infectada.

ANÁLISE HEURÍSTICA

File name: COBRAN~1.EXE
File size: 93184 bytes
File type: PE32 executable for MS Windows (console) Intel 80386 32-bit
MD5: 47b405e428b345fcb4b23ac73bb24031

Sections

Name Virtual Address Virtual Size Size of Raw Data Entropy
UPX0 0x1000 0x2d000 0x0 0.0
UPX1 0x2e000 0x17000 0x16200 7.8974382553
.rsrc 0x45000 0x1000 0x600 2.89353823492

Como pode ser observado nas Sections acima, o artefato está compactado utilizando o UPX. Logo mais iremos efetuar o unpacking para poder analisa-lo de forma mais completa.

Após submete-lo ao VirusTotal obtivemos o seguinte resultado:

Antivirus Assinatura
McAfee Generic-FRAX!0958FA229CEB
TheHacker Posible_Worm32
Norman Sample.G.dropper
TrendMicro-HouseCall PAK_Generic.001
Kaspersky Trojan-Banker.Win32.Banbra.axlz
AntiVir TR/ATRAPS.Gen
TrendMicro PAK_Generic.001
McAfee-GW-Edition Generic-FRAX!0958FA229CEB
Emsisoft Gen:Trojan.Heur.GZ.fmGfbOVgePi (B)
Jiangmin Backdoor/Delf.hux
SUPERAntiSpyware Trojan.Agent/Gen-Autorun[Swisyn]
AhnLab-V3 Trojan/Win32.Banker
ESET-NOD32 Win32/ProxyChanger.HG
Ikarus Trojan-Dropper.Delf

Taxa de Detecção:  14 / 45

Este artefato já havia sido submetido para o VirusTotal no dia 15/02. Em sua primeira análise contava com uma taxa de detecção de 6 Engines.

Vamos verificar algumas informações do binário:

pefile

Temos então que este artefato foi criado utilizando Delphi e compactado com o UPX.

O UPX é um packer muito conhecido.  É utilizado também por atacantes para tentar obsfuscar o seu binário e dependendo de como é feita a detecção do binário por parte do antivirus, o simples fato dele estar packed é suficiente para que passe batido pela detecção Heurística.

Para poder efetuar o disassembly do artefato de forma mais completa iremos primeiramente remover a compactação pelo UPX:

reverse_upx

Agora vamos efetuar o disassembly do artefato:

reverse01_jpg

Ao ser executado ele carrega o componente TRegistry. Este componente é nativo do Delphi e permite ao artefato manipular chaves de registro.  Após carregar o objeto  ele determina que o valor para o TRegistry.SetRootKey  será  “Software\Microsoft\Windows\CurrentVersion\Internet Settings”.

Após definir a chave a ser modificada ele efetua um TRegistry.OpenKey e carrega  a chave “ProxyEnable” modificando o valor dela para “1”.  Ou seja, o artefato modificou o comportamento do sistema operacional dizendo que a partir de agora ele deve utilizar um endereço Proxy para navegar.

Em seguida ele chama o componente com a instrução TRegistry.WriteInteger  e escreve o valor “http:// lashlerouxsafaris co.za/components/com_jce/js/in.jsp”  na chave “AutoConfigUrl”.

Esta chave é responsável por configurar a URL com script para Auto Configuração de proxy.  Setando esta URL o browser irá buscar pela configuração do proxy que irá utilizar neste endereço a cada vez que for carregado. Assim o atacante pode manter o endereço IP do servidor de Proxy sempre atualizado caso migre para outro host.

Abrindo a configuração do Internet Options do  IExplorer conseguimos visualizar na íntegra a configuração que o malware realizou.

proxy02

Após efetuar a configuração do proxy no Internet Explorer o malware chama o browser padrão e direciona ele para a url “http://palhacopeteleco.com/res/ws/jjjjjjj/su.php” através da instrução Shell32.ShellExecuteA.

reverse02_jpg

Esta URL redireciona o acesso para o Google. Acredito que este PHP armazena informações do Client como por exemplo, ip, browser e afins. Muito provavelmente serve para que o criminoso tenha algum tipo de controle da quantidade de Hosts infectados.

reverse03_jpg

Como processo final de sua execução o executável cria um .bat  com o nome de cobranca.docx.bat. Este batch entra em loop para apagar o executável original, e após isso o Executável finaliza sua execução e o artefato é eliminado da máquina.

Aproveitei e submeti  o  artefato sem estar protegido pelo UPX. Ninguem havia submetido ainda esta amostra sem a proteção e o resultado foi o seguinte:

AntiVir TR/ATRAPS.Gen 20130218
AVG Proxy.AZEZ 20130218
ESET-NOD32 Win32/ProxyChanger.HG 20130218
Ikarus Trojan-Dropper.Delf 20130218
Kaspersky Trojan-Banker.Win32.Banbra.axma 20130218
Malwarebytes Trojan.Agent.DF 20130218
McAfee Generic-FRAX!60A450670696 20130218
McAfee-GW-Edition Generic-FRAX!60A450670696 20130218

Taxa de Detecção:  8/46

Abaixo segue o Whois do domínio que hospedava o script “su.php”

whois02

Screenshot do momento em que o malware foi executado

sandbox01

Script de Configuração de Proxy

Como vimos acima o nosso artefato não se tratava de um Trojan ou Backdoor.  Após ser executado ele modifica a configuração padrão do proxy do sistema e depois se auto-remove da máquina infectada.

Acessando a URL adicionada no AutoConfigUrl do Browser podemos ver o seguinte script:

script01

Este JavaScript efetua uma checagem de alguns itens para validar se a conexão irá ou não ser redirecionara através do Proxy.  Podemos ver na linha 23 que ele inicia o FOR para efetuar o decrypt do ArrayList utilizando um XOR. Após efetuar o decrypt da linha ele faz uma comparação na linha 32. Caso a variavel “Host” esteja contida no shExpMatch da variável “the_res” ele faz o return na linha 33. Este  está fragmentado para evitar algum tipo de identificação por assinatura de antivirus ou HIDS.

script02

Basta efetuar uma organização manual baseada nos valores demonstrados no script e temos que quando o Match da expressão ocorre ele retorna para o Browser  “PROXY 178.33.168.31”.  A partir daí o browser irá direcionar aquele acesso por dentro do proxy e interceptar a comunicação.

whois05

Uma vez que identificamos o comportamento vem a pergunta:

– Para que hosts este proxy irá fazer o direcionamento da conexão ?

Como vimos acima os itens do ArrayList são muito provavelmente os domínios que ele irá interceptar. Como estão encriptados pelo XOR não conseguimos identificar a olho nú. Para poder termos a lista de quais são os dominios visados pelo criminoso iremos criar um HTML e carregar o JavaScript de configuração do Proxy.

decrypt

Colocamos o Action do JavaScript em um Botão no HTML e ao invés de chamar o Return com o valor do endereço do Proxy iremos fazer um Print dos valores decriptados em nosso form HTML. Com isso teremos uma lista completa dos hosts que estão sendo monitorados.

Domínios interceptados pelo Proxy:

Agora que conhecemos o comportamento e a finalidade do malware, vamos efetuar um laboratório para ver como o ataque é de fato executado na máquina de um usuário comprometido. Para isto irei executar o artefato em uma Máquina Virtual e navegar para algum dos sites listados acima. Por ter experiência com o BankLine do Itaú resolvi elege-lo como portal alvo.

Uma vez que a máquina foi comprometida pelo  malware e a configuração do proxy foi adicionada no browser basta navegar para o endereço http://www.bancoitau.com.br

itau01

A primeira vista o portal do Banco Itaú e carregado para visualização. Foi feito um clone idêntico ao site original para que a vítima não perceba que está acessando na verdade um site falso.

itau02

Uma vez que o usuário coloca a Agência e Conta é direcionada a uma próxima página onde deve confirmar o número da conta. No caso coloquei como dados Agência: 1337 e Conta: 31337-0.

É possível logo de cara identificar que o site não possui Certificado Digital o que por sí só ja iria mostrar que o site é falso. Infelizmente este detalhe ainda é pouco identificado por usuários. Em verdade a grande maioria nem sabe de sua existência ou funcionalidade.

itau03

Na próxima tela o usuário é conduzido a colocar sua senha numérica utilizando o Teclado Virtual fornecido pelo site.  Colocarei um sequência qualquer.

itau04

Independente do valor digitado na tela anterior o portal irá direcionar o usuário para esta tela que diz que a senha está errada e obrigando o usuário a digita-la novamente. Com esta tática o criminoso pode evitar que o usuário digite uma senha errada na primeira tentativa e ele perca então uma Conta devido o descuido da vítima.  Digito qualquer outra senha e o acesso prossegue.

itau05

Na próxima tela o usuário se depara com a Página inicial de seu Home Bank. É possível ver no cabeçalho o número da agência e conta que usamos, um relógio marcando horário da sessão e tudo mais.  Não existe nenhum dado como Nome do titular.  É uma tela totalmente Inóqua e a partir de agora qualquer link que o usuário clicar irá direciona-lo para o roubo dos próximos dados e prover as informações finais que o criminoso necessita para efetuar fraudes em nome da vítima.

itau06

Após clicar no link de “Transferência, DOC e TED” o portal me direciona para uma tela onde sou solicitado a escolher qual o mecanismo de segurança utilizo para o acesso.  Iremos clicar no “Cartão de Segurança Itaú”. Este cartão é um método de segurança utilizando OTP (One-Time Passwords) e é um método muito comum entre usuários bancários para validar e proteger transações em sessões online e em Caixas Eletrônicos.

itau07

Nesta tela totalmente desconexa do contexto da nossa transação atual é pedido ao usuário que ele digite no template o número do cartão de crédito e a validade para “confirmação”.  Um detalhe interessante a ver é a falha no caracter no Title da Janela.

itau08

itau09

Após preencher os dados referentes ao cartão de crédito, a próxima tela irá pedir para o usuário preencher o template do cartão de senhas com o número de referência e os números de cada posição.

Caso o usuário preencha estes campos corretamente e envie o criminoso irá ter acesso total aos dados necessários para efetuar transações compras e tudo mais.

itau10

Após clicar em  Continuar é exibida uma tela dizendo que o acesso foi finalizado e a sessão foi encerrada. Após isso o usuário é direcionado para a sessão HTTPS original do banco do cliente.

Para usuários leigos que não tem conhecimento deste tipo de fraude é muito difícil identificar que o site do banco é falso e que os dados que ele está digitando serão utilizados para fraudes. Imagino que devido ao grande número de sites que o criminoso clonou, deve estar coletando muitas credenciais.

Todos os responsáveis  pelos hosts envolvidos neste ataque foram notificados para que possam tomar alguma providência e remover do ar os acessos responsáveis pelo ataque. Foi efetuada também uma denúncia em Blacklists diversas, como por exemplo PhishingTank.org.