Forense caso 00a
by (C) João Eriberto Mota Filho <eriberto (a) eriberto pro br>
Caso para estudo, ligado diretamente ao artigo perícia forense computacional, existente neste wiki.
Última atualização: veja o rodapé desta página.
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.
Perguntas básicas:
- 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?://[^ ]+')
Questões complementares:
- 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.
- Veja novamente o conteúdo dos diretórios.
- Explique como o fdupes atua (veja o manual on-line).