sábado, 28 de fevereiro de 2009

INTRODUÇÃO

Utilizaremos em nosso exercício uma máquina virtual nas configurações conforme a figura 01. Para coleta das características iniciais acoplaremos um HD de 20Gb (E:\) a essa máquina virtual e serão utilizados softwares executados a partir de um CD-ROM (NCTFORKIT.iso) na mesma. Lembramos que em situações reais, não existe um estado inicial para comparação e cada sistema possui diversos aplicativos específicos já instalados, dificultando a detecção das alterações feitas pelos códigos maliciosos e criando a necessidade de experiência do analista forense para obtenção de sucesso no trabalho realizado.

O objetivo da perícia é identificar as alterações realizadas pelo código infiltrado no sistema, removendo o mesmo da memória, da inicialização e imunizar o sistema contra ataques similares, levantando assim uma ficha técnica do malware.

Com a ficha técnica do malware, passamos a identificar o objetivo do autor do código e possivelmente o próprio autor, para iniciar um processo criminal tipificado contra o mesmo.

Para fazer parte de um processo criminal, as evidências devem ser coletadas de forma cuidadosa e criteriosa, o sucesso do caso depende na capacidade das amostras serem confirmadas e verificadas como fidedignas. Num caso real, seria gerada uma imagem do HD da vítima para a realização da coleta, de forma que o mesmo fosse preservado como evidência.


Figura 1.




O ataque escolhido para nosso teste foi um malware, portanto, as modificações possíveis no estado atual são inúmeras, buscaremos então coletar o máximo possível de dados, pois assim teremos mais informação para utilizar em testes comparativos do estado anterior e posterior do sistema. Como estamos criando um retrato inicial pré-infecção, a ordem das ferramentas que utilizaremos não fará diferença na análise posterior.

As ferramentas utilizadas tentarão angariar o máximo de informações a respeito do estado anterior do equipamento, todavia, após a infecção, dependendo do tipo de malware que estamos lidando, muitas delas não mostrarão qualquer alteração em seu estado, pois cada tipo de malware tem seu modo de operação, podendo modificar desde drivers instalados a serviços iniciados pelo registro.


Utilizaremos um malware recebido por email por um de nossos clientes em seu dia a dia. O email traz em seu conteúdo um despacho judicial de interesse do destinatário com um link para o mesmo, e foi enviado aparentemente pela Procuradoria de Justiça. Trata-se de um link para um endereço incomum em que não aparece o DNS e sim o próprio IP público.

O autor posicionou o arquivo isca em um servidor ao invés de mandá-lo diretamente como anexo, pois sabia que certamente o arquivo seria bloqueado por softwares antivírus tanto dos clientes quanto dos provedores. De fato, ao tentar baixar arquivo, o antivírus instalado em nosso cliente detectou o malware e eliminou o mesmo. O cliente então se deu conta do scam e entrou em contato conosco. Depois tentamos enviar o arquivo executável diretamente como anexo,mas o mesmo nunca chegou ao destino, sendo facilmente reconhecido como um risco potencial pelos servidores.

Muito embora tal espécie de email deva ser de imediato ignorado, vamos em frente mesmo contra o bom senso para examinarmos esse código a título educacional. Lembrando que tais procedimentos são extremamente arriscados e somente devem ser realizados em máquinas virtuais ou máquinas com conteúdo descartável.

Abrindo o link no navegador em uma máquina virtual sem antivírus, iniciamos o download de um arquivo chamado “DESPACHOARTIGO875234134.exe” e em seguida executamos o mesmo.



COLETA

Inicialmente, iremos obter a imagem inicial do sistema, antes das modificações executadas por códigos maliciosos.

1-Process Explorer

Esta ferramenta para gerenciamento dos processos em andamento é a primeira a ser coletada em nosso caso. Observamos que todos são os processos listados são comuns, com assinaturas devidamente verificadas.

Normalmente, os malwares vão modificar essa lista de processos, ou criando processos novos, ou modificando os já existentes, nesse caso as assinaturas vão aparecer como "não verificadas", o que torna o mesmo suspeito.



2-Autoruns

Essa ferramenta relaciona todos os itens inicializados com o sistema, sejam processos, chaves de registro, drivers, etc.

Para que o malware não seja eliminado durante a reinicialização do sistema, eles normalmente se infiltram em algum desses itens, de forma que sejam sempre inciados junto com o sistema, dessa forma a máquina fica permanentemente infectada. Na comparação com o estado posterior, o programa vai evidenciar as possíveis alterações.

Marcaremos a opção no menu “options – Verify Code Signatures” e depois um “refresh” antes de salvarmos o estado atual.

