Análise de Código Malicioso: Monitoramento e Análise de Sistemas

Este experimento foca na análise de códigos maliciosos, com ênfase no monitoramento do sistema e na análise de software malicioso utilizando ferramentas nativas e do Sysinternals.

  1. Conhecimentos Fundamentais

  • Monitorar o estado de execução do seu sistema para identificar processos suspeitos.
  • Analisar um software malicioso gerado em experimentos anteriores (Exp2 ou Exp3).
  • Utilizar ferramentas como comandos nativos, Sysinternals e SysTracer para a análise.
  • Aplicar as metodologias aprendidas em um ambiente de trabalho para diagnosticar e analisar potenciais ameaças em um host comprometido.
  1. Registro do Processo Experimental

2.1. Monitoramento da Execução do Sistema (2 pontos)

2.1.1. Tarefa Agendada com Netstat para Monitoramento de Rede

Configurar uma tarefa agendada para registrar periodicamente os programas que estabelecem conexões de rede, os IPs externos e, de forma inferida, suas atividades. O objetivo é identificar todos os programas que se conectam à rede, para onde se conectam e qual sua provável função.

  1. Criar uma tarefa agendada chamada netstat_monitor para executar a cada 5 minutos. O comando a ser executado é um script batch (netstatlog.bat) que registra a data, hora e a saída do comando netstat -bn em um arquivo de log (netstatlog.txt).

schtasks /create /TN netstat_monitor /sc MINUTE /MO 5 /TR "c:\netstatlog.bat"
   
  1. O script netstatlog.bat no diretório C:\ deve conter:

@echo off
echo Data: %date% >> c:\netstatlog.txt
echo Hora: %time% >> c:\netstatlog.txt
netstat -bn >> c:\netstatlog.txt
echo. >> c:\netstatlog.txt
   
  1. Modificar a tarefa agendada netstat_monitor para executar o script netstatlog.bat.
  2. Analisar o arquivo netstatlog.txt.
  3. Importar os dados para o Excel.
  4. Gerar tabelas dinâmicas e gráficos de barras para visualização e análise dos dados.
  5. Analisar os dados estatísticos para identificar os programas mais ativos em conexões de rede.

Análise dos dados:

Programa Resumo Contagem
[msedge.exe] Microsoft Edge 2111
[ECAgent.exe] Agente de Segurança 1038
[nvcontainer.exe] Painel de Controle NVIDIA 1009
[firefox.exe] Mozilla Firefox 809
[AppleMobileDeviceProcess.exe] Driver Apple Mobile 696
[mDNSResponder.exe] Bonjour Service 694
[Lsf.exe] Lenovo Account 636
[svchost.exe] Serviço de Host do Windows 443
[NutstoreClient.exe] Nutstore Client 364
[SangforPromoteService.exe] Sangfor VPN Service 346
WpnService Windows Push Notification Service 345
[Video.UI.exe] Filmes e TV 344
[...-dotnet4.0.exe] SSR 205
[WeChat.exe] WeChat 187
[SearchApp.exe] Microsoft Search 138
[LenovoPcManagerService.exe] Lenovo PC Manager Service 64
[AlibabaProtect.exe] Alibaba Security Control 61
[backgroundTaskHost.exe] Background Task Host 36
[Spotify.exe] Spotify Player 33
[Code.exe] VS Code 27
[Microsoft.Photos.exe] Microsoft Photos 26
WpnUserService_6729924 Windows Push Notification Service 24
CryptSvc Cryptographic Services 24
wlidsvc Office Online Storage Service 22
[EXCEL.EXE] Microsoft Excel 22
[BackgroundDownload.exe] Desktop Wallpaper Downloader 21
[FenbiZhiboke.exe] Fenbi Live Class 20
[Typora.exe] Typora Editor 18
[iTunes.exe] iTunes Player 14
WpnUserService_eaabf4 Windows Push Notification Service 12
[OfficeClickToRun.exe] Office Click-to-Run 9
[ctfmon.exe] Language Bar Fix Tool 8
[ServiceHub.SettingsHost.exe] Service Hub Settings Host 8
[devenv.exe] Visual Studio Development 7
[igfxEM.exe] Intel Graphics Driver 5
[WINWORD.EXE] Microsoft Word 5
[java.exe] Java Runtime 5
[PerfWatson2.exe] Performance Diagnostic Tool 4
OneSyncSvc_eaabf4 OneSync Service 4
[SettingSyncHost.exe] Settings Synchronization Host 3
[ServiceHub.IdentityHost.exe] VS Identity Host 3
DiagTrack Diagnostic Tracking Service 3
[Lenovo.Modern.ImController.exe] Lenovo Modern ImController 3
WpnUserService_7ba117b Windows Push Notification Service 3
BITS Background Intelligent Transfer Service 2
[ServiceHub.VSDetouredHost.exe] Service Hub VS Detoured Host 2
[System] System Proceses 2
[VirtualBoxVM.exe] VirtualBox VM 2
WpnUserService_d935e Windows Push Notification Service 2
[WhiteboardWRT.exe] Microsoft Whiteboard 1
[cleanmgr.exe] Disk Cleanup 1
[Explorer.EXE] Windows Explorer 1
CDPUserSvc_d935e Connected Devices Platform Service 1
[GfxDownloadWrapper.exe] Intel Graphics Control Panel Downloader 1
[Snipaste.exe] Snipaste Screenshot Tool 1
[OneDriveStandaloneUpdater.exe] OneDrive Standalone Updater 1
wuauserv Windows Udpate Service 1
[taskhostw.exe] Task Host Window 1
[processlasso.exe] Process Lasso 1
Total 9879

