Índice

Ferramentas para Monitoração

Monitorando mudanças no sistema de arquivos:

Tripwire (http://www.tripwire.com).
Aide (http://www.cs.tut.fi/~rammer/aide.html).

Centralizando logs:

syslog-ng (http://www.balabit.hu/en/downloads/syslog-ng).

Identificação de rootkits:

chkrootkit (http://www.chkrootkit.org).

Registro de conexões:

TCPwrapper.

Coletando Dados Brutos

Dump da memória:

dd if /dev/mem of <destino>
dd if /dev/kmem of <destino>
dd if /dev/rswap of <destino>

Dump nos discos:

dd if <dipostivo> of <destino>

Obtendo dados da memória da placa de vídeo:

xwd -display :0 -root > screen.xwd
xwud -in screen.xwd

Transferindo informações coletadas através do Netcat:

Servidor: nc -p <porta> -l > <saída>
Cliente: <comando_do_sistema> | nc -w 3 to <porta>

Estado da Rede

Configurações da rede:

ifconfig, iwconfig
route -n
arp
netstat -tupan, lsof -i
unhidetcp <-- portas tcp/udp ocultas

Coletando o tráfego:

tcpdump -l -n -e -x -vv -s 1500
ethereal

Quais sistema estão conectados e quais aplicações estão usando conexões de internet no momento:

 ss 

Coletando Informações sobre o Estado do Sistema

Login de usuários:

Usuários atualmente logados:

w, who

Files:

/etc/utmp, /var/run/utmp, /var/adm/utmp(x).

Informações de usuarios:

 finger

Últimos logins efetuados:

last

Files:

/var/adm/wtmp, /var/log/wtmp, /var/adm/wtmpx

Logins antigos efetuados:

last user -d -a -f /var/log/wtmp.1

Último acesso de cada usuário:

lastlog

Files:

/var/adm/lastlog, /var/log/lastlog.

Última tentativa de login que não obteve êxito:

lastb

File:

/var/log/btmp

Últimos comandos executados:

history , cat ~/.bash_history

Tempo de vida da maquina:

 uptime

Pacotes instalados:

 dpkg -l*

Data e hora:

 date

Utilização de discos:

df -HT

Esquema de particionamento:

fdisk -l

Versao do kernel utilizada:

uname -a

Processos:

Processos atualmente em execução:

ps auxeww, ps ealf, 
Files: /vmunix, /dev/kmem, /proc

Arquivos abertos:

 lsof

Abertos por um determinado usuário:

lsof –u UID

Arquivos chamados por um processo:

lsof –p PID

Últimos comandos executados:

lastcomm
Files: /var/adm/pacct, /var/account/acct, /var/log/pacct.

Processos ocultos:

unhide [proc/sys/brute]

Memoria:

Dados da memoria:

free m

Kernel e módulos:

Configurações gerais:

uname -a

Módulos carregados:

lsmod, cat /proc/modules

Módulos ocultos:

kstat -M (http://www.s0ftpj.org/tools/)

Informações do Sistema de Ficheiros

fsstat <-- tipo de fs

MAC Times:

Horário de último acesso:

ls -altu

Tempo de alteração:

ls -alt

Tempo de mudança nas permissões:

ls -altc

Verificar arquivos que foram alterados nas ultimas 24 horas:

find / -ctime 1 -ls

Verificar arquivos que foram acessados nas ultimas 24 horas:

find / -atime 1 -ls

Propriedades de um arquivo:

stat <arquivo>
file <arquivo>

Mostra arquivos ocultos com espaços em branco:

ls -la | cat -A

Registro de todos os arquivos presentes no sistema:

find / -type f -print0 | xargs -0 md5sum > <saída>

chkrootkit e rkhunter: procuram por rootkits.

Exemplos:

# chkrootkit ­r /mnt
# rkhunter ­­update; rkhunter ­c ­r /mnt

clamav: procura por worms e vírus.

Exemplo:

freshclam; clamscan ­r /mnt

Análise dos Dados Coletados

Buscas nos dumps de disco e memória?

  • strings e grep.
  • Podem encontrar informações em blocos marcados como defeituos.
  • Útil para recuperação de trechos de arquivos apagados, em particular, de logs apagados.

Análise de binários suspeitos

Tabela de símbolos:

nm <binário>, nm -Du <binário>

Bibliotecas dinâmicas associadas:

ldd <binário>

Visualização em hexadecimal:

cat <binário> | xxd

Chamadas de sistema (em um ambiente de testes):

strace <binário>

Pausando a execução de um processo:

kill -STOP <pid>

Ferramentas para Análise

TCT – The Coroner's Toolkit (http://www.porcupine.org/forensics/tct.html):

Conjunto de ferramentas para forense.

TCTUtils (http://www.porcupine.org/forensics/tct.html):

Utilitários que provêem funcionalidades extras ao TCP.

TASK - The @stake Sleuth Kit (http://www.sleuthkit.org/):

Engloba as funcionalidades do TCT e do TCTUtils para anállise do sistema de arquivos, além de recursos adicionais.
Portado para uma série e plataformas.

AFB - Autopsy Forensic Browser (http://www.sleuthkit.org/autopsy):

Provê uma interface gráfica para o TASK.

The Coroner's Toolkit (1)

É composto por quatro partes:

  • grave-robber
    - Automatiza a coleta de evidências com os comandos citados anteriormente.
    - Executa ações adicionais (geração de assinaturas criptográficas, lista com arquivos apagados ainda em uso, históricos de shell, ...).
    - A coleta é feita de acordo com a ordem de volatilidade.
  • mactime
    Utiliza informações produzidas pelo grave-robber para criar um histórico de arquivos modificados e acessados em um dado intervalo de tempo.
  • lazarus
    lazarus: ferramenta para recuperação de arquivos apagados.
    unrm: efetua dump do espaço não alocado no disco.
  • Utilitários
    Utiliários usados pela ferramenta grave-roober.

The Coroner's Toolkit (2)

Funcionamento do lazarus:

– Sistemas de arquivos unix tem baixa fragmentação.
– Tenta identificar o tipo de arquivo ao qual pertence um espaço não
alocado do disdo de 100 bytes.
– Armazena em um arquivo os blocos de dados lidos enquanto o tipo de
arquivo identificado não for alterado.
– Não funciona bem com arquivos grandes.

Exemplos de utilitários:

– pcat: efetua o dump de um processo na memória.
– icat (ou inode-cat): visualiza o conteúdo de um arquivo a partir no
número do seu inode. Pode recuperar arquivos apagados ou parte deles.
– ils: lista informações inodes de arquivos removidos.

TCTUtils

Exemplos de utitários:

– bcat: exibe o conteúdo de um bloco de dados presente no sistema de
arquivos.
– blockcalc: mapeia blocos do sistema de arquivos orginal com a imagem
gerada pela ferramenta unrm.
– fls: lista as entradas de um bloco de dados pertencente a um diretório.
– find_file: tenta encontrar o nome de arquivo associado a um inode.
– find_inode: tenta encontrar o inode que tem alocado um determinado
bloco de dados do sistema de arquivos.
– istat: exibe informações sobre um determinado inode.

The @stake Sleuth Kit

  • Suporte a sistemas de arquivos de diversos SOs (BSD, Linux, Solaris, Windows).
  • Exemplos de utilitários:
– dstat: exibe informações sobre um determinado bloco.
– fsstat: informações detalhas sobre o sistema de arquivos em uma
determinada partição.
– icat: semelhante ao icat do TCT.
– dcat: semelhante ao bcat do TCTUtils.
– Outras ferramenas com funções similares as exibidas anteriormente

apt-get install sleuthkit
dpkg -L sleuthkit

recupera dados apagados, discos corrompidos:
foremost, testdisk

Análise de Logs

GLOGG http://glogg.bonnefon.org/

Logs do sistema

Arquivo de configs dos logs:

/etc/rsyslog.conf
/etc/logrotate.conf 
/var/log/*; /var/log/apache2/*;

Arquivo que registra os logs do Servidor de E-mails:

/etc/mail/maillog

Contém registros de acesso ao sistema e em alguns casos registros do IPTABLES:

/var/log/messages

Logs do Servidor Web Apache:

/var/log/httpd/(access, error ou agent.log)

Logs de impressoras:

/var/log/lpr.log

Logs de serviços em geral:

/etc/log/daemon.log  ou /var/log/daemon.log

Log do sistema:

/var/log/syslog

Log de autenticação:

/var/log/auth.log

Log do Kernel:

/var/log/kern.log

Log crond:

/var/log/cron.log

Log de erro e acesso a Lighttpd:

/var/log/lighttpd

Log do registro de inicialização do sistema:

/var/log/boot.log

Log do registro de banco de dados MySQL:

/var/log/mysqld.log

Arquivos Temporarios:

/tmp; /var/tmp

Arquivos para servidores:

/var/www; /var/ftp;

Arquivos de config do sistema e serviços:

/etc/*;

Referências

  • ftp://ftp.registro.br/pub/gts/gts0205/05-tech-tools-forensics.pdf