Para quem ainda não leu sugiro ler antes: Hacking Malware: 66 KB e muitos segredos – Parte 1.
No artigo anterior vimos a análise de um arquivo de 66 KB que escondia algumas informações interessantes criptografadas em seu código. Nessa segunda parte daremos sequência à análise buscando novas informações desse esquema.
Nos dados encontrados havia várias tags que faziam referências a diversas URLs, através dessas tags o malware conseguia encontrar as informações que precisava, vamos analisar algumas:
[Imagens]
Caminho=http://i412.photobucket.com/albums/pp205/imagem_modular/
Essa URL ainda está online, como o próprio nome da tag diz trata-se de um repositório de imagens. Ao acessá-la encontramos imagens copiadas de sites bancários como botões, logotipos, fundos, etc. Logo podemos imaginar que devem ser usadas pelo malware para montar golpes de phishings bancários.
[Update]
Link=http://belezaeproeza.tempsite.ws/newfolder/
Veremos posteriormente que essa URL era utilizada pelo malware para buscar por atualizações.
[Reenvio]
Link=reenvio.vetnew@gmail.com
Reenvio0=
http://212.124.117.11/~matroska/sender/contacts/index.php;
http://212.124.117.11/~matroska/sender/mailer/hotmail.php
Reenvio1=
http://212.124.117.12/~matroska/sender/contacts/index.php;
http://212.124.117.12/~matroska/sender/mailer/hotmail.php
Reenvio2=
http://212.124.117.13/~matroska/sender/contacts/index.php;
http://212.124.117.13/~matroska/sender/mailer/hotmail.php
...
Reenvio9=
http://212.124.117.20/~matroska/sender/contacts/index.php;
http://212.124.117.20/~matroska/sender/mailer/hotmail.php
Vimos no artigo anterior que dentro do próprio malware havia uma mensagem de phishing, baseado nisso imagino que esse phishing (SPAM) é enviado através dessas URLs pelas páginas PHP. O próprio caminho da URL diz isso “/sender/mailer/hotmail.php”.
Nota-se que são utilizados servidores próprios para isso, a faixa de IPs 212.124.117.11 ao 212.124.117.20. É um esquema montado somente com essa finalidade, diferente do que costumamos encontrar onde geralmente invadem um site e armazenam esses arquivos maliciosos sem o conhecimento dos administradores.
[EscapeFtp01]
Servidor=[EDITADO].dominiotemporario.com
Usuario=[EDITADO]
Senha=tda50103
Pasta=/public_html/escapes/
[EscapeFtp02]
Servidor=ftp.terragyn.com
Usuario=dantas
Senha=833876
Pasta=/public_html/
[EscapeFtp03]
Servidor=74.220.215.219
Usuario=carrosbr
Senha=GT54@!xzjh
Pasta=/public_html/escapes/
Três servidores de FTP também próprios para o esquema, talvez sejam de backups (escape?). Com as credenciais de acesso tão expostas assim fica fácil acessá-los. Veremos logo mais.
[Escapes]
Escapes0=http://www.[EDITADO].com.br/escapes/vcom/vcom.html
Escapes1=http://www.terragyn.com/vcom/vcom.html
Escapes2=http://74.220.215.219/~carrosbr/escapes/vcom/vcom.html
Novamente os Escapes aqui, utilizam o mesmo nome “vcom.html” nas três URLs. Aqui começa algo interessante. Acessei a primeira URL e apareceu essa página:
Uma mensagem aparentemente inofensiva dizendo que o conteúdo ainda não foi publicado. Agora veja o que acontece se mandamos selecionar toda a página com Ctrl + A:
Um código estranho aí embaixo, vamos ver o código-fonte da página:
Com qual intenção alguém colocaria em um página HTML uma fonte na cor branca em um fundo branco?
<font color='white'>§Xilpty17DGKO§</font>
Pra mim isso só quer dizer uma coisa, tentar esconder informações. O que acontece se a gente usar essa string estranha “Xilpty17DGKO” como URL?
Abriu um arquivo com um código hexadecimal bem extenso, fazendo download dele e abrindo no Bloco de Notas sua aparência é essa:
Estão lembrados do artigo anterior onde havia um código hexadecimal bem parecido com esse?
Apesar de não ser o mesmo código a estrutura é bem semelhante, precisamos descobrir uma maneira de revelar o que ele esconde.
O malware que analisamos escondia esse código na seção Resources do executável, podemos tentar alterar o executável original e inserir esse código novo no mesmo endereço do anterior para ver se conseguimos que o malware descriptografe para nós.
Isso pode ser feito de várias maneiras, fiz da mais simples possível, abri o arquivo do malware em um editor hexadecimal (HxD), localizei o bloco de endereços onde ficava a string criptografada original (0x1DC80 ao 0x21C7F), selecionei e colei sobre ele o código novo.
Um detalhe, no editor que uso existe a opção “Colar inserindo” e “Colar sobre”, a primeira exclui o conteúdo selecionado e insere o novo, isso faz com que mude o tamanho do arquivo caso as strings sejam de tamanhos diferentes, e mudando o tamanho vai dar erro no executável. A segunda opção não muda o tamanho, só cola sobre a seleção, sobrescreve o que tiver naquele espaço, foi a opção que utilizei.
Vemos abaixo que a segunda string era menor (em vermelho) e não sobrescreveu todo o conteúdo da antiga, mas mesmo assim vamos tentar.
Salvei o arquivo modificado com outro nome, abri o OllyDbg e mandei executar. Ao observar a pilha encontrei a string nova descriptografada corretamente:
Fazendo o mesmo procedimento descrito no artigo anterior obtive os dados descriptografados, esse veio ao contrário, primeiro as informações dos servidores com as tags e depois a mensagem de phishing. As informações dos servidores eram as mesmas, já o e-mail de phishing era outro. No anterior o assunto do e-mail era o Lula e esse é a Larissa Riquelme, melhorou um pouco. :)
Servidores de FTP
Como disse anteriormente tínhamos três servidores de FTP com senhas e usuários, entrei pra dar uma olhada e pelo que percebi eles hospedavam sites de fachada para esconder as verdadeiras intenções, armazenar mensagens de phishing para distribuição de malwares. As pastas encontradas foram essas:
Essas pastas seguem o mesmo esquema explicado agora a pouco da “vcom.html”, cada uma tem uma página HTML supostamente inofensiva que esconde um código para acessar o arquivo criptografado em hexadecimal.
Por exemplo, a primeira pasta “flashback” tem a página flashback.html e um arquivo chamado “QUXZZbbdddee” com o hexadecimal. Os dados descriptografados encontrados nesse são um pouco diferentes, por exemplo:
[Servidor001]
Servidor=http://189.1.171.129/~flash/
Interface=data.php
...
[Reenvio]
Link=reenvio.flashback@gmail.com
Reenvio0=http://212.124.118.94/~gogoboy/contacts/index.php;
http://212.124.118.94/~gogoboy/mailer/hotmail.php
Reenvio1=http://infotube.com.br/templates/beez/contacts/contacts/index.php;
http://infotube.com.br/templates/beez/contacts/mailer/hotmail.php
Reenvio2=http://212.124.121.130/~a001/sender/contacts/index.php;
http://212.124.121.130/~a001/sender/mailer/hotmail.php
…
[IpServidor01]
Servidor=189.1.171.129
Usuario=flash_user
Senha=1q2w3e4r
IP=flash_db
...
E a mensagem de phishing também é outra:
Com tudo isso conseguimos imaginar o tamanho dessa rede de envio de phishings e distribuição de malwares, são dezenas de servidores web e dezenas de mensagens diferentes de phishing. Daria para fazer esse processo de descriptografia com cada uma dessas pastas do FTP.
Tendo base todas as informações coletadas e mais algumas descobertas na engenharia reversa podemos tentar traçar uma linha de execução para o malware.
O que o malware faz?
1- Cria o arquivo “%SYSTEM%\javan.dll”;
Esse arquivo não foi criado na minha análise mas pelo código foi possível constatar isso, assim como no site de análise de malware ThreatExpert. Ele confirma a criação dessa DLL e dá algumas pistas do que ela faz, registra um Browser Helper Object (BHO) que é um plugin para o Internet Explorer, através dele o malware consegue manipular a comunicação do IE.
2- Cria o arquivo “%WINDOWS%\Media\joys.cpl”;
3- Cria o arquivo “%WINDOWS%\Media\lsass.cpl”;
4- Carrega o diretório “svchost” da seção Resources e salva em “C:\WINDOWS\inf\asynceql.inf”;
5- Descriptografa o conteúdo encontrado na seção Resources;
6- Busca pelas tags “[Update]” e “Link” no conteúdo descriptografado;
7- Acessa a URL de Update encontrada: http://belezaeproeza.tempsite.ws/newfolder/
8- Lê um arquivo da Internet através da função InternetReadFile da API wininet.dll;
Essa função não é comumente utilizada para acesso a Internet, para acessar uma URL por exemplo é utilizada a função InternetOpenURL, já a InternetReadFile como o próprio nome já diz serve para ler o conteúdo de um arquivo na Internet. Muito propícia para o esquema de arquivos ocultos que acabamos de descobrir.
O malware acessa a página HTML e depois usa essa função para ler o conteúdo do arquivo oculto, aquele código hexadecimal.
9- Executa o comando “regsvr32 'C:\WINDOWS\system32\javan.dll' /s” para registrar a DLL;
Na imagem a seguir é possível ver o comando utilizado para registrar a DLL como um BHO do Internet Explorer.
10- Cria o arquivo “C:\WINDOWS\system\mkp.dll” e salva dentro dele a string “ENV”.
Conclusão
Essas possivelmente não são todas as funções do malware mas já dá para termos uma ideia de como ele funciona. Nos dois artigos vimos quanta informação é possível extrair de um arquivo tão pequeno e até como podemos utilizá-lo para nos revelar segredos.
Fazendo alusão às investigações criminais tradicionais que com um fio de cabelo chega-se a um assassino, na investigação digital ocorre a mesma coisa, com um arquivo de poucos kbytes pode-se chegar a uma grande rede dedicada ao crime.
Dúvidas, comentários, sugestões? Não deixa de escrever.
Até a próxima!
Ronaldo P. Lima
Parabens Ronaldo Excelente artigo.
ResponderExcluirEstou iniciando em segurança da informação agora, terminei pós-graduação na área, este artigo foi um grande case de investigação de malware.
Abraço
Plínio Devanier de Oliveira
Grande Ronaldo,
ResponderExcluirSempre escrevendo artigos de nível, parabéns !
Abs,
Rodrigo Lima
Sem sombra de dúvidas um dos melhores analistas do país!
ResponderExcluirEle é o melhor analista e você o melhor puxa-saco, né?
ExcluirEstou impressionado.
ResponderExcluirEntão, você está no lugar errado!
ExcluirNao seria o caso de denunciar os IPs e domínios (à exceção dos repositórios de imagens) às autoridades competentes (se é que você já não o fez)?
ResponderExcluirDe qualquer maneira, parabéns pelo artigo e pela maneira didática e simples com a qual você descreveu o processo de análise do malware.
Fico triste que programadores se empenhem tanto para criar coisas assim, pois evidentemente alguém com um talento razoável e tempo disponível - e uma ganância enorme desenvolveu o malware.
Só que para cada 100 idiotas destes, há alguém como você.
Parabéns ;)
Ronaldo, parabens pelos excelentes artigos. Muito bom!!!
ResponderExcluirE o primeiro artigo que descobro na internet sobre analise de malware, esta ainda um pouco confuso, apenas pessoas mais experientes conseguem perceber o que diz.
ResponderExcluirCreio que deveria de ser mais detalhado em certos aspectos, também não usou nem explicou o que e um packer, crypters, binders e anti's, e o propósito de cada um.
Mas, note que este tipo de coisas, para utilizadores menos experientes pode sair caro...
E leva-los directos a uma estadia privada numa cela, ainda que sejam poucos aqueles que lá vão parar.
"...apenas pessoas mais experientes conseguem perceber o que diz"
ExcluirO que não é o seu caso, né?
Estude Português primeiro, para não sair escrevendo "descobro" por aí, depois.
Pessoal, muito obrigado por todos os comentários e elogios! Fico feliz que estejam gostando.
ResponderExcluirAnônimo 2,
Sim, nesses casos o melhor a fazer é denunciar os IPs e domínios para o CERT.br e os provedores responsáveis. Essa análise eu fiz faz alguns meses já e na época fiz a denúncia.
Moderador,
Você tem razão quanto ao nível de dificuldade do artigo e a falta de detalhes de certos procedimentos. Esse é um artigo mais avançado mesmo. Para quem está começando sugiro que leia esse daqui:
http://www.crimesciberneticos.com/2011/06/analise-estatica-e-dinamica-de-um.html
No menu "Malwares e Phishings" há outros artigos sobre o tema também, talvez alguns sejam mais detalhados, inclusive vou pensar na ideia de categorizar os níveis dos artigos.
Abraços!
ótimo artigo bro, parabens!
ResponderExcluirParabéns! ótimo artigo!!.. gostei bastante.. continue assim.
ResponderExcluirmuito bom seu artigo
ResponderExcluirmais mim responde o que vc ganha protegendo os mailditos do gorveno pode vc fazer um analiz de corrupição que tem no brasil e ajuda o povo a sabe a verdade. eu so um cara normal ñ tenho facul ñ tenho deinho mais tenho grade conhceimento. so com vc sempre atraiz de conhecimento novo. so tem um aviso para vc cuidado no que vc procura pq sempre acha os defeitos vc ta do lando do certinho mais sera verdade que os certos estão certo com o que falar so anonymuos lutor pela verdade do povo então ñ brico com malvawer coisa do tipo mais sim infos viva limberdade mundo e vivre vamos mostra para todos a verdade do gorveno e vc sabe muito bem da verdade
abraço adorei sua paletras em sp
^^
Gostaria de saber em qual linguagem você acha que foi feito esse malware?
ResponderExcluirAnônimo,
ResponderExcluirEsse malware foi feito em Borland Delphi.
[]'s
Prezado Ronaldo, as imagens parecem ter sido bloqueadas.
ResponderExcluirParabéns pelo excelente trabalho e posts.
Paulo