Forense caso 00a: mudanças entre as edições

De Eriberto Wiki
Ir para navegação Ir para pesquisar
Sem resumo de edição
Sem resumo de edição
 
(34 revisões intermediárias pelo mesmo usuário não estão sendo mostradas)
Linha 1: Linha 1:
{{cabeçalho forense|00a - Análise avançada conduzida|Brasília, DF, 29 de março de 2011|22 de setembro de 2011}}
{{cabeçalho forense|00a - Análise avançada conduzida|Brasília, DF, 29 de março de 2011|24 de abril de 2015}}


[[image:nao-a-pedofilia.jpg|left]]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.
[[image:nao-a-pedofilia.jpg|left]]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.
Linha 11: Linha 11:


O hash MD5 da imagem comprimida é 59888d317634cd4b134e66333bf8d37a.
O hash MD5 da imagem comprimida é 59888d317634cd4b134e66333bf8d37a.
 
<br><br>
Responda as perguntas a seguir, utilizando as orientações impostas.
 
<big>'''Perguntas básicas:'''</big>
<big>'''Perguntas básicas:'''</big>


# Inicialmente, confira o hash do arquivo baixado.
# Inicialmente, confira o hash do arquivo baixado.
# Qual é o esquema de particionamento do pendrive? (fdisk -lcu / mmls / file)
# Quais são os três primeiros bytes da imagem?
# 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 -lcu + fls -ro + grep)
# 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)
# Analisando os dados no inode levantado no item anterior, descubra o tamanho, o mactime e o primeiro setor do arquivo na imagem. (istat -o)
# Sem realizar montagens, faça um levantamento prévio do conteúdo da primeira partição, calculando o hash MD5 de cada arquivo. (sorter com -md5, -o e -d)
# Monte cada partição do pendrive, em modo read-only, e verifique os conteúdos. (mount com ro e offset + find / tree -C)
# Monte cada partição do pendrive, em modo read-only, e verifique os conteúdos. (mount com loop, ro e offset + find)
# 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. (fls -ro -m e mactime -z BRT)
# 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)
# 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 ou hexedit} + grep + {dd ou dcfldd, ambos com bs=1 + count + skip})
# 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)
# 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 9 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)
# 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.
# Corrija, se for o caso, o tamanho da figura recuperada no item anterior, utilizando o GIMP.
# Procure por arquivos existentes na superfície do disco e que não perteçam ao filesystem atual (comando foremost ou magicrescue)
# Com base no relatório do comando foremost (''audit.txt''), observando o offset, recupere qualquer figura utilizando o comando ''dd'' ou ''dcfldd''.
# Como base no relatório do comando foremost (audit.txt), recupere uma das figuras utilizando o comando dd ou dcfldd.
# Tente obter dados EXIF das figuras existentes no primeiro filesystem. (metacam / exiftool)
# Tente obter dados EXIF das figuras existentes. (comando metacam)
# Verifique dados extras interessantes que possam existir na figura ''crianças.jpg'' (no primeiro filesystem). (hexedit / strings / exiftool)
# Verifique dados extras interessantes que possam existir no início de cada figura. (comando hexdump ou hexedit ou mcview)
# Verifique os dados referentes às propriedades dos arquivos .doc existentes na segunda partição. (file / libreoffice / exiftool)
# Verifique os dados referentes às propriedades dos arquivos .doc e .pdf existentes na segunda partição. (comandos file e evince ou okular)
# Relacione todas as URLs citadas na superfície do disco. (strings e egrep -o com expressões regulares e outros - dica: egrep -o 'https?://[^ ]+')
# Tente entender o esquema de MBR do HD do pedófilo. (comando file)
<br><br>
# Relacione todas as URLs citadas na superfície do disco. (comandos strings e grep com expressões regulares e outros)
<big>'''Questões complementares:'''</big>


<big>'''Questões complementares:'''</big>
# 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.
<br><br>
<big>'''Estudo específico: comandos foremost e magicrescue'''</big>
 
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.
<br>
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.
<br>
O comando magicrescue denomina os tipos de arquivos como sendo ''recipes''. Os recipes possíveis estão diponíveis em /usr/share/magicrescue/recipes.
<br><br>
'''Assim sendo, resolva as questões:'''


# Crie um arquivo que contenha todos os blocos não alocados e os slack spaces existentes na partição FAT. (comando blkls -o)
# 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).

Edição atual tal como às 02h58min de 14 de novembro de 2015

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).