3-TCPView

Aqui conseguiremos um retrato das conexões TCP e UDP abertas em nosso sistema. Qualquer invasor que queria entrar em nosso sistema, ou obter informações do mesmo tem de utilizar essas portas para movimentar os dados.



4-AccessEnum

Com essa ferramenta geramos um relatório com um detalhamento de pastas importantes (ex: C:\Windows) e também do registro. Caso alguma chave ou arquivo sejam acrescentados ao relatório inicial, o programa acusará as diferenças na comparação.

5-RootkitRevealer

O resultado obtido foi vazio, pois nenhum aquivo instalado no sistema se assemelha ao comportamento de um Rootkit.

6-ShareEnum

O foi vazio, uma vez que não há compartilhamentos no estado inicial.

7-Diskview

Conforme a figura abaixo, o programa exibe o estado atual do disco. As estatísticas do mesmo demonstram 42.41% de espaço livre, 8952 arquivos e 9827 fragmentos.

8-HijackThis

A utilização do HijackThis pode parecer redundante nesse caso, mas o mesmo facilita muito a identificação e remoção automática de malwares e é uma ferramenta muito útil em nossa perícia. É também muito útil na remoção de BrowserHijackers e DNSHijackers.

Segue abaixo o log inicial obtido:

Logfile of HijackThis v1.99.1
Scan saved at 22:05:19, on 12/2/2009
Platform: Windows XP SP1 (WinNT 5.01.2600)
MSIE: Internet Explorer v6.00 SP1 (6.00.2800.1106)

Running processes:
C:\WINDOWS\System32\smss.exe
C:\WINDOWS\system32\winlogon.exe
C:\WINDOWS\system32\services.exe
C:\WINDOWS\system32\lsass.exe
C:\WINDOWS\system32\svchost.exe
C:\WINDOWS\System32\svchost.exe
C:\WINDOWS\Explorer.EXE
C:\WINDOWS\system32\spoolsv.exe
C:\WINDOWS\System32\ctfmon.exe
D:\bin\HiJackThis\HijackThis.exe

R1 - HKCU\Software\Microsoft\Internet Explorer\Main,Search Page = &http://home.microsoft.com/intl/br/access/allinone.asp
O3 - Toolbar: &Rádio - {8E718888-423F-11D2-876E-00A0C9082467} - C:\WINDOWS\System32\msdxm.ocx
O4 - HKCU\..\Run: [CTFMON.EXE] C:\WINDOWS\System32\ctfmon.exe
O9 - Extra button: Related - {c95fe080-8f5d-11d2-a20b-00aa003c157a} - C:\WINDOWS\web\related.htm
O9 - Extra 'Tools' menuitem: Show &Related Links - {c95fe080-8f5d-11d2-a20b-00aa003c157a} - C:\WINDOWS\web\related.htm
O14 - IERESET.INF: SEARCH_PAGE_URL=&http://home.microsoft.com/intl/br/access/allinone.asp
O20 - Winlogon Notify: TPSvc - C:\WINDOWS\SYSTEM32\TPSvc.dll


9-Md5

O intuito de utilizarmos o md5 é gerar hashes dos principais arquivos do sistema. A comparação posterior permitirá identificar quaisquer alterações nos mesmos. Muitos malwares substituem ou modificam os arquivos de sistema originais com o intuito de dificultar sua identificação. Como qualquer byte modificado vai fazer com que o md5 gere um hash completamente diferente, saberemos se os arquivos foram modificados.


7DE395D7B1F0C5C0BA2635BB01D0F5C8 e:\Blog\Originais\explorer.exe
A3975A7D2C98B30A2AE010754FFB9392 e:\Blog\Originais\explorer.scf
4BFF9ADB45335E88BD1D69752C8B26AC e:\Blog\Originais\NOTEPAD.EXE
CAFBB682B37B464BE0E3C26EE9A66391 e:\Blog\Originais\regedit.exe
2517B5DA22104857C8266DF762D60139 e:\Blog\Originais\TASKMAN.EXE



10-Encase

É sem dúvida a ferramenta mais completa para análise forense. Com ele vamos criar uma imagem do disco e de todas as modificações realizadas no mesmo com imenso detalhamento.


Também utilizaremos as seguintes ferramentas Everest, Disktective, LoadOrder, NTFSinfo e LogonSessions. Muitas dessas ferramentas visam gerar redundância nas informações obtidas, dessa forma evitamos que malwares criados com práticas antiforense para uma determinada ferramenta consigam passar despercebidos.


EXTRAÇÃO

Agora iremos obter os resultados após a infecção do sistema com o malware escolhido.

