Í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