Hoje eu vou estar fazendo uma pequena análise sobre o ZitMo (também conhecido como ZeuS-in-the-Mobile). O ZitMo é um malware para Android e foi desenvolvido com o objetivo de roubar mensagens de SMS do dispositivo da vítima (vamos ver como isso funciona). O arquivo '.apk' pode ser encontrado na URL abaixo:
http://www.mediafire.com/?jvds225lczxrv7o (senha: infected)
Detecção
Podemos verificar algumas detecções iniciais mandando o arquivo '.apk' para o VirusTotal. A figura 01 apresenta a quantidade de anti-vírus que detectaram o arquivo como sendo malicioso.
 |
Figura 01: Taxa de Detecção |
A partir da figura 02, é possível verificar de que alguns anti-vírus identificam o arquivo como sendo Zitmo (Ex: Kaspersky) e outros identificam como sendo 'Android/Spy' (Ex: McAfee).
 |
Figura 02: Lista de AVs |
Informações Básicas
Vamos dar uma olhada no arquivo 'AndroidManifest.xml' e obter algumas
informações básicas sobre o malware. A Figura 03 apresenta o início do
arquivo 'AndroidManifest.xml'.
 |
Figura 03: Verificando permissões |
É possivel verificar que o malware necessita de 3 permissões:
- RECEIVE_SMS: Acesso às mensagens de SMS recebidas
- INTERNET: Acesso à internet
- READ_PHONE_STATE: Acesso de leitura ao estado do dispositivo
A figura 04 apresenta mais informações sobre o 'AndroidManifest.xml'.
 |
Figura 04: Verificando activities e receivers |
A partir da figura 04, é possível verificar de que a aplicação apresenta uma única Activity (identificado como ".Activation") e um broadcast receiver (identificado como ".SmsReceiver"). Tambem é possível constatar de que o receiver utilizado responde às mensagens de SMS recebidas.
Instalando o Apk no Simulador
Vamos agora instalar o malware no simulador (disponível no ADT). A instalação pode ser realizada facilmente com a ferramenta 'adb' da seguinte forma:
- adb install 'arquivo.apk'
A figura 05 apresenta o malware instalado no simulador. Percebam de que o malware se apresenta ao usuário como 'Trusteer Rapport'.
 |
Figura 05: Malware instalado |
A figura 06 apresenta o malware sendo executado (uma única Activity).
 |
Figura 06: Malware sendo executado |
Decompilando o código
Vamos decompilar o malware para podermos ter mais informações sobre o seu funcionamento interno. A Figura 07 apresenta as classes presentes na aplicação (6 ao total).
 |
Figura 07: Decompilação (Classes) |
Classe SmsReceiver
A partir da figura 04, foi possível constatar de que o malware possui um Broadcast Receiver (implementado na classe SmsReceiver). A classe SmsReceiver recebe eventos de mensagens de SMS e encaminha elas para a classe MainService (ver figura 08).
 |
Figura 08: Classe SmsReceiver |
Classe MainService
A classe MainService é chamada por SmsReceiver e encaminha as mensagens de SMS recebidas para uma Thread (SmsBlockerThread). A figura 09 apresenta um trecho da classe MainService.
 |
Figura 09: Classe MainService |
Thread SmsBlockerThread
SmsBlockerThread realiza algumas ações nas mensagens recebidas:
- Extração de informação: A Thread retira informações sensíveis da mensagem de SMS. As variáveis 'str1' e 'str2' contém respectivamente a orígem e conteúdo da mensagem. A variável 'str3' apresenta o IMEI do dispositivo.
- Envio de informações: Os dados roubados são encaminhados para o método 'postRequest' da classe ServerSession (esta classe é responsável por enviar os dados para um servidor remoto).
 |
Figura 10: SmsBlockThread |
Classe ServerSession
Na classe ServerSession podemos constatar alguns pontos:
- Localização do servidor remoto: O método 'initUrl' retorna uma String com a localização do servidor remoto (para onde as informações da vítima são enviadas)
- Envio das mensagens: As informações roubadas são enviadas através do método postRequest (DefaultHttpClient é utilizado para realizar a requisição HTTP [Variável 'localHttpPost']).
 |
Figura 11: Classe ServerSession |
Conclusão
Nesta postagem eu fiz uma
pequena análise sobre o ZitMo (ZeuS-in-the-Mobile). Eu devo estar apresentado mais algumas análises de malware no blog. Por favor escrevam suas sugestões e comentários!
Obrigado :)
Keep Hacking!