O msedge.exe foi o programa com maior número de conexões de rede registradas, seguido por outros softwares comuns como Firefox e WeChat. Alguns softwares como o Alibaba Security Control levantaram suspeitas devido a relatos de monitoramento extensivo de disco, mesmo sem a execução explícita de aplicativos da Alibaba.

2.1.2. Sysmon para Monitoramento de Host

Instalar e configurar o Sysmon (System Monitor) da Sysinternals com um arquivo de configuração XML para monitorar atividades suspeitas no host.

  1. Instalação do Sysmon: Executar Sysmon.exe -accepteula -i -n em modo administrador.
  2. Criação do arquivo de configuração (sysmon.xml): Configurar regras de inclusão (whitelist) e exclusão (blacklist) para eventos de rede, criação de processos, etc. O schemaversion deve corresponder à versão do Sysmon.

<Sysmon schemaversion="3.10">
 <HashAlgorithms>*</HashAlgorithms>
 <EventFiltering>
   <DriverLoad onmatch="exclude">
     <Signature condition="contains">microsoft</Signature>
     <Signature condition="contains">windows</Signature>
   </DriverLoad>
   <NetworkConnect onmatch="exclude">
     <Image condition="end with">chrome.exe</Image>
     <Image condition="end with">iexplorer.exe</Image>
     <SourcePort condition="is">137</SourcePort>
     <SourceIp condition="is">127.0.0.1</SourceIp>
   </NetworkConnect>
   <CreateRemoteThread onmatch="include">
     <TargetImage condition="end with">explorer.exe</TargetImage>
     <TargetImage condition="end with">svchost.exe</TargetImage>
     <TargetImage condition="end with">winlogon.exe</TargetImage>
     <SourceImage condition="end with">powershell.exe</SourceImage>
   </CreateRemoteThread>
 </EventFiltering>
</Sysmon>
   
  1. Carregar a configuração: Executar .\Sysmon.exe -i sysmon.xml. Para atualizações, usar .\Sysmon.exe -c nome_arquivo_config.xml.
  2. Visualizar logs: Abrir o Visualizador de Eventos em Logs de Aplicativos e Serviços -> Microsoft -> Windows -> Sysmon -> Operational.
  3. Simular reconexão com o backdoor: Executar o programa backdoor e configurar um listener no Kali. Verificar os logs do Sysmon para registrar a atividade. Os logs detalham o protocolo, IPs, portas e outras informações relevantes.

