Forense caso 00a

De Eriberto Wiki
Ir para navegação Ir para pesquisar
A versão imprimível não é mais suportada e pode ter erros de renderização. Atualize os favoritos do seu navegador e use a função de impressão padrão do navegador.

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.




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 de aplicação



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:

  1. Inicialmente, confira o hash do arquivo baixado.
  2. Quais são os três primeiros bytes da imagem?
  3. Qual é o esquema de particionamento do pendrive? (fdisk -l / mmls / file / disktype)
  4. Qual é o tipo de filesystem de cada partição do pendrive? (fsstat -o / disktype)
  5. 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)
  6. Analisando os dados no inode levantado no item anterior, descubra o tamanho, o mactime e o primeiro setor do arquivo na imagem. (istat -o)
  7. Monte cada partição do pendrive, em modo read-only, e verifique os conteúdos. (mount com ro e offset + find / tree -C)
  8. Calcule novamente os hashes MD5 e SHA256 de cada arquivo, atuando sobre o ponto de montagem. (find / hashdeep / hashrat)
  9. 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)
  10. 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)
  11. Cite a diferença de utilização entre fls -m e mac-robber.
  12. 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)
  13. 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})
  14. Recupere as figuras apagadas no filesystem da primeira partição. (fls -rdFo + icat -o, podendo usar um loop for)
  15. 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)
  16. Corrija, se for o caso, o tamanho da figura recuperada no item anterior, utilizando o GIMP.
  17. Com base no relatório do comando foremost (audit.txt), observando o offset, recupere qualquer figura utilizando o comando dd ou dcfldd.
  18. Tente obter dados EXIF das figuras existentes no primeiro filesystem. (metacam / exiftool)
  19. Verifique dados extras interessantes que possam existir na figura crianças.jpg (no primeiro filesystem). (hexedit / strings / exiftool)
  20. Verifique os dados referentes às propriedades dos arquivos .doc existentes na segunda partição. (file / libreoffice / exiftool)
  21. 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:

  1. Crie um arquivo que contenha todos os blocos não alocados existentes na primeira partição. (blkls -o)
  2. Crie um arquivo que contenha todos os slack spaces existentes na primeira partição. (blkls -so)
  3. Procure por figuras existentes na superfície do disco e que não pertençam aos filesystems existentes. (blkls -o + {foremost ou magicrescue})
  4. 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:

  1. Recupere as figuras existentes na superfície da imagem usando o comando: foremost -Tqt jpg.
  2. Faça o mesmo usando: foremost -Tt jpg.
  3. Faça, novamente, usando: foremost -Tat jpg.
  4. Verifique a quantidade de arquivos em cada diretório output/jpg, com o comando: ls | cat -n.
  5. 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.
  6. Verifique a quantidade de arquivos no diretório teste, com o comando: ls teste | cat -n.
  7. Com o programa gwenview ou, alternativamente, mirage, veja o conteúdo dos quatro diretórios.
  8. 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.
  9. Veja novamente o conteúdo dos diretórios.
  10. Explique como o fdupes atua (veja o manual on-line).