Dados Voláteis

Autor: Paulo Neukamp  //  Categoria: Dicas, Scripts

Uma das primeiras ações do perito ao chegar no local da investigação é a coleta dos dados voláteis, pois os mesmos serão perdidos caso o equipamento seja desligado. Pensando nisso e numa forma de agilizar este processo que é composto de uma série de comandos, segue um script para amenizar este tarefa.

O script abaixo, necessita do pacote zenity para ser executado (# apt-get install zenity) e trabalha de forma interativa, sendo assim, leia com atenção o que lhe é solicitado para que o mesmo funcione corretamente.

#!/bin/bash
# Paulo Neukamp
## Tela de Aviso inicial
zenity --info --title "AVISO" --text " Este script deve ser usado somente quando você estiver realizando uma coleta de provas live e não reiniciou o equipamento (Preferencialmente tenha este script em uma PenDrive)"
## Tela solicitando em qual pasta os dados coletados devem ser salvos destino=`zenity --entry --title "DESTINO DOS DADOS" --text " Informe a pasta na qual os dados coletados devem ser salvos" --entry-text "/home/fdtk/caso1"  --width=200 --height=100`
## Tela solicitando o nome do caso a ser investigado
caso=`zenity --entry --title "NOME DO CASO" --text " Informe o nome do caso que está sendo investigado" --entry-text "Apropriação indevida de informações da empresa ZYX"  --width=200 --height=100`
## Tela solicitando o número do caso investigado
cason=`zenity --entry --title "NUMERO DO CASO" --text " Informe um número para o caso que está sendo investigado" --entry-text "00099-12-2008"  --width=200 --height=100`
## Tela solicitando o nome do perito em trabalho
perito=`zenity --entry --title "NOME DO PERITO" --text " Informe o nome do perito que esta gerando estar informações" --entry-text "Paulo Neukamp"  --width=200 --height=100` data=$(date) echo "  " >> $destino/dados-volateis.txt echo "  " >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "     Relatório de evidências voláteis coletadas em modo Live!" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt echo "  " >> $destino/dados-volateis.txt
echo "Perito: $perito" >> $destino/dados-volateis.txt
echo "Caso: $caso" >> $destino/dados-volateis.txt
echo "Número: $cason" >> $destino/dados-volateis.txt
echo "Data Início: $data" >> $destino/dados-volateis.txt
echo "  " >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "              Iniciando script de coleta dos dados volateis" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                              Data do sistema" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt date >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt echo "===============================================" >> $destino/dados-volateis.txt
echo "                         Identificação do equipamento" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt hostid >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                            Nome do Equipamento" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt hostname >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                            Sistema operacioal" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt uname -a >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                           Configurações do IP" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt ifconfig -a >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                         Tempo de funcionamento" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt w >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                     Quem esta logado no equipamento" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt who >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt echo "===============================================" >> $destino/dados-volateis.txt
echo "                           Últimos Logins" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo " " >> $destino/dados-volateis.txt last -a -i >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt echo "===============================================" >> $destino/dados-volateis.txt
echo "                        Estado das conexões" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt echo >> $destino/dados-volateis.txt netstat -an >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                       Tabela de Roteamento" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt netstat -rn >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt echo "===============================================" >> $destino/dados-volateis.txt
echo "                       Informações do RPC" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt rpcinfo -p 127.0.0.1 >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo "                      Lista dos Processos" >> $destino/dados-volateis.txt
echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt ps -eaf >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt echo "===============================================" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt
echo "Data Final: $data" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt
echo " Final da coleta dos Dados Volateis do Equipamento" >> $destino/dados-volateis.txt
echo >> $destino/dados-volateis.txt ## Listagem com todos os arquivos do equipamento
echo "  " >> $destino/dados-vol-arq.txt echo "  " >> $destino/dados-vol-arq.txt
echo "===============================================" >> $destino/dados-vol-arq.txt
echo "     Relatório de evidências voláteis coletadas em modo Live!" >> $destino/dados-vol-arq.txt
echo "===============================================" >> $destino/dados-vol-arq.txt
echo "  " >> $destino/dados-vol-arq.txt
echo " Perito: $perito"  >> $destino/dados-vol-arq.txt echo " Caso: $caso" >> $destino/dados-vol-arq.txt
echo " Número: $cason" >> $destino/dados-vol-arq.txt echo " Data Início: $data" >> $destino/dados-vol-arq.txt
echo "  " >> $destino/dados-vol-arq.txt
echo "===============================================" >> $destino/dados-vol-arq.txt
echo "                  Lista de todos os arquivos" >> $destino/dados-vol-arq.txt
echo "===============================================" >> $destino/dados-vol-arq.txt
echo >> $destino/dados-vol-arq.txt FIND_PATH="/" FIND_FLAGS="-printf %m;%Ax;%AT;%Tx;%TT;%Cx;%CT;%U;%G;%s;%pn" echo >> $destino/dados-vol-arq.txt echo "Permissão;Data_Ult.acesso;Hora_ult_acesso;Data_Modificação;Hora_Mudança;Data_Mudança;Hora_Mudança; Proprietário;Grupo;Tamanho;Nome_do_Arquivo";find $FIND_PATH $FIND_FLAGS) >> $destino/dados-vol-arq.txt echo >> $destino/dados-vol-arq.txt
echo " Data Final: $data" >> $destino/dados-vol-arq.txt
echo >> $destino/dados-vol-arq.txt
echo " Final da Lista dos arquivos do equipamento" >> $destino/dados-vol-arq.txt
echo >> $destino/dados-vol-arq.txt ## Listagem do sha256sum todos os arquivos do equipamento
echo "  " >> $destino/dados-vol-arq-hash.txt echo "  " >> $destino/dados-vol-arq-hash.txt
echo "===============================================" >> $destino/dados-vol-arq-hash.txt
echo "     Relatório de evidências voláteis coletadas em modo Live!" >> $destino/dados-vol-arq-hash.txt echo "===============================================" >> $destino/dados-vol-arq-hash.txt
echo "  " >> $destino/dados-vol-arq-hash.txt echo " Perito: $perito" >> $destino/dados-vol-arq-hash.txt
echo " Caso: $caso" >> $destino/dados-vol-arq-hash.txt
echo " Número: $cason" >> $destino/dados-vol-arq-hash.txt echo " Data Início: $data" >> $destino/dados-vol-arq-hash.txt echo "  " >> $destino/dados-vol-arq-hash.txt
echo "===============================================" >> $destino/dados-vol-arq-hash.txt
echo "                  md5sum de todos os Arquivos" >> $destino/dados-vol-arq-hash.txt
echo "===============================================" >> $destino/dados-vol-arq-hash.txt
echo >> $destino/dados-vol-arq-hash.txt hash="md5sum -b" find $FIND_PATH -xdev -type f -exec $hash {} ; >> $destino/dados-vol-arq-hash.txt echo >> $destino/dados-vol-arq-hash.txt
echo "===============================================" >> $destino/dados-vol-arq-hash.txt
echo >> $destino/dados-vol-arq-hash.txt
echo " Data Final: $data" >> $destino/dados-vol-arq-hash.txt
echo >> $destino/dados-vol-arq-hash.txt
echo " Final da Lista do sha256sum de todos os Arquivos" >> $destino/dados-vol-arq-hash.txt
echo >> $destino/dados-vol-arq-hash.txt
echo ## Mostrando os Arquivos criados echo ls $destino | zenity --list --title "Lista de Arquivos" --text " Lista dos arquivos criados durante a execução deste script" --column " Arquivo "  --width=700 --height=400

