Forense caso 00a - Eriberto Wiki
Forense caso 00a
Caso 00a - Análise avançada conduzida
Brasília, DF, 29 de março de 2011
Atualização em: 24 de abril de 2015
Este caso consiste em um exercício conduzido com o objetivo de utilizar algumas técnicas avançadas de manipulação de filesystems. O cenário está em torno de um pendrive apreendido. Tal pendrive pertencia a um pedófilo, que mantinha fotos eróticas e textos especializados armazenados. O objetivo de manter textos especializados era aprender como atrair crianças na Internet e entender como a polícia poderia rastreá-lo. Este objetivo foi levantado em interrogatório após a sua prisão.
Serão feitas várias perguntas. Por tratar-se de um exercício avançado, serão citadas ferramentas e técnicas que deverão ser empregadas para obter resultados.
ALERTA: ESTE EXERCÍCIO CONTÉM FIGURAS E PALAVRAS ERÓTICAS.
Exercício: responda às perguntas a seguir, analisando a imagem de pendrive (22 MB comprimidos, 980 MB descomprimidos) disponibilizada. Antes de tudo, leia o conteúdo da página http://bit.ly/tsk-commands.
O hash MD5 da imagem comprimida é 59888d317634cd4b134e66333bf8d37a.
Inicialmente, confira o hash do arquivo baixado.
Quais são os três primeiros bytes da imagem?
Qual é o esquema de particionamento do pendrive? (fdisk -l / mmls / file / disktype)
Qual é o tipo de filesystem de cada partição do pendrive? (fsstat -o / disktype)
Sem montar as partições existentes, descubra qual é o inode referente à figura pic_1.jpg, existente na primeira partição. (mmls + fls -ro + grep / fdisk -l + fls -ro + grep)
Analisando os dados no inode levantado no item anterior, descubra o tamanho, o mactime e o primeiro setor do arquivo na imagem. (istat -o)
Monte cada partição do pendrive, em modo read-only, e verifique os conteúdos. (mount com ro e offset + find / tree -C)
Calcule novamente os hashes MD5 e SHA256 de cada arquivo, atuando sobre o ponto de montagem. (find / hashdeep / hashrat)
Faça uma linha do tempo do conteúdo de cada partição existente, usando o comando fls. (fls -ro -m e mactime -z BRT)
Faça uma linha do tempo do conteúdo de cada partição existente, usando o comando mac-robber. (mac-robber e mactime -z BRT)
Cite a diferença de utilização entre fls -m e mac-robber.
Procure, na superfície do disco, por uma mensagem, criada pelo pedófilo, contendo um número de telefone. (1ª técnica: strings + egrep -o + sort -u / 2ª técnica: mcview / ambos utilizando expressões regulares)
Recupere o trecho exato que contém a mensagem citada no item anterior. ({strings -td / hexedit} + grep + {dd ou dcfldd, ambos com bs=1 + count + skip})
Recupere as figuras apagadas no filesystem da primeira partição. (fls -rdFo + icat -o, podendo usar um loop for)
Escolha uma das figuras recuperadas com êxito no item anterior e procure-a na imagem de disco, utilizando uma assinatura. A seguir, recupere-a com o comando dd ou dcfldd. (hexedit + {dd ou dcfldd} + calculadora)
Corrija, se for o caso, o tamanho da figura recuperada no item anterior, utilizando o GIMP.
Com base no relatório do comando foremost (audit.txt), observando o offset, recupere qualquer figura utilizando o comando dd ou dcfldd.
Tente obter dados EXIF das figuras existentes no primeiro filesystem. (metacam / exiftool)
Verifique dados extras interessantes que possam existir na figura crianças.jpg (no primeiro filesystem). (hexedit / strings / exiftool)
Verifique os dados referentes às propriedades dos arquivos .doc existentes na segunda partição. (file / libreoffice / exiftool)
Relacione todas as URLs citadas na superfície do disco. (strings e egrep -o com expressões regulares e outros - dica: egrep -o 'https?://[^ ]+')
Crie um arquivo que contenha todos os blocos não alocados existentes na primeira partição. (blkls -o)
Crie um arquivo que contenha todos os slack spaces existentes na primeira partição. (blkls -so)
Procure por figuras existentes na superfície do disco e que não pertençam aos filesystems existentes. (blkls -o + {foremost ou magicrescue})
Explique quando devemos utilizar fls+icat ou foremost/magicrescue.
Estudo específico: comandos foremost e magicrescue
Os comandos foremost e magicrescue são conhecidos por realizarem a atividade denominada file carver. Esses comandos devem ser utilizados, principalmente, nas seguintes condições:
Quando não há um filesystem mas há arquivos na superfície do disco.
Depois de uma formatação acidental.
Quando há um filesystem mas desejamos arquivos gravados em formatações anteriores.
Quando o filesystem não é compatível com as ferramentas do TSK.
O comando foremost possui várias opções. Dentre elas, destacam-se:
-T cria um diretório, com a data e a hora do início da operação, para abrigar os arquivos recuperados.
-a recupera arquivos, inclusive danificados, podendo gerar falsos positivos.
-q não recupera quando considera que determinados arquivos estão englobados por outros. Um exemplo: uma figura JPG dentro de um arquivo .ppt.
-t permite selecionar um tipo de arquivo. Os tipos de arquivos estão descritos no manual on-line do comando.
O comando magicrescue denomina os tipos de arquivos como sendo recipes. Os recipes possíveis estão diponíveis em /usr/share/magicrescue/recipes.
Assim sendo, resolva as questões:
Recupere as figuras existentes na superfície da imagem usando o comando: foremost -Tqt jpg.
Faça o mesmo usando: foremost -Tt jpg.
Faça, novamente, usando: foremost -Tat jpg.
Verifique a quantidade de arquivos em cada diretório output/jpg, com o comando: ls | cat -n.
Crie um diretório teste e recupere as figuras existentes na superfície da imagem usando o comando: magicrescue -r jpeg-jfif -d teste caso_00a.dd.
Verifique a quantidade de arquivos no diretório teste, com o comando: ls teste | cat -n.
Com o programa gwenview ou, alternativamente, mirage, veja o conteúdo dos quatro diretórios.
Crie um diretório fotos e mova todos os quatro diretórios criados anteriormente para dentro dele. A seguir, estando fora do diretório fotos, remova as figuras duplicadas com o comando: fdupes -rdN fotos.