terça-feira, 25 de agosto de 2015

Recuperação de Dados e Data Carving em HD's, Pendrives e Partições de Disco formatadas ou corrompidas utilizando ferramentas forense.

Recuperação de dados de HD's, mídias removíveis e partições corrompidas e formatadas com ferramentas Forense  no Linux. 

Neste artigo estarei realizando exemplos práticos de recuperação de dados que podem ser aplicados em HD's, Pendrives, Cartões SD e até partições corrompidas e formatadas, e nela estarei utilizando duas aplicações forense. Nos exemplos estarei utilizando a distribuição Kali Linux, mas eles poderão ser reproduzidos em qualquer ambiente.

Aplicações Forense 

Foremost

O Foremost é um programa para recuperação de dados que trabalha a partir dos headers, rodapés e locações nas tabelas de armazenamento internas das midias. Ele é utilizado para extração e mineração de dados, mais processo mais conhecido como Data Carving. Além de vasculhar as tabelas FAT, NTFS, ele pode vascular filesystens como ext3, ext4 e etc, além de conseguir fazer a mineração diretamente em imagens geradas pelo dd.


Scapel

O Scapel assim como o foremost é utilizado para mineração de dados, e pode ser utilizado tanto para análise forense quanto pra recuperação de arquivos. Ele lê bancos de dados de cabeçalhos e é capaz de fazer a extração


Utilizando o Foremost

Vamos utilizar o foremost para fazer a recuperação de dados em um pendrive que foi formatado, fazendo com que ele perdesse grande quantidade de informações armazenadas.

Primeiro vamos identificar o dispositivo de mídia inserido.
 #fdisk -l

No caso a mídia removível que eu quero realizar a mineração de dados é a /dev/sdc1. Então vamos criar um diretório para subir o backup dos arquivos resgatados. Lembrando é bom analisar bem a partição ou mídia que você está tentando resgatar. 

A sintaxe é simples:

foremost -t TIPOS -v -i /CAMINHODODISPOSITIVO/ -o /DIRETÓRIO/OUTPUT

Vamos testar:

Vamos criar o diretório Output:
 # mkdir /root/data-backup

Agora vamos relizar a varredura: 
 # foremost  -t all -v -i /dev/sdc1 -o /root/data-backup




O foremost irá realizar a varredura em todos os headers das tabelas do dispositivo e criar pastas no diretório de output armazenando elas por tipo.

Vamos entender melhor o que a gente fez?

# foremost  -t all -v -i /dev/sdc1 -o /root/data-backup

-t é o parâmetro que usamos para identificar as extensões dos arquivos que queremos recuperar. No exemplo eu usei o parâmetro all para recuperar todas as extensões existentes, mas da pra gente ser mais específico utilizando foremost -t jpg,pdf e etc.

-v é o parâmetro que utilizamos para ativar o modo verbose, para o programa jogar as informações na tela enquanto roda.

-i é o dispositivo de orígem, ou seja, o dispositivo ou partição que iremos recuperar

-o especifica o diretório output da pesquisa, onde o foremost irá jogar todo o resultado. 


Utilizando o Scalpel

O Scalpel, assim como o Foremost pode fazer uma checagem completa na partição ou dispositivo e recuperar bastante coisa. Diferente do foremost, você deverá identificar as extenções dos arquivos a serem recuperados dentro do arquivo de configuração do Scalpel, o /etc/scalpel/scalpel.conf. Normalmente todas as extensões vem comentadas, então será necessário acessar o arquivo e descomentar sempre que for realizar o data minning.

 # vi /etc/scalpel/scalpel.conf 

Para o exemplo eu vou descomentar  as linhas referentes as imagens GIF, JPG, PNG e BPM para o testes.




Feito isso, vamos verificar em qual partição ou dispositivo iremos realizar a mineração de dados.

 # fdisk -l



A unidade que eu vou efetuar a análise é a /dev/sdb, um pendrive que eu tenho aqui formatado em NTFS.

Vamos efetuar os testes, Hands On!!

 # mkdir recuperados

 # scalpel /dev/sdb -o recuperados 

O Scalpel irá fazer toda a verredura das tabelas procurando endereços em hexadecimal parecido com o das extensões que você atribuiu e irá jogar tudo no diretório "recuperados" que criamos anteriormente.


Após o termino, ele vai salvar todo o output na pasta que você atribuiu como o output separados por extensão.