1-Process Explorer

Ao comparar os processos antes e após a infecção percebemos algumas modificações suspeitas. Apareceu um novo processo winsys32.exe (dentro de C:\Windows), executado no Startup do menu Iniciar. Um outro processo com o mesmo nome do CSRSS.exe também apareceu se apropriando do Explorer.exe e seus processos parentes. Apesar do nome idêntico ao do original, este possui as letras todas maiúsculas e o arquivo executável fica na pasta C:\Windows\System32\NtfsDriver. Nenhum desses dois processos possui assinatura verificável.



2-Autoruns

o Autoruns conseguiu perceber as três modificações realizadas, sendo duas no registro e uma no menu de autoinicialização. Ao comparar o relatório inicial com o atual o mesmo avisou conforme vemos na figura abaixo:




Percebemos então que o arquivo winsys32.exe é executado duas vezes. Uma no registro e outra no startup do menu Iniciar.


3-TCPView

Podemos através do TCPview verificar que o processo winsys32.exe tomou posse da porta UDP 1026, que era uma porta aberta naturalmente pelo sistema e fez com que o respectivo processo que antes utilizava essa porta passasse para outra, dessa forma camuflando seu tráfego longe de portas suspeitas. Provavelmente a porta foi aberta para o envio de informações, uma vez que o mesmo não está escutando requisições de conexão na mesma.


lsass.exe:660 UDP estacao1:isakmp *:*

svchost.exe:1092 UDP estacao1:1031 *:*

svchost.exe:1156 TCP estacao1:5000 estacao1:0 LISTENING

svchost.exe:1156 UDP estacao1:1900 *:*

svchost.exe:1156 UDP estacao1:1900 *:*

svchost.exe:824 TCP estacao1:epmap estacao1:0 LISTENING

svchost.exe:824 UDP estacao1:epmap *:*

svchost.exe:952 TCP estacao1:1025 estacao1:0 LISTENING

svchost.exe:952 UDP estacao1:1027 *:*

svchost.exe:952 UDP estacao1:ntp *:*

svchost.exe:952 UDP estacao1:ntp *:*

System:4 TCP estacao1:microsoft-ds estacao1:0 LISTENING

System:4 TCP estacao1:netbios-ssn estacao1:0 LISTENING

System:4 UDP estacao1:microsoft-ds *:*

System:4 UDP estacao1:netbios-ns *:*

System:4 UDP estacao1:netbios-dgm *:*

winsys32.exe:1668 UDP estacao1:1026 *:*



4-AccessEnum

O AccessEnum não detectou a modificação feita no registro. Uma vez que esse programa detecta entradas apagadas ou acrescidas, a modificação feita pelo malware passou despercebida. É por causa dessas situações que recomenda-se a utilização de redundância nas análises.

5-RootkitRevealer

Nenhuma discrepância foi encontrada.

6-ShareEnum

Nenhum compartilhamento foi criado.

7-Diskview

Foi detectada a criação de mais três arquivos que não existiam originalmente. Já identificamos dois com as ferramentas utilizadas até agora. Falta encontrar qual é esse terceiro arquivo criado pelo malware.

8-HijackThis

Foi a ferramenta que melhor detalhou a ameaça, mostrando as chaves de registros e os processos criados com o endereços dos arquivos. Inclusive o terceiro arquivo cdromxis.dll até agora não encontrado.


Logfile of HijackThis v1.99.1
Scan saved at 13:15:09, on 28/2/2009
Platform: Windows XP SP1 (WinNT 5.01.2600)
MSIE: Internet Explorer v6.00 SP1 (6.00.2800.1106)

Running processes:
C:\WINDOWS\System32\smss.exe
C:\WINDOWS\system32\winlogon.exe
C:\WINDOWS\system32\services.exe
C:\WINDOWS\system32\lsass.exe
C:\WINDOWS\system32\svchost.exe
C:\WINDOWS\System32\svchost.exe
C:\WINDOWS\system32\NtfsDriver\CSRSS.EXE
C:\WINDOWS\system32\spoolsv.exe
C:\WINDOWS\explorer.exe
C:\WINDOWS\winsys32.exe
C:\WINDOWS\System32\ctfmon.exe
D:\bin\HiJackThis\HijackThis.exe