2.2. Análise de Malware (1.5 pontos)

Analisar o comportamento de um software malicioso em diferentes cenários: inicialização e reconexão, instalação em máquina alvo e outras ações arbitrárias (ex: migração de processos, captura de tela). Foco em registros modificados, arquivos acessados e comunicação de rede.

2.2.1. Análise Estática

  1. Verificação de Vírus: Utilizar o VirusTotal para obter informações sobre o arquivo, incluindo MD5, SHA1, SHA256 e possíveis detecções por antivírus.
  2. Identificação de Empacotamento/Ofuscação: Utilizar ferramentas como PEiD e UPX para verificar se o executável está empacotado ou ofuscado. O exemplo mostra um executável que foi empacotado com UPX e possivelmente criptografado com Hyperion.
  3. Desmontagem e Descompilação: Utilizar ferramentas como PE Explorer para inspecionar as DLLs importadas e a estrutura do executável.

2.2.2. Análise Dinâmica

  1. Comparação de Snapshots (SysTracer): Tirar snapshots do sistema antes e depois da execução do malware para identificar alterações em registros, arquivos e aplicativos. O SysTracer pode revelar a criação de entradsa de execução e conexões de rede estabelecidas pelo malware.

  2. Análise de Tráfego de Rede (Wireshark): Capturar o tráfego de rede durante a execução do malware em um listener (ex: no Kali Linux) para analisar os pacotes TCP/IP, identificando IPs de destino, portas e dados transmitidos. Configurar filtros no Wireshark (ex: ip.addr == IP_DO_HOST and tcp.port == PORTA_DO_BACKDOOR).

  3. Monitoramento de Comportamento (Process Monitor): Utilizar o Process Monitor (ProcMon) da Sysinternals para registrar detalhadamente as operações de processo, arquivo e registro realizadas pelo malware. Filtrar o ProcMon pelo nome do processo do malware para analisar seu comportamento.

  4. Problemas Encontrados


  • Criação de arquivos em C:\: A falta de permissão para criar arquivos diretamente em C:\ impediu a gravação do netstatlog.txt e netstatlog.bat. Solução: Executar a tarefa agendada com privilégios elevados ou criar os arquivos em um local com permissão de escrita.
  • Wireshark com USBPcap1: A instalação do Wireshark pode ter vindo com a captura de pacotes USB por padrão. Solução: Executar o Wireshark como administrador para garantir o acesso correto às interfaces de rede.
  1. Respostas às Perguntas

  • Monitoramento de um host suspeito: Para monitorar um host com suspeita de código malicioso, utilizaria o schtasks para agendar a execução do netstat e registrar conexões de rede. Paralelamente, o Sysmon seria configurado com regras específicas para capturar eventos de processos, rede e alterações de sistema, permitindo uma análise detalhada posterior.
  • Ferramentas para análise de um processo comprometido: Uma vez identificado um processo suspeito, utilizaria o SysTracer para criar snapshots comparativos e identificar alterações detalhadas em arquivos e registros. O Process Monitor (ProcMon) forneceria um log detalhado das atividades do processo em tempo real. Para análise de comunicação de rede, o Wireshark seria essencial para capturar e analisar pacotes.
  1. Conclusão e Reflexões

Este experimento marcou a transição do foco em ataques para a detecção e análise de ameaças. A técnica de comparação de snapshots (SysTracer) é particularmente poderosa, embora a análise de grandes volumes de dados possa ser desafiadora. O monitoramento contínuo do tráfego de rede revelou processos desconhecidos e comportamentos inesperados, como os associados a controles de segurança e serviços de atualização do Windows, levantando questões sobre a necessidade de monitoramento constante e a compreensão do comportamento normal do sistema para identificar desvios.

Tags: sysmon netstat schtasks Wireshark process monitor

Publicado em 6-12 00:04 por Thomas