Este trabalho tem como objetivo conduzir uma análise forense digital detalhada de uma imagem de um pendrive, explorando técnicas e ferramentas específicas para obter informações cruciais sobre os arquivos presentes e apagados. A análise inclui a verificação de integridade por meio de hashes, identificação do sistema de arquivos, contagem e tipos de arquivos acessíveis, e recuperação de dados de arquivos deletados. Além disso, investigamos metadados de arquivos específicos para obter informações sobre datas de criação e modificação, bem como identificar dispositivos usados na criação de imagens. As ferramentas principais utilizadas incluem md5sum, sha1sum, fls, istat, icat, hexedit, strings, entre outros, refletindo um conjunto robusto de metodologias para garantir a precisão e a integridade das descobertas.
Esta abordagem forense fornece uma compreensão aprofundada da estrutura e conteúdo do dispositivo analisado, permitindo a recuperação de dados críticos e a verificação de autenticidade, essencial para investigações legais e de segurança.
Esse trabalho foi colocado no github, estando acessível pelo link https://github.com/gustavosinacio/ceub-pericia-digital.
Como ambiente de coleta de dados foi utilizado um WSL2 com arch linux e uma maquina virtual sift workstation. A coleta de dados foi feita com os comandos:
- md5sum
- sha1sum
- sha224sum
- sha256sum
- sha384sum
- sha512sum
- hexedit
- strings
- fsstat
- fdisk
- fls
- find
- grep
- egrep
- istat
- stat
- ls
- libreoffice
- foremost
A imagem do pendrive analisada foi disponibilizada no link https://drive.google.com/file/d/1bYJ2G6Ej_EGKrx5_ol6GdKHd6F3NRm_w/view?usp=sharing acessado em junho de 2024
As questões levantadas e repondidades nessa análise foram:
-
Confira o hash MD5 da imagem comprimida. Sempre faça isso. Depois, calcule os hashes SHA1, SHA224, SHA256, SHA384 e SHA512 da imagem descomprimida, colocando os resultados dentro de um arquivo.
-
Qual filesystem foi utilizado no pendrive? (file / hexedit / fsstat)
-
Quantos setores possui o pendrive? (file / fsstat / fdisk -lu)
-
Quantos arquivos estão acessíveis para usuários? (fls -ruF + grep -v + wc -l / find + wc -l no ponto de montagem)
-
Quais tipos de arquivos estão acessíveis para usuários? (sorter -d / find -type f + egrep -o + sort -u)
-
Qual é o inode do arquivo "Literary Review.doc" dentro da imagem original? (fls -rF)
-
Qual é o inode do arquivo "Literary Review.doc" no ponto de montagem, dentro do filesystem do seu HD? (ls -li / stat)
-
Explique porque há uma diferença no número dos inodes encontrados nos dois itens anteriores e cite qual deles é o correto para referenciar o arquivo em questão.
-
Qual é a data da criação ou última modificação do arquivo "Literary Review.doc" no filesystem? (fls -rF ou find + grep para encontrar o arquivo) (ls -l / stat / fls + istat para ver a data)
-
Qual é a data do último acesso ao arquivo "Literary Review.doc" no filesystem? (fls ou find para encontrar o arquivo) (ls / stat / fls + istat)
-
Quais são as datas de criação e última modificação do conteúdo arquivo "Literary Review.doc"? (dados no próprio arquivo) (ooffice / libreoffice)*
-
Quem é o criador do conteúdo do arquivo "Fernando_Porcella.xls"? (dados no próprio arquivo) (ooffice / libreoffice / file)
-
Quem foi a última pessoa que modificou conteúdo do arquivo "Fernando_Porcella.xls"? (dados no próprio arquivo) (ooffice / libreoffice / file)
-
Quando se deu a última impressão do conteúdo do arquivo "Fernando_Porcella.xls"? (dados no próprio arquivo) (ooffice / libreoffice)*
-
Qual foi a data da última modificação do conteúdo da foto "paola-carvalho.jpg"? (dados no próprio arquivo) (strings + grep / hexedit)
-
Qual foi o software utilizado para fazer a modificação do conteúdo da foto "paola-carvalho.jpg"? (dados no próprio arquivo) (strings + grep / hexedit)
-
Qual foi o software utilizado para produzir o documento "sec-us-networkbasedfirewallservice.pdf"? (evince / okular / strings / strings + grep / hexedit)
-
Qual foi a data de modificação do conteúdo do documento "1632-1640.pdf"? (dados no próprio arquivo) (evince / okular / strings + grep / hexedit)
-
Quem criou o conteúdo do documento "1632-1640.pdf"? (dados no próprio arquivo) (evince / okular / strings + grep / hexedit)
-
Pode-se afirmar que todas as datas levantadas nas perguntas anteriores são verídicas? Por quê?
-
Dentro dos arquivos "sec-us-networkbasedfirewallservice.pdf" e "1632-1640.pdf" existem figuras JPG. Extraia as mesmas. (foremost -Tat jpg arquivo)
-
O que representa o número que o comando foremost utiliza como nome de cada arquivo encontrado?
-
Qual é o referido animal? (fls -rdF + istat + icat ou fls -rdFl + icat)
-
Qual foi a provável data da última modificação do conteúdo da foto? (strings + grep)
Depois, calcule os hashes SHA1, SHA224, SHA256, SHA384 e SHA512 da imagem descomprimida, colocando os resultados dentro de um arquivo.
Resultado do comando para obter o has MD5
a093f2e85a7674ae873b555f31f6def5 pendrive.bz2
Para obter os próximos hashes, vamos descomprimir a imagem, como foi pedido:
A imagem foi descomprimida para o arquivo pendrive, como mostra a imagem acima Agora vamos obter os hashes SHA1, SHA224, SHA256, SHA384 e SHA512. Para isso, criei um bash que rodará todos os comandos de uma vez
A imagem acima mostra os hashes em ordem:
sha1sum pendrive
sha224sum pendrive
sha256sum pendrive
sha384sum pendrive
sha512sum pendrive
Pelos prints acima, conseguimos ver que o filesystem utilizado é o Fat32
Pelas imagens 6(fsstat) e 7(fdisk) podemos ver que o número de setores da imagem é 2.007.040
Tarefa: Quantos arquivos estão acessíveis para usuários? (fls -ruF + grep -v + wc -l / find + wc -l no ponto de montagem)
Utilizando o comando fls
, podemos ver os arquivos disponíveis:
Na imagem acima podemos ver arquivos listados, sendo 1 o nome do volume de entrada, 10 arquivos regulares (r/r) e 3 entradas de volume (v/v) Temos então, 10 arquivos acessíveis
Na imagem acima, rodei um comando para contar o número de arquivos regulares acessíveis, com o retorno de 10
Tarefa: Quais tipos de arquivos estão acessíveis para usuários? (sorter -d / find -type f + egrep -o + sort -u)
Na imagem acima podemos ver um comando utilizado para obter, sem duplicatas, os tipos de extensões disponíveis dentro do pendrive
Na imagem acima, podemos ver o uso do comando fls -rf
na imagem do pendrive para obter o inode do arquivo
Literary Review.doc
Podemos ver 2 entradas do arquivo, uma com _ e outra sem. Aqui estamos procurando a entrada que não contem o _,
então o inode do arquivo é 18
Tarefa: Qual é o inode do arquivo "Literary Review.doc" no ponto de montagem, dentro do filesystem do seu HD? (ls -li / stat)
No print vemos os comandos ls -li
e stat
sendo rodados sobre o arquivo.
Podemos ver na imagem que o inode do arquivo no ponto de montagem é 8.
Tarefa: Explique porque há uma diferença no número dos inodes encontrados nos dois itens anteriores e cite qual deles é o correto para referenciar o arquivo em questão.
Há uma diferença porque os dois arquivos, mesmo sendo o mesmo arquivo, estão em contextos diferentes. Quando o comando fls -rf é utilzado na imagem do pendrive, estamos vendo o inode do arquivo dentro da própria imagem. Esse inode não tem relação com o nosso sistema, mas apenas com o sistema de arquivos da imagem. Ao montar a imagem e checar o inode novamente, estamos vendo o inode do arquivo dentro do nosso sistema de arquivos
Tarefa 9: Qual é a data da criação ou última modificação do arquivo "Literary Review.doc" no filesystem? (fls -rF ou find + grep para encontrar o arquivo) (ls -l / stat / fls + istat para ver a data)
Tarefa 10: Qual é a data do último acesso ao arquivo "Literary Review.doc" no filesystem? (fls ou find para encontrar o arquivo) (ls / stat / fls + istat)
Para obter a a data de criação e modificação, utilizei o comando istat
da imagem acima.
- Podemos ver que a data de criação foi
Created: 2010-08-13 16:23:59 (-03)
. - A data de alteração foi
Written: 2009-09-23 21:12:00 (-03)
. - A data de acesso foi
Accessed: 2009-11-21 00:00:00 (-02)
.
Notando que as datas tem timezone.
Tarefa: Quais são as datas de criação e última modificação do conteúdo arquivo "Literary Review.doc"? (dados no próprio arquivo) (ooffice / libreoffice)*
Para obter as datas de criação e última modificação do conteúdo do arquivo, vamos abrir o mesmo no LibreOffice e checar suas propriedades
Como podemos ver na imagem, as datas de criação e modificação são, respectivamente, 11/07/2007 e 11/21/2007
Tarefa 12: Quem é o criador do conteúdo do arquivo "Fernando_Porcella.xls"? (dados no próprio arquivo) (ooffice / libreoffice / file)
Tarefa 13: Quem foi a última pessoa que modificou conteúdo do arquivo "Fernando_Porcella.xls"? (dados no próprio arquivo) (ooffice / libreoffice / file)
Tarefa 14: Quando se deu a última impressão do conteúdo do arquivo "Fernando_Porcella.xls"? (dados no próprio arquivo) (ooffice / libreoffice)*
Como na tarefa anterior, vamos abrir o arquivo no libreoffice e checar seus dados.
Pelos comandos anteriores, sabemos que o arquivo se encontra dentro da pasta documentos/diversos
Como podemos ver na imagem 15, o criador do arquivo é Mundial Sudafrica
.
O ultimo a modificar o conteúdo do arquivo é fporcella
.
A última impressão foi feita em 14 de março de 2010 as 22h56.
Tarefa: 15 Qual foi a data da última modificação do conteúdo da foto "paola-carvalho.jpg"? (dados no próprio arquivo) (strings + grep / hexedit)
Tarefa: 16 Qual foi o software utilizado para fazer a modificação do conteúdo da foto "paola-carvalho.jpg"? (dados no próprio arquivo) (strings + grep / hexedit)
Pelas informações descobertas anteriormente, sabemos que o arquivo paola-carvalho.jpg se encontra na pasta fotos
hexedit paola carvalho. Imagem 16
strings paola carvalho. Imagem 17
Na imagem acima, vemos o resuldado do comando hexedit
que mostra que o software utilizado foi o
Adobe Photoshop CS Windows na data 19/12/2008
Utilizando o comando strings, conseguimos confirmar essas informações.
Tarefa: Qual foi o software utilizado para produzir o documento "sec-us-networkbasedfirewallservice.pdf"? (evince / okular / strings / strings + grep / hexedit)
O documento sec-us-networkbasedfirewallservice.pdf se encontra na pasta documentos/rede/
strings sec-us-networkbasedfirewallservice.pdf. Imagem 18
Utilizando o grep do strings do arquivo, podemos ver que ele foi criado no Adobe Illustrator CS3
Tarefa: Qual foi a data de modificação do conteúdo do documento "1632-1640.pdf"? (dados no próprio arquivo) (evince / okular / strings + grep / hexedit)
O arquivo 1632-1640.pdf tambem se encontra na pasta documentos/rede
strings 1632-1640.pdf. Imagem 19
Na imagem 19 podemos ver que a ultima modificação do arquivo 1632-1640.pdf foi em 20/07/2010 as 15h02
Tarefa Quem criou o conteúdo do documento “1632-1640.pdf”? (dados no próprio arquivo) (evince / okular / strings + grep / hexedit)
utilizando o hexedit e o strings, ou lendo as propriedades do arquivo, não foi encontrado o nome do autor, pois o seu produtor e criador aparentam ser os nomes dos programas que o criaram, como podemos ver na imagem 20 e 21 a seguir:
O criador obtido através desses métodos foi PScript5.dll
Tarefa: Pode-se afirmar que todas as datas levantadas nas perguntas anteriores são verídicas? Por quê?
Não podemos afirmar que as datas são verídicas. Metadados de arquivos podem ser alterados por softwares especializados, ou até mesmo por comandos de copiar e colar. Eles também podem mudar dependendo do funcionamento dos sistemas operacionais por onde passaram. Possíveis alterações de dados de arquivos devem sempre ser levados em consideração
Tarefa: Dentro dos arquivos “sec-us-networkbasedfirewallservice.pdf” e “1632-1640.pdf” existem figuras JPG. Extraia as mesmas. (foremost -Tat jpg arquivo)
as imagens extraidas foram:
1632-1640.pdf
sec-us-networkbasedfirewallservice
as imagens estão presentes na pasta ./[nome-do-arquivo]/jpg
Acima temos uma imagem do comando mostrando todos os arquivos deletados na imagem. Dela, podemos ver que fotos de caes foram deletadas
Agora podemos utilizar o istat para pegar informaçoes sobre as imagens deletadas:
informações de fotos deletadas. Imagem 23
Podemos ver que a data provável da última modificação foi em 13/08/2010 as 14h24