R1 - HKCU\Software\Microsoft\Internet Explorer\Main,Search Page = &http://home.microsoft.com/intl/br/access/allinone.asp
F2 - REG:system.ini: UserInit=C:\WINDOWS\system32\NtfsDriver\CSRSS.EXE,
O3 - Toolbar: &Rádio - {8E718888-423F-11D2-876E-00A0C9082467} - C:\WINDOWS\System32\msdxm.ocx
O4 - HKLM\..\Run: [ASVR4] C:\WINDOWS\winsys32.exe
O4 - HKCU\..\Run: [CTFMON.EXE] C:\WINDOWS\System32\ctfmon.exe
O4 - Global Startup: winsys32.exe
O9 - Extra button: Related - {c95fe080-8f5d-11d2-a20b-00aa003c157a} - C:\WINDOWS\web\related.htm
O9 - Extra 'Tools' menuitem: Show &Related Links - {c95fe080-8f5d-11d2-a20b-00aa003c157a} - C:\WINDOWS\web\related.htm
O14 - IERESET.INF: SEARCH_PAGE_URL=&http://home.microsoft.com/intl/br/access/allinone.asp
O20 - Winlogon Notify: amber - C:\WINDOWS\SYSTEM32\cdromxis.dll
O20 - Winlogon Notify: TPSvc - C:\WINDOWS\SYSTEM32\TPSvc.dll



9-Md5

Os hashes obtidos não foram alterados, podemos deduzir que os arquivos não foram modificados pelo código malicioso.


7DE395D7B1F0C5C0BA2635BB01D0F5C8 e:\Blog\Originais\explorer.exe

A3975A7D2C98B30A2AE010754FFB9392 e:\Blog\Originais\explorer.scf

4BFF9ADB45335E88BD1D69752C8B26AC e:\Blog\Originais\NOTEPAD.EXE

CAFBB682B37B464BE0E3C26EE9A66391 e:\Blog\Originais\regedit.exe

2517B5DA22104857C8266DF762D60139 e:\Blog\Originais\TASKMAN.EXE



As outras ferramentas utilizadas não acrescentaram novas informações a respeito dos códigos estudados.




ANÁLISE

De acordo com os comparativos estudados durante a extração, nossos estudos levaram a identificação de 3 arquivos e 1 pasta criados, devidamente identificados abaixo. Também foram criadas duas entradas no registro e um item foi acrescentado ao Startup do menu Iniciar.


C:\Windows\winsys32.exe

C:\Windows\System32\NtfsDriver\CSRSS.EXE

C:\WINDOWS\SYSTEM32\cdromxis.dll

C:\Windows\System32\NtfsDriver

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Winlogon\Userinit

C:\Documents and Settings\All Users\Menu Iniciar\Programas\Inicializar


Somente o processo winsys32.exe pode ser finalizado pelo gerenciador de tarefas. Como o CSRSS se apossou do Explorer.exe, ele não permite a sua remoção da memória nem do arquivo cdromxis.dll. Contudo, com o Hijackthis podemos consertar as entradas de todos eles no registro e no menu iniciar, de forma que os mesmos não sejam executados na inicialização do sistema.

Dessa forma as ameaças foram eliminadas com facilidade apenas reiniciando a máquina e em seguida deletando os arquivos e pasta identificados acima

A imunização do sistema pode ser obtida com a utilização de um antívírus comercial, pois se tratam de malwares já bastante conhecidos e catalogados. Os seguintes produtos detectaram e removeram sem problema o código:


Avast Antivirus Professional 4.8.1229

AVG Antiviurs 8

ESET NOD32 Antivirus 3.0.642.0


Com o sistema limpo e imunizado, precisamos agora identificar o intuito do autor do código.

Para isso precisamos da ferramenta Encase. Deixamos a mesma para o final devido a sua complexidade. Como pudemos perceber, as ferramentas utilizadas até então já identificaram as modificações mais aparentes realizadas pelo código malicioso, cabe ao analista agora mergulhar mais profundamente nessas alterações para entender o funcionamento das mesmas e poder deduzir o objetivo do criador do malware.

Primeiramente, vamos criar um Case no nosso disco de evidências (E:\). Neste case vamos utilizar o comando "acquire" para adquirir a imagem do disco local onde o sistema está instalado (C:\). Uma vez terminado esse processo, teremos a imagem do sistema com seu devido hash gerado. Poderemos então investigar a fundo todos os arquivos instalados, bem como as modificações realizadas no timeline.

O excesso de informação é um fator que pode prejudicar o sucesso desse estudo, então devemos ser objetivos, indo direto aos arquivos maliciosos já identificados e analisar sua estrutura na busca de alguma informação útil.

Percebemos ao analisar o arquivo CSRSS.exe que o mesmo possui em seu conteúdo menção à utilização do HiBit, software de esteganografia utilizado em práticas antiforenses. Se o autor do código utilizou essa ferramenta, o trabalho do perito fica muito mais difícil.