Limpando Mídias

Autor: Paulo Neukamp  //  Categoria: Scripts

Antes mesmo de pensar em adquirir uma cópia dos das evidências, o perito precisa sanitizar as mídias que serão uilizadas para armazená-las, uma vez que fragmentos antigos de dados que possam estar nestas mídias, poderiam atrapalhar na análise dos mesmos. Para sanitizar as mídias a serem utilizadas segue mais um script.

O script abaixo, necessita do pacote zenity para ser executado (# apt-get install zenity), e trabalha de forma interativa, sendo assim, leia com atenção o que lhe é solicitado para que o mesmo funcione corretamente.

CUIDADO AO UTILIZAR ESTE SCRIPT!!!

#!/bin/bash
# Paulo Neukamp
# A função deste script é limpar a midia para que ela possa ser usada
# como uma midia em perícias Forense ( deve ser executado pelo menos 7X)
# caso contrario, quando execurar um file carving estes dados serão recuperados
# Tela de Aviso
zenity --info --title "Aviso de Cuidado" --text " Este é um script que pode danificar o sistema, portanto, tome muito cuidado com os parametros que serão informados nas próximas etapas"
# Mostrando os dispositivos conectados
sudo fdisk -l | zenity --list --title "Lista de Dispositivos" --text "n Abaixo estão listados todos os Dispositivos atualmente conectados a este equipamento... n Verifique com muito cuidado qual sera o Dispositivo que deseja zerar, pois voce deverá informá-lo na próxima janelan" --column "Dispositivos"  --width=700 --height=400
# tela solicitando qual o disco (device) que será ZERADO
device=`zenity --entry --title "Levantamento da unidade" --text " Informe somente o nome da unidade. Ex.:sdb, sdb1...." --entry-text "sdb"  --width=200 --height=100`
# Tela de Status do processo
sudo dcfldd if=/dev/zero of=/dev/$device | zenity --progress --title "Formatando mídia" --text="Aguarde..." --pulsate --auto-kill
# Tela de Aviso
zenity --info --title "Aviso de Conclusão" --text " A mídia foi zerada"


Gerando um arquivo de imagem da mídia

Autor: Paulo Neukamp  //  Categoria: Scripts

O script abaixo, necessita do pacote zenity para ser executado (# apt-get install zenity), e trabalha de forma interativa, sendo assim, leia com atenção o que lhe é solicitado para que o mesmo funcione corretamente.

#!/bin/bash</pre>
<pre><code>## Paulo Neukamp
## Em 16 nov 2008
## A função deste script é criar um arquivo de imagem da mídia
## Tela de Aviso
zenity --info --title "Aviso de Cuidado" --text " Este é um script que pode danificar o sistema, portanto, tome muito cuidado com os parametros que serão informados nas próximas etapas"
## Mostrando os dispositivos conectados
sudo fdisk -l | zenity --list --title "Lista de Dispositivos" --text "n Tela de CheckList:n Abaixo estão listados todos os Dispositivos atualmente conectados a este equipamento... n Verifique com muito cuidado qual sera o Dispositivo que deseja zerar, pois voce deverá informá-lo na próxima janelan" --column "Dispositivos"  --width=700 --height=400
## Tela solicitando qual o disco (device) ou partição que será copiado (origem)
origem=`zenity --entry --title "ORIGEM DOS DADOS" --text " Informe qual será a origem dos dados. Ex.:hda, sdb1...." --entry-text "sda"  --width=200 --height=100`
## Tela solicitando qual em qual pasta a imagem .dd deve ser salva
destino=`zenity --entry --title "DESTINO DOS DADOS" --text " Informe a pasta na qual a imagem deve ser salva" --entry-text "/home/fdtk/caso1"  --width=200 --height=100`
arq=`zenity --entry --title "NOME DO ARQUIVO" --text " Informe o nome a ser dado ao arquivo da imagem dos dados" --entry-text "img-caso1-hd1.dd"  --width=200 --height=100`
## Escolha qual hash utilizar ( 256-bits ou 512-bits)
hashopt=`zenity --list --radiolist --column="Opção" --column "Tipos de hash" TRUE 256-bits FALSE 512-bits `
   if [ $hashopt != 512-bits ];then
       sudo date &gt;&gt; $destino/hash-origem.txt; sudo sha256sum -b /dev/$origem &gt;&gt; $destino/hash-origem.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
   else
       sudo date &gt;&gt; $destino/hash-origem.txt; sudo sha512sum -b /dev/$origem &gt;&gt; $destino/hash-origem.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
fi 
## CÓPIA DOS DADOS
## Tela de Status do processo da copia
sudo dcfldd if=/dev/$origem of=$destino/$arq | zenity --progress --title "Copiando..." --text="Copiando dados..." --pulsate --auto-close
## Gerando hash da cópia
if [ $hashopt != 512-bits ];then
       sudo date &gt;&gt; $destino/hash-copia.txt; sudo sha256sum -b $destino/$arq &gt;&gt; $destino/hash-copia.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
   else
       sudo date &gt;&gt; $destino/hash-copia.txt; sudo sha512sum -b $destino/$arq &gt;&gt; $destino/hash-copia.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
fi 
## Gera arquivo com dados dos discos
sudo fdisk -l /dev/$origem &gt;&gt; $destino/dados-discos.txt
## Confere Hashs
cat $destino/hash-copia.txt &gt;&gt; $destino/2hashs.txt | cat $destino/hash-origem.txt &gt;&gt; $destino/2hashs.txt
zenity --title="Analise dos Hash's gerados" --text-info --filename="$destino/2hashs.txt" --width=800 --height=200
# Tela de Aviso final
zenity --info --title "Final de operação" --text " A copia e os hash's foram gerados, você já pode remover as mídias"

Montando Imagens

Autor: Paulo Neukamp  //  Categoria: Scripts

Montando Imagens para Exame e Análise das evidências.

Uma imagem bit a bit de um disco é chamada de imagem raw. As imagens raw podem ser geradas de um disco inteiro com + de 1 partição chamadas de imagens raw físicas, pois geram uma imagem fiel do disco, não importando qual é o seu conteúdo. O outro tipo de imagem raw é chamado de imagem raw lógica, esta é gerada a partir de uma partição do disco físico (HD). Neste momento surge um problema pois o loopback do linux não monta imagens raw físicas (HD’s) somente imagens raw lógicas, pois o loopback possui uma limitação simples, ele não interpreta a tabela de partições que está nos setores iniciais de uma imagem raw física. Para ser possível então contornar esta limitação do loopback é necessário executar alguns comando a fim de descobrir qual é a estrutura interna da imagem que pretendemos montar.
Um comando que pode auxiliar nesta tarefa é o sfdisk, vejamos:

# sfdisk -luS img-caso1-hd1.dd

Disco img-caso1-hd1.dd: não foi possível obter a geometria
Disco img-caso1-hd1.dd: 1216 cilindros, 255 cabeças, 63 setores/trilha
Aviso: a tabela de partições parece ter sido feita para
Cil/Cab/Set = */240/63 (em vez de 1216/255/63).
Para esta listagem será assumida aquela geometria.
Unidades = setores de 512 bytes, contando a partir de 0
Disp Boot Início Fim Cils Blocos Id Sistema
img-caso1-hd1.dd1   *        63  19519919   19519857   7  HPFS ou NTFS
img-caso1-hd1.dd2             0         –          0   0  Vazia
img-caso1-hd1.dd3             0         –          0   0  Vazia
img-caso1-hd1.dd4             0         –          0   0  Vazia

A saída do comando sfdisk mostra que a imagem raw física tem apenas uma partição iniciando no setor 63, é do tipo HPFS ou NTFS e que cada setor tem 512 bytes. Como mencionado anteriormente o loopback não Ler mais…

Imagem Disco para Disco

Autor: Paulo Neukamp  //  Categoria: Scripts

O script abaixo, necessita do pacote zenity para ser executado (# apt-get install zenity), e trabalha de forma interativa, sendo assim, leia com atenção o que lhe é solicitado para que o mesmo funcione corretamente.

#!/bin/bash
## Paulo Neukamp 
## Em 16 nov 2008
## A função deste script é criar um arquivo de imagem da mídia
## Tela de Aviso
zenity --info --title "Aviso de Cuidado" --text " Este é um script que pode danificar o sistema, portanto, tome muito cuidado com os parametros que serão informados nas próximas etapas"
## Mostrando os dispositivos conectados
sudo fdisk -l | zenity --list --title "Lista de Dispositivos" --text "n Tela de CheckList:n Abaixo estão listados todos os Dispositivos atualmente conectados a este equipamento... n Verifique com muito cuidado qual sera o Dispositivo que deseja zerar, pois voce deverá informá-lo na próxima janelan" --column "Dispositivos"  --width=700 --height=400
## Tela solicitando qual o disco (device) ou partição que será copiado (origem)
origem=`zenity --entry --title "ORIGEM DOS DADOS" --text " Informe qual será a origem dos dados. Ex.:hda, sdb1...." --entry-text "sda"  --width=200 --height=100`
## Tela solicitando qual em qual pasta a imagem .dd deve ser salva
destino=`zenity --entry --title "DESTINO DOS DADOS" --text " Informe a pasta na qual a imagem deve ser salva" --entry-text "/home/fdtk/caso1"  --width=200 --height=100`
arq=`zenity --entry --title "NOME DO ARQUIVO" --text " Informe o nome a ser dado ao arquivo da imagem dos dados" --entry-text "img-caso1-hd1.dd"  --width=200 --height=100`
## Escolha qual hash utilizar ( 256-bits ou 512-bits)
hashopt=`zenity --list --radiolist --column="Opção" --column "Tipos de hash" TRUE 256-bits FALSE 512-bits `
   if [ $hashopt != 512-bits ];then
       sudo date &gt;&gt; $destino/hash-origem.txt; sudo sha256sum -b /dev/$origem &gt;&gt; $destino/hash-origem.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
   else
       sudo date &gt;&gt; $destino/hash-origem.txt; sudo sha512sum -b /dev/$origem &gt;&gt; $destino/hash-origem.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
fi 
## CÓPIA DOS DADOS
## Tela de Status do processo da copia
sudo dcfldd if=/dev/$origem of=$destino/$arq | zenity --progress --title "Copiando..." --text="Copiando dados..." --pulsate --auto-close
## Gerando hash da cópia
if [ $hashopt != 512-bits ];then
       sudo date &gt;&gt; $destino/hash-copia.txt; sudo sha256sum -b $destino/$arq &gt;&gt; $destino/hash-copia.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
   else
       sudo date &gt;&gt; $destino/hash-copia.txt; sudo sha512sum -b $destino/$arq &gt;&gt; $destino/hash-copia.txt | zenity --progress --title "HASH" --text="Gerando hash..." --pulsate --auto-close
fi 
## Gera arquivo com dados dos discos
sudo fdisk -l /dev/$origem &gt; $destino/dados-discos.txt
## Confere Hashs
cat $destino/hash-copia.txt &gt;&gt; $destino/2hashs.txt | cat $destino/hash-origem.txt &gt;&gt; $destino/2hashs.txt
zenity --title="Analise dos Hash's gerados" --text-info --filename="$destino/2hashs.txt" --width=800 --height=200
# Tela de Aviso final
zenity --info --title "Final de operação" --text " A copia e os hash's foram gerados, você já pode remover as mídias"