Escolar Documentos
Profissional Documentos
Cultura Documentos
Anlise forense
Anlise forense
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
Todos os direitos reservados, no Brasil, por
Escola Superior de Redes RNP
http://www.esr.rnp.br
Anlise forense
Apresentao
A Escola Superior de Redes da Rede Nacional de Ensino e Pesquisa (RNP) oferece
cursos em tecnologia da informao e da comunicao para quem busca formao
essencialmente prtica. As atividades so situaes-problema semelhantes s que
so encontradas na prtica do profissional de TI. Estas atividades exigem anlise,
sntese e construo de hipteses para a superao do problema. A aprendizagem
torna-se mais efetiva se contextualizada realidade profissional.
Os cursos propostos possuem 40 (quarenta) horas de durao divididas em 10
(dez) sesses de aprendizagem. Os participantes trabalham em grupo ou em
duplas e cada um pode dispor de sua prpria estao de trabalho. O material de
ensino composto de apostilas contendo slides comentados e roteiro de
atividades prticas em laboratrio.
Conhecimentos prvios
\\Principais
Objetivos
\\Obter
\\Apresentar
\\Compreender
\\Aprender
\\Recuperar
\\Elaborar
\\Conhecer
\\Identificar
Sumrio
Sesso de aprendizagem 1
Princpios de anlise forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
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
1
Sesso de aprendizagem 1
Princpios de anlise forense
Sumrio da sesso
Princpios de anlise forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Motivaes para investigar um incidente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Modo de ao dos atacantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Deteco de ataques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Tipos de sistemas comprometidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
Procedimentos para anlise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Cadeia de custdia de evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Metodologia para anlise forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Atividade 1 Preparando um checklist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Atividade 2 Funcionamento de um rootkit . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Atividade 3 Investigando um computador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
Princpios
p de anlise forense
Resposta
R
t a incidentes
i id t de
d segurana
Preparao
Identificao
Conteno
Erradicao
R
Recuperao
Acompanhamento
\\Preparao
\\Identificao
So utilizados mecanismos e
tcnicas para identificar a ocorrncia de um
incidente, e definir a extenso do ataque.
\\Conteno
\\Erradicao
\\Recuperao
\\Acompanhamento
Princpios
p de anlise forense
A empresa d
deve ddefinir
fi i o que um iincidente
id t dde
segurana de acordo com os ativos que deseja
proteger.
t
Incidentes de segurana so eventos que interrompem
o procedimento normal de operao de uma empresa
e causam algum tipo de crise.
Podem ser ataques infra-estrutura de informao de
uma empresa.
p
A preveno dos incidentes crucial.
Princpios
p de anlise forense
Anlise forense o segundo passo no processo de
resposta a incidentes.
Existe uma sobreposio com o primeiro e com o
terceiro passo: o analista forense deve participar do
processo de preparao pr-incidente,
e tambm
do
processo de conteno ps-incidente.
Recuperar e analisar dados da maneira mais imparcial
e livre de distores possvel, para reconstruir os
dados ou o que aconteceu a um sistema no passado.
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.
Princpios
p de anlise forense
Minimizar
Mi
i i perda
d de
d dados
d d
Evitar contaminao dos dados
Registrar e documentar todas as aes
Analisar, impreterivelmente, dados em cpias
Reportar as informaes coletadas
Pi i l
t manter-se
t
i
i l
Principalmente:
imparcial
um erro capital teorizar antes de obter todas as evidncias.
Sherlock Holmes
Motivaes
ppara investigar
g um incidente
Razes
R
para no
iinvestigar
ti um iincidente:
id t
Custo
Demora
Falta de objetividade
Disponibilizao de recursos importantes
P
d
d tempo
t
Processo
que demanda
e recursos, nem
sempre til para a empresa.
mais fcil reinstalar um computador do que realizar
uma investigao.
\\Determinar
Motivaes
ppara investigar
g um incidente
Ento,
E
t por que iinvestigar?
ti ?
Identificar sinais de ataque
Determinar a extenso do comprometimento
Reconstruir a ordem dos eventos
Entender o modus operandi do atacante
R
d
Responder:
O qu?
Quando?
Onde?
Como?
a extenso do comprometimento
Como foi dito, durante o processo de anlise
forense comum aparecerem informaes sobre
o comprometimento de outros sistemas dentro
ou fora da empresa. Descobrir as mquinas que
foram comprometidas importante para manter
a integridade da informao a ser protegida.
\\Reconstruir
10
Modo de ao
dos atacantes
IInformao
f
a sua maior
i arma.
Conhecendo o modo de operao dos invasores, voc
pode melhorar suas defesas; facilita o trabalho de
investigao, porque voc j sabe o que procurar.
Tcnicas de engenharia social so difceis de
combater: somente um treinamento adequado
pode
q
p
diminuir esse risco.
A maior parte dos ataques segue um mesmo padro.
Modo de ao
dos atacantes
Identificao
Id
tifi d
do alvo
l
Coleta de informaes
Identificao de vulnerabilidades
Comprometimento do sistema
Controle do sistema
I t l d
t
Instalao
de fferramentas
Remoo de rastros
Manuteno do sistema comprometido
11
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
Sistema
Si
t
d
desligado:
li d
Sem atividade no disco rgido
Evidncias volteis perdidas
Sem atividade do invasor
Sem necessidade de conteno do ataque
P i l
t algumas
l
id i fforam modificadas
difi d
Possivelmente
evidncias
12
Tipos
p de sistemas comprometidos
p
Sistema
Si
t
liligado:
d
Atividade no disco rgido
Atividade de rede
Evidncias volteis
Possibilidade de atividade do invasor
N
id d dde conter
t o ataque
t
Necessidade
Modificao das evidncias
Tipos
p de sistemas comprometidos
p
Sistema
Si
t
liligado:
d
Verificar se o sistema est comprometido
No comprometer as evidncias
Conter o ataque
Coletar evidncias
P
ff ou shutdown?
h td
?
Power-off
Power-off: no modifica evidncias, mas pode corromper os
dados
Shutdown: garante integridade dos dados, mas pode
modificar evidncias
A ao do analista forense tem que ser muito cuidadosa, para no despertar a ateno do invasor, no
comprometer evidncias, mas tambm para impedir
que mais dano seja causado. Por outro lado, em um
sistema ligado, o analista forense tem a possibilidade
de coletar informaes que no estariam disponveis
em um sistema desligado.
Por exemplo, possvel coletar informaes de
rede, permitindo identificar com mais segurana se
o sistema est comprometido ou no, e tambm
identificar outras mquinas na rede da empresa que
tambm possam estar comprometidas.
Tudo o que for feito poder alterar as evidncias,
inclusive no fazer nada. Portanto, as aes do analista forense tm que ser bem pensadas, e muito
importante que todas as aes sejam documentadas.
A primeira coisa a fazer tentar identificar, da forma
menos intrusiva possvel, se o sistema suspeito est
ou no comprometido. Algumas tcnicas, como
realizar um scan por portas abertas no sistema, ou
procurar por arquivos suspeitos no espao de disco,
devem ser evitadas a todo custo. Estas aes podem
disparar alarmes que alertariam o invasor de que ele
foi descoberto, alm de comprometer evidncias.
13
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.
Evidncias volteis so aquelas que se perdem mais facilmente, caso o sistema
seja desligado ou aes executadas pelo hacker ou pelo analista sobrescrevam
informaes. Exemplos: dados na memria RAM, processos em execuo, conexes estabelecidas, entre outros.
Uma maneira de ajudar o analista forense a procurar evidncias utilizando uma
dirt list, ou lista maliciosa, que deve conter palavras, termos, nomes de ferramentas
e pessoas que tenham ligao com ataques, grupos de hackers, atividades criminosas, entre outros. Com isso, o analista poder realizar pesquisas nas evidncias
procurando pela presena dessas palavras-chave. Esta lista deve ser atualizada
constantemente para incluir palavras e nomes encontrados durante a investigao.
14
Metodologia
g ppara anlise forense
Procedimentos do analista forense so invariveis
Utilidade de metodologia bem definida
Os passos de uma investigao so cclicos:
j
Cada ppasso alimenta o conjunto
de evidncias e
fornece novas bases para o investigador procurar
fase.
ppor mais evidncias na prxima
p
Os passos devem ser repetidos at que:
Chegue se a uma concluso
Chegue-se
No existam mais informaes teis a encontrar
Os passos que devem ser seguidos em uma investigao so cclicos: cada passo alimenta o conjunto
de evidncias e fornece novas bases para o investigador procurar por mais evidncias na prxima
fase. Os passos devem ser repetidos at que se
consiga chegar a uma concluso, ou at decidir que no h mais informaes
teis a serem encontradas.
O primeiro passo da investigao das evidncias tentar estabelecer uma linha
de tempo para o ataque e para as evidncias encontradas durante a fase inicial de
anlise. Com a linha de tempo, o investigador pode ter uma base para procurar
por novas evidncias, arquivos e dados que possam ter relao com o caso.
15
O passo seguinte analisar esses arquivos e dados para identificar sua relao
com o caso, funcionalidades e informaes importantes que possam conter.
A seguir, o investigador deve realizar uma anlise no nvel de dados do sistema
operacional, procurando por strings e bytes que possam ser importantes para a
investigao. Deve-se voltar linha de tempo do incidente, pra inserir os novos
dados coletados e associar essas informaes com o caso. Com essas novas
informaes, o investigador ter uma nova base para procurar por mais evidncias, e assim o processo se repete at que o caso seja solucionado ou se decida
que o esforo e o custo da investigao j no valem mais a pena.
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
O sucesso da investigao depende de uma preparao
prvia
Informao a melhor arma contra os invasores
Tenha em mos:
Todas as informaes sobre o sistema comprometido
Todas as ferramentas necessrias
No comprometa as evidncias
A cadeia de custdia de evidncias garante uma
representao fiel dos dados originais
Adote uma metodologia e seja imparcial e preciso em suas
aes
Concluses
A seguir prepararemos o ambiente de anlise forense
e conheceremos as ferramentas necessrias para a
investigao.
16
1
Sesso de aprendizagem 1
Princpios de anlise forense
Roteiro de atividades
Tpicos e conceitos
\\Preparao
rootkit;
\\Investigao
do comprometimento de computadores.
de investigao e pesquisa.
minutos
18
2
Sesso de aprendizagem 2
Ambiente e ferramentas de anlise forense
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
Coletando informaes dos processos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Preservao do disco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Outras formas de preservao do disco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Atividade 1 Kit do investigador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Atividade 2 Coleta de informaes volteis . . . . . . . . . . . . . . . . . . . . . . . . . . 42
20
Pr-requisitos
Pr-requisitos
A primeira ao do investigador coletar evidncias
no local onde ocorreu a invaso.
Aps isso, entra em cena a anlise de mdias.
O investigador precisar analisar dezenas de
gigabytes de dados, e por isso deve contar com um
ambiente propcio, com ferramentas que facilitem seu
trabalho.
Pr-requisitos
O objetivo da anlise de mdias coletar evidncias que
comprovem ou refutem a invaso.
As evidncias originais devem ser preservadas, por isso a
anlise deve ser feita em cpias das mdias.
O analista deve evitar comprometer as evidncias, e
garantir que todos os resultados possam ser
reproduzidos, o que envolve a criao e manipulao de
dezenas de gigabytes de dados.
Alm disso, o sistema invadido no confivel, portanto o
investigador precisa dispor de um ambiente confivel e
controlado para realizar a investigao.
Em um sistema invadido, o hacker pode ter modificado arquivos, kernel, bibliotecas compartilhadas,
mdulos carregados. Portanto, nenhum arquivo existente na mquina confivel.
Se existir um rootkit e o investigador utilizar os comandos do sistema para listar
processos ou arquivos, no ver as informaes escondidas pelo rootkit. O investigador deve sempre utilizar suas prprias ferramentas e bibliotecas.
Hardware
Hardware
Quanto mais memria RAM e mais processamento
houver, melhor.
O espao livre em disco deve ser generoso, algumas
vezes podendo analisar centenas de gigabytes.
O sistema deve ter baias para conectar os discos de
evidncias.
Um notebook imprescindvel quando no for
possvel remover o disco de evidncia.
Alm disso, o investigador deve dispor de
equipamentos de rede diversos.
Um notebook imprescindvel quando no for possvel remover o disco de evidncia. Este notebook
deve conter as mesmas ferramentas da estao
forense. Alm disso, o investigador deve dispor de
equipamentos de rede diversos: hubs, cabos crossover e normais, placas de rede normais e wireless,
disco rgido externo (USB e paralelo), bem como um equipamento para realizar
cpias de disco automaticamente.
21
Sistema operacional
Entre os pontos que devem ser levados em
considerao na hora de escolher o sistema
operacional, podemos citar os seguintes:
Familiaridade do investigador com o sistema
operacional
Disponibilidade de ferramentas
Capacidade do sistema operacional de reconhecer
diversos tipos de mdias ou sistemas de arquivos
diferentes
Mecanismos de segurana disponveis no sistema
operacional
Sistema operacional
Durante o curso, usaremos o Linux, por causa de
algumas caractersticas deste sistema:
No necessrio adquirir licenas para uso
Existe uma gama completa de ferramentas de anlise forense de uso
livre
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
etc)
Firewall embutido no kernel e possibilidade de utilizar diversas
modificaes no kernel para aumentar a segurana da mquina
Disponibilidade de diversas distribuies prontas para anlise
forense, facilitando o trabalho de reunir diferentes ferramentas
Sistema operacional
Apesar disso, existem limitaes na utilizao do
sistema Linux.
Se for necessrio analisar algum executvel para
Windows, precisaremos de uma maneira de emular o
Windows. A melhor opo utilizar o VMWare ou
outro sistema de emulao, como o Wine.
Apesar da escolha pelo Linux, existem timas
ferramentas de anlise forense para Windows, tal
como o software EnCase.
Sistema operacional
Deve-se levar em conta que s vezes vai ser necessrio investigar um sistema sem dispositivos padro,
como os presentes em um computador comum. Por
exemplo, como investigar incidentes envolvendo um
PDA, ou uma estao RISC/Solaris? Os dispositivos
de disco so diferentes, e o sistema operacional da
estao forense precisa reconhecer esses equipamentos. Alguns softwares para Windows, como o
EnCase, tm um suporte melhor para imagens de
parties variadas. Entretanto, um suporte nativo
no sistema operacional pode ser muito til e poupar
tempo do investigador.
Alm disso, o sistema operacional precisa ser seguro
o suficiente para no ser comprometido com alguma
ferramenta investigada. Imagine se o investigador est
analisando um arquivo desconhecido e sua estao
forense comprometida por este arquivo?
Alm disso, existem outras vantagens no uso do
Linux, como o sistema da estao forense e das
ferramentas. O sistema permite a criao de CDs
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.
Existem diversas opes para resolver o problema
de anlise de binrios de outros sistemas operacionais. No caso do Windows, em alguns casos possvel executar o binrio com emuladores por software
como o Wine, ou utilizar o prprio VMWare com um
sistema Windows rodando na mquina virtual.
Alm disso, dependendo do tipo de anlise que vai
ser feita, existem debuggers para Linux que tm
suporte a diversos formatos de binrios e processadores, como por exemplo o IDA-Pro.
22
Live CD
Live CD
Importante manter as ferramentas atualizadas
Existem diversos CDs inicializveis com sistemas
Linux:
No precisam ser instalados
Normalmente no modificam o sistema instalado
Podem ser utilizados em um sistema ligado ou como
dispositivo de boot em um sistema desligado
So atualizados pelos responsveis
Contm uma ampla gama de ferramentas
Um grande problema para o investigador manter atualizadas todas as suas ferramentas, medida importante em um processo de anlise forense. Por exemplo,
investigadores da polcia tcnica ou peritos criminais em informtica tm como
parte dessas atividades manter suas ferramentas atualizadas.
A recomendao de utilizar um Live CD, ou um pacote pronto de ferramentas, vale
para aqueles profissionais que no tm como atividade principal a realizao de
anlise forense, desempenhando a atividade apenas em casos isolados. Nestes
casos, quando existir a necessidade de realizar uma anlise forense, basta baixar
a ltima verso da distribuio definida como padro, e todas as ferramentas
estaro atualizadas.
Live CD
Helix uma distribuio especfica para anlise forense
Contm ferramentas para anlise e resposta a incidentes
em ambientes Linux, e um pacote de ferramentas para
anlise em sistemas Windows que ainda estejam ligados.
Pode ser utilizado como um CD de boot em sistemas
desligados, ou montado em um sistema ligado para servir
como fonte de ferramentas para uma resposta inicial ao
incidente.
Utilizado por diversas instituies e grupos de anlise
forense e de resposta a incidentes.
Em nosso curso utilizaremos o Helix, uma distribuio especfica para anlise forense, baseada em
uma verso altamente modificada do Knoppix Linux.
Alm de conter ferramentas para anlise e resposta
a incidentes em ambientes Linux, o Helix contm um
pacote de ferramentas para anlise em sistemas
Windows que ainda estejam ligados. Ele foi modificado para garantir que nenhuma alterao seja feita
ao sistema analisado. Pode ser utilizado como um
CD de boot em sistemas desligados, ou montado
em um sistema ligado para servir como fonte de
ferramentas para uma resposta inicial ao incidente.
utilizado por diversas instituies e grupos de anlise
forense e de resposta a incidentes, o que garante
que esteja sempre atualizado.
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 ferramentas de comando de linha que permitem trabalhar em um nvel mais baixo de operao, e entender o real funcionamento de cada uma.
23
Live CD
Alm do Live CD, em nosso curso utilizaremos o VMWare, ambiente
virtual que simula um computador real, permitindo a execuo de
praticamente qualquer sistema operacional.
Utilizaremos uma imagem do CD do Helix associada ao CD-ROM da
mquina virtual.
Configuraes da mquina virtual:
256 MB de RAM
Disco rgido de 8 GB, para armazenar dados dos exerccios e servir
como exemplo
Imagem do Helix associada ao CD-ROM
Placa de rede host-only (s se conecta ao computador local)
Com o VMWare, podemos reverter o estado da mquina virtual para
estados anteriores, evitando assim a perda de dados proveniente de
comandos errados.
Hardware forense
H no mercado diversas solues de hardware que
podemos utilizar para realizar a duplicao e anlise
pericial. Estas ferramentas so mais completas e
realizam cpias perfeitas das informaes em uma
imagem. Atravs da imagem, o perito realiza sua
anlise sem danificar as provas originais. Permitem
a duplicao em alta velocidade, com bloqueio fsico
de escrita, clculo de hash MD5, SHA1, SHA2, emisso de logs de operao etc.
Estaes e servidores
para computao
forense
Duplicadores de HDs
e equipamentos para
bloqueio de escrita em
mdias digitais
Ambiente e ferramentas de anlise forense
24
\\SIM
Celulares
Pacote forense
Helix
The Coroner's Toolkit
Flag-Knoppix
SMART Linux
Comerciais
FTK Forensic Toolkit
EnCase
Pacote forense
Helix
Este software oferece aos profissionais da rea
a possibilidade de executar vrios processos de
anlise forense computacional. Suporta diversos
sistemas operacionais. Pode ser executado atravs
de um sistema operacional ou antes do incio do
sistema operacional. Suas principais caractersticas
so:
\\Suporte
\\Mostra
\\Realiza
\\Disponibiliza
Helix
Anlise forense Sesso de aprendizagem 2
25
\\Possui
\\Possui
\\Contm
\\Possui
de registros;
\\Recupera
\\Visualiza
\\O
de e-mails excludos;
26
\\Suporta
\\
\\Pesquisa,
\\Extrai
EnCase Forensics
Ferramenta grfica do setor de tecnologia da investigao forense de computadores. Com uma interface de uso intuitivo, auxilia o perito na anlise e aquisio dos
dados, realiza busca em diversas mdias e gera documentao. O programa foi
desenvolvido para atender a necessidade dos peritos em buscar informaes no
formato eletrnico, tais como e-mails e internet. Suas principais caractersticas so:
EnCase Forensics
\\Investigao
\\Provas
reativa;
no repudiveis;
\\Refora
metodologia internacional;
\\Acesso
a informaes escondidas;
\\Automatizao
\\Resposta
\\Investigao
\\Resposta
de pesquisas;
pr-ativa;
\\Documentao
de incidentes;
\\Discrio;
\\Assertividade
no processo de recuperao.
27
NetWitness
Ferramenta capaz de analisar o trfego que flui na rede. Anos de colaborao
com o departamento de inteligncia dos EUA fizeram com que o NetWitness seja
capaz de analisar grande volume de informao dinmica, respondendo imediatamente a ataques: quem fez o qu, onde, quando, como e por qu.
Net Witness
Programas especficos
O processamento de imagens est integrado aos sistemas de investigao mais
avanados do mundo. O resultado dessa combinao o enorme aumento de
produtividade e expanso dos limites humanos, quando for necessrio o processamento de grande quantidade de imagens.
Software para
reconhecimento visual
de imagens
Ambiente e ferramentas de anlise forense
28
29
Preparao da investigao
Preparao da investigao
No atendimento inicial a um incidente, o investigador
deve:
Coletar o mximo possvel de evidncias
Comprovar o incidente
Conter possveis ataques originados no sistema
comprometido
Como fazer tudo isso, minimizando a perda de dados?
Nesta hora, a utilizao de um checklist pode ajudar,
principalmente se o sistema ainda estiver ligado.
A resposta precisa ser rpida e precisa.
Preparao da investigao
Primeira ao: preparar as ferramentas e dispositivos
para a coleta das evidncias.
Coletar primeiro as informaes mais volteis:
Memria RAM, informaes de rede, processos em
execuo, cpia do disco rgido, logs, histricos;
Possuir equipamentos de armazenagem e de rede
para comunicao com o sistema suspeito.
Durante o curso, vamos utilizar o Live CD do Helix em
um sistema virtual, como por exemplo no atendimento
a incidentes em sistemas ligados.
Preparao do ambiente
Preparao do ambiente
Inicialmente, preparemos o ambiente que vamos
utilizar durante o atendimento ao incidente:
# fdisk l
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot
Start
End
Blocks
/dev/sda1
1
32
257008+
/dev/sda2
33
64
257040
/dev/sda3
65
1044
7871850
/dev/sda5
65
1044
7871818+
# mkdir /data
# mount /dev/sda5 /data
Id
82
83
5
83
System
Linuxswap
Linux
Extended
Linux
# fdisk -l8
Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot
Start
End
Blocks
Id System
/dev/sda1
1
32
257008+ 82 Linuxswap
/dev/sda2
33
64
257040
83 Linux
/dev/sda3
65 1044 7871850
5 Extended
/dev/sda5
65 1044 7871818+ 83 Linux
# mkdir /data8
# mount /dev/sda5 /data8
30
Preparao do ambiente
A memria RAM a informao mais voltil que existe no
sistema.
No Helix, temos uma ferramenta chamada memdump, que faz
uma cpia da memria RAM, que podemos redirecionar para
um arquivo em disco:
# memdump > /data/phys_memory.img
Alm disso, podemos redirecionar para uma conexo de rede,
e coletar remotamente o arquivo em nossa estao forense:
Na estao forense:
# nc -l -p 4000 > /data/phys_memory.img
Na mquina suspeita:
# memdump | nc 127.0.0.1 4000
Neste exemplo, vamos copiar a memria RAM do sistema virtual para um arquivo, e grav-lo no diretrio montado previamente. Pode acontecer de algum aluno no
ter montado a partio do disco conforme mostrado, e
acontecer um erro por falta de espao. Consulte o slide
anterior para montar a partio do disco corretamente.
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.
No exemplo, o aluno vai utilizar o netcat para criar um listener na mquina, na
porta 4000, redirecionando a sada dele para um arquivo. A seguir, em outro
terminal, o aluno vai executar o memdump, redirecionando a sada dele para o
netcat, que vai criar uma conexo com a mquina local, na porta 4000, e enviar
toda a sada do memdump para essa conexo.
Com isso, a sada do comando memdump vai ser transmitida pela rede (neste
caso, localmente, mas normalmente atravs da rede fsica) para o arquivo especificado no primeiro redirecionamento. possvel redirecionar para uma conexo de
rede, e coletar remotamente o arquivo em nossa estao forense:
Preparao do ambiente
Na estao forense:
# nc -l -p 4000 > /data/phys_memory.img8
Na mquina suspeita:
# memdump | nc 127.0.0.1 40008
Durante a fase de anlise das evidncias, o investigador vai precisar correlacionar as evidncias
encontradas na mquina invadida com evidncias
# date
Sun Jan 6 01:34:46 MST 2008
externas, como logs de firewall, roteadores, IDS etc.
# uptime
O sincronismo de tempo e a coerncia entre os time01:35:16 up 7:55, 5 users, load average: 0.13, 0.26, 0.18
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.
O timezone de logs e da mquina um dado muito importante.
31
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.
O instrutor pode comentar sobre a necessidade de manter dispositivos sincronizados, de preferncia com servidores NTP confiveis, e sobre o funcionamento do
timezone e do relgio do sistema, que est sempre em UTC. A configurao de
timezone utilizada somente para mostrar a hora no valor local.
No incio da investigao, um passo importante durante o atendimento a um incidente manter um registro preciso de todas as aes executadas; para isso,
necessrio registrar todos os comandos executados, com os respectivos tempos
de execuo.
Alm disso, importante descobrir se as informaes de tempo disponveis em
suas evidncias so coerentes. O timezone de logs e da mquina um dado
muito importante. Por isso, aps recuperar a memria da mquina, importante
descobrir essas informaes:
# 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 -i
Lista todos os arquivos de rede abertos, para descobrir os
programas que esto mantendo conexes abertas.
Tem a mesma funo do comando netstat nap.
COMMAND PID USER
FD
TYPE DEVICE SIZE NODE NAME
Xorg
2252 root
1u IPv4
9383
TCP *:x11 (LISTEN)
sshd
2792 root
3u IPv4 10359
TCP *:ssh (LISTEN)
pump
2870 root
0u IPv4 10612
TCP *:bootpc (LISTEN)
sshd
2872 root
3u IPv4 10647
TCP 192.168.47.129:ssh>192.168.47.1:4944 (ESTABLISHED)
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.
32
FD
IPv4
IPv4
IPv4
IPv4
TYPE
9383
10359
10612
10647
1u
3u
0u
IPv4
IPv4
IPv4
9383
10359
10612
# lsof -U
COMMAND
PID
USER
FD
TYPE
DEVICE SIZE
udevd
517
root
3u unix 0xce957e00
dbus-daem 1485 messagebus
3u unix 0xce957c80
/var/run/dbus/system_bus_socket
dbus-daem 1485 messagebus
5u unix 0xce957b00
NODE NAME
4060 socket
7524
7526 socket
# lsof -U8
COMMAND
udevd
dbus-daem
dbus-daem
PID
517
1485
1485
USER
root
messagebus
messagebus
FD
3u
3u
5u
TYPE
unix
unix
unix
DEVICE SIZE
0xce957e00
0xce957c80
0xce957b00
NODE
4060
7524
7526
NAME
socket
/var/run/dbus/system_bus_socket
socket
Outra forma de recuperar informaes sobre processos atravs do diretrio /proc. Este diretrio
criado virtualmente pelo kernel do sistema operacional para armazenar informaes sobre o hardware e
software bsicos do sistema. Para cada processo,
um diretrio criado com diversos dados sobre ele:
# ls /proc/28778
attr auxv cmdline cwd environ exe fd maps mem
mounts mountstats oom_adj oom_sco
re root seccomp smaps stat statm status task wchan
importante perceber que, como este diretrio virtual, isto , no existe fisicamente no disco, qualquer
modificao feita nele no vai comprometer as evidncias em disco. Contudo,
importante notar que preciso ter muito cuidado para no modificar nada mais
alm deste diretrio.
Como podemos ver, para cada processo existem diversas informaes disponveis.
Alguns destes arquivos contm dados importantes sobre o processo em execuo.
33
5 18:50 /proc/2877/cwd
# cat /proc/2877/cmdline
-bash
34
# cat /proc/2877/status8
0
0
Este arquivo mostra informaes de status do processo. Podemos ver informaes sobre usurio/
grupo que executou o processo, memria e CPU
utilizados, entre outras informaes.
0:00 /usr/sbin/sshd
0:07 sshd: root@pts/2,pts/3
Name: bash
State: S (sleeping)
SleepAVG: 98%
Tgid: 2877
Pid: 2877
PPid: 2872
TracerPid:
0
Uid:
0
0
0
Gid:
0
0
0
0
0
35
Preservao do disco
Preservao do disco
Aps a coleta de informaes mais volteis, preciso
salvar as evidncias menos volteis
A coleta deste tipo de evidncia importante, pois ser
atravs dos dados armazenados nos discos que
poderemos identificar processos executados pelo hacker,
como instalao de ferramentas e modificao de arquivos
H diversas metodologias e ferramentas disponveis para
coletar uma cpia dos discos:
Equipamentos especficos para cpia de discos
Ferramentas para cpia disco a disco
Criao de uma imagem de disco bit a bit (mais comum)
Para coletar uma cpia dos discos, existem diversas metodologias e ferramentas disponveis, 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.
Preservao do disco
Neste curso vamos utilizar o formato DD, por ser mais
difundido e mais facilmente manipulado dentro de um
ambiente Linux.
Para coletar uma imagem de um dispositivo de disco,
utilizaremos a ferramenta dd (da o nome do formato DD).
Ferramenta disponvel por padro em qualquer sistema
Linux, permite que se realizem cpias bit a bit entre
dispositivos, ou ento entre dispositivos e arquivos e
vice-versa.
Preservao do disco
Antes de copiar as evidncias, necessrio garantir que
nosso dispositivo de armazenagem est limpo.
Para isso, zerar o contedo do disco (antes de gravar
qualquer evidncia) com o seguinte comando:
# dd if=/dev/zero of=/dev/<dispositivo> bs=512
conv=noerror
dd: writing `/dev/<dispositivo>': No space left on device
514018+0 records in
514017+0 records out
263176704 bytes (263 MB) copied, 4.17215 seconds, 63.1
MB/s
36
Preservao do disco
Passos para copiar uma partio de um disco para um
arquivo de imagem:
# dd if=/dev/sda1 of=/data/dev_sda1_swap.img bs=512
conv=noerror
514017+0 records in
514017+0 records out
263176704 bytes (263 MB) copied, 36.8564 seconds, 7.1 MB/s
# dd if=/dev/sda2 of=/data/dev_sda2.img_root.img bs=512
conv=noerror
514080+0 records in
514080+0 records out
263208960 bytes (263 MB) copied, 36.4338 seconds, 7.2 MB/s
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>.
Anlise forense Sesso de aprendizagem 2
37
Description
Primary Table (#0)
Unallocated
Linux Swap (0x82)
Linux (0x83)
DOS Extended (0x05)
Extended Table (#1)
Unallocated
Linux (0x83)
Unallocated
Length
0000000001
0000000062
0000514017
0000514080
0015743700
0000000001
0000000062
0015743637
0000005356
Description
Primary Table (#0)
Unallocated
Linux Swap (0x82)
Linux (0x83)
DOS Extended (0x05)
Extended Table (#1)
Unallocated
Linux (0x83)
Unallocated
38
# cat dev_sda2_root.sha18
0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97
104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1
209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e
Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da
Adepto
Interface grfica para utilizar o dcfldd e outras ferramentas de coleta. Contm
muitas opes para gerao, armazenagem e verificao da imagem, alm de
manter um registro de todas as operaes realizadas.
# /usr/local/bin/adepto.sh8
39
Concluses
Concluses
Disponibilizar em sua estao forense o mximo
possvel de espao, processamento e memria.
Usar sistema operacional flexvel e confivel.
Possuir ferramentas prontas e atualizadas no
atendimento inicial a um incidente.
Evitar comprometer evidncias, coletando primeiro as
informaes mais volteis:
Memria RAM, informaes de rede, processos em
execuo, cpia do disco rgido, logs, histricos.
Estudar as ferramentas disponveis no Live-CD
40
2
Sesso de aprendizagem 2
Ambiente e ferramentas de anlise forense
Roteiro de atividades
Tpicos e conceitos
\\Identificao
Live-CD.
\\Preservao
de informaes volteis.
\\Realizao
minutos
42
3
Sesso de aprendizagem 3
Ambiente e ferramentas de anlise
forense (parte 2)
Sumrio da sesso
Software bsico de rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Informaes sobre executveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Pacote forense de ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Ferramentas do nvel de sistema de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . 56
Ferramentas do nvel de nomes de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Ferramentas do nvel de metadados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Ferramentas do nvel de blocos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
Outras ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
CD de ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
Atividade 1 Investigando o disco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
Atividade 2 Uso do Sleuth Kit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
44
grep
Procura por padres em um arquivo.
Usado em conjunto com strings torna-se uma
ferramenta importante para encontrar evidncias.
# grep -ia -f /data/dirt_list.txt
/data/dev_sda2_root.img
# grep ab Bash version
/data/dev_sda2_root.img
# grep E [0-9]{1,3}\.[0-9]{1,3}\.[09]{1,3}\.[0-9]{1,3}
/data/dev_sda2_root.img.str >
/data/dev_sda2_root.img.str.ips
45
O ltimo exemplo mostra como utilizar o comando grep para encontrar mensagens a partir de uma expresso regular. Isto torna o grep muito poderoso para
encontrar evidncias.
md5sum / sha1sum / sha1deep
# sha1sum /etc/passwd
b8e110c1a6834883b1cce60a85d7e8641cf34466/etc/passwd
sha1deep
Utilizado para monitorar a integridade do sistema ou procurar
por hashs atravs de uma lista de hashs conhecidos:
# sha1deep -r /bin /lib /sbin >
/data/system_hashs.sha1
# sha1deep -r -x /data/system_hashs.sha1 /bin
# sha1deep -r -m /data/badfiles_hashs.sha1 /
Podemos monitorar a integridade do sistema ou procurar por hashs atravs de uma lista de hashs conhecidos. Para isso, utilizamos
sha1deep, como no exemplo abaixo:
# sha1deep -r /bin /lib /sbin > /data/system_hashs.sha18
# sha1deep -r -x /data/system_hashs.sha1 /bin8
# sha1deep -r -m /data/badfiles_hashs.sha1 /8
\\O
\\O
\\O
46
6 18:04 /data/bla
$ id
uid=1000(knoppix) gid=1000(knoppix)
groups=1000(knoppix)
$ /data/bla
# id
uid=1000(knoppix) gid=1000(knoppix) euid=0(root)
groups=1000(knoppix)
# id8
uid=1000(knoppix) gid=1000(knoppix) euid=0(root) gr
oups=1000(knoppix)
file
47
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
netstat
Com este comando pode-se descobrir rapidamente
a existncia de portas de rede abertas na mquina,
ou as conexes atualmente estabelecidas. possvel
tambm descobrir a existncia de rotas estticas
inseridas manualmente. Exemplo:
# netstat nap8
# netstat nr8
# netstat -nlp8
48
# lsof i
# lsof U
# lsof l | grep LISTEN
Importante ferramenta de coleta de evidncias, utilizada para listar todos os arquivos abertos. Em um
sistema operacional, qualquer recurso mantm um
arquivo aberto. Conexes de rede, bibliotecas abertas, programas em execuo, tudo vai ser listado
pelo lsof. Exemplo:
# lsof i8
# lsof U8
# lsof l | grep LISTEN8
O comando lsof importante para detectar comportamento estranho dos programas executados. O que voc acharia, por exemplo, de um programa de edio de
textos (o vi, por exemplo), que mantm uma porta TCP aberta? Isto no comum,
e pode indicar a existncia de um trojan instalado na mquina.
nc
49
Ethereal
50
hexdump
hexdump
Permite a visualizao de arquivos binrios em um formato
hexadecimal.
# hexdump
# hexdump
# hexdump
00000000
*
000001b0
000001c0
000001d0
000001e0
000001f0
-b
-d
-C
00
/data/partition_table.img
/data/partition_table.img
/data/partition_table.img
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
|................|
00
01
01
01
00
00
00
20
40
00
|................|
|....?.?.........|
|. ..?? ... .....|
|.@....@....:....|
|..............U.|
00
82
83
05
00
00
fe
fe
fe
00
00
3f
3f
ff
00
00
1f
3f
ff
00
00
3f
20
40
00
00
00
d8
b0
00
00
00
07
0f
00
00
00
00
00
00
00
e1
20
d4
00
00
d7
d8
3a
00
00
07
07
f0
00
00
00
00
00
00
00
00
00
00
55
01
00
00
00
aa
# hexdump -b /data/partition_table.img8
# hexdump -d /data/partition_table.img8
# hexdump -C /data/partition_table.img8
00000000
*
000001b0
000001c0
000001d0
000001e0
000001f0
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
00
01
01
01
00
00
00
20
40
00
00
82
83
05
00
00
fe
fe
fe
00
00
3f
3f
ff
00
00
1f
3f
ff
00
00
3f
20
40
00
00
00
d8
b0
00
00
00
07
0f
00
00
00
00
00
00
00
e1
20
d4
00
00
d7
d8
3a
00
00
07
07
f0
00
00
00
00
00
00
00
00
00
00
55
01
00
00
00
aa
|................|
|....?.?.........|
|. ..?? ... .....|
|.@....@....:....|
|..............U.|
lsattr/chattr
Alm das permisses de acesso normais do arquivo
(leitura, escrita e execuo), existem permisses
extras no sistema de arquivos que permitem controlar
o acesso aos arquivos. No Linux, estes atributos
extendidos podem ser modificados ou verificados
com os comandos lsattr e chattr: append only (a),
compressed (c), no dump (d), immutable (i), data
journalling (j), secure deletion (s), no tail-merging (t),
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.
51
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
-p `pidof Xorg`
# strace -f -F /usr/sbin/sshd
strace
Permite executar um processo e acompanhar toda
a atividade executada pelo mesmo, como todos os
acessos ao sistema de arquivo, chamados de sistema, leitura e escrita em filehandles, abertura e utilizao de sockets de rede. Pode ser muito til caso
o investigador encontre um processo em execuo e
queira descobrir mais informaes sobre o mesmo,
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 -i -t -x -p `pidof Xorg`8
# strace -f -F /usr/sbin/sshd8
52
readelf
readelf
readelf
readelf
-h
-S
-l
-e
readelf
Este comando til na anlise de binrios desconhecidos. Ele permite listar uma srie de informaes
importantes sobre a estrutura do executvel, facilitando assim um possvel trabalho de anlise desse
binrio.
# readelf -h /data/bla8
/data/bla
/data/bla
/data/bla
/data/bla
# readelf -S /data/bla8
# readelf -l /data/bla8
# readelf -e /data/bla8
# nm /bin/ntfs-3g8
ldd/nm/objdump
Estas trs ferramentas podem ser utilizadas em uma anlise
mais avanada de um binrio desconhecido.
Elas permitem descobrir informaes importantes sobre a
estrutura, funes e dependncias de um executvel:
#
#
#
#
#
# ldd /bin/ntfs-3g8
ldd /bin/ntfs-3g
nm /bin/ntfs-3g
objdump -x /bin/ntfs-3g
objdump -D /bin/ntfs-3g
objdump -S /bin/ntfs-3g
# objdump -x /bin/ntfs-3g8
# objdump -D /bin/ntfs-3g8
# objdump -S /bin/ntfs-3g8
53
\\Ferramentas
\\Ferramentas
\\Ferramentas
\\Outras
54
Group: 707
Type: regular
Perms: rw-rw-rw-Accessed: Mon JAN 16 03:03
Modified: Mon JAN 16 01:01
Created: Sun DEC 15 10:00
Owner: 707
Group: 707
Type: regular
Perms: rw-rw-rw-Accessed: Mon JAN 16 03:03
Modified: Mon JAN 16 01:01
Created: Sun DEC 15 10:00
55
Os blocos de dados so a menor estrutura em um disco, e armazenam o contedo do arquivo. Um inode pode armazenar os dados do arquivo quando este for
bem pequeno, menor que o tamanho de um bloco. Caso o arquivo tenha entre 1 e
8 blocos, o inode armazena uma lista de blocos diretamente. E quando o arquivo
for muito grande, o inode vai utilizar os blocos endereados diretamente como
rea para armazenar informaes sobre os blocos que armazenam o arquivo. Este
processo chamado de blocos de dados endereados indiretamente, e permite
que um arquivo tenha tamanhos arbitrrios.
56
57
fls
Lista nomes de arquivos alocados ou apagados em
um diretrio.
# fls -a r d -f linux-ext2
/data/dev_sda2_root.img
d/- * 0:
KNOPPIX/usr
r/r * 4317:
usr/NX/bin/nxclient
# fls -a -f linux-ext2
/data/dev_sda2_root.img
d/- * 0: KNOPPIX/usr
r/r * 4317: usr/NX/bin/nxclient
58
Vemos no exemplo algumas informaes interessantes sobre o arquivo armazenado no inode listado. Primeiro, que ele no est alocado, isto , o arquivo original foi removido. Segundo, vemos o usurio e grupo originais do arquivo, alm de
suas permisses. Finalmente, vemos os tempos de acesso, modificao, criao
e remoo do arquivo. Veremos em outra sesso como essas informaes podem
ser importantes para identificar as atividades de um invasor.
icat
# icat -f linux-ext2 /data/dev_sda2_root.img 4317 >
/data/inode_4317_nxclient.dat8
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.
59
ils
Lista as estruturas de metadados e seus contedos
em um formato fcil de se tratar. O ils faz com inodes o mesmo que o fls fez com nomes de arquivos.
Exemplo:
# 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 O f linux-ext2 /data/dev_sda2_root.img
60
dcat
# dcat -f linux-ext2 /data/dev_sda2_root.img 2513998
dcat
Extrai um bloco de dados de um disco. Utilizaremos
esta ferramenta quando no for possvel identificar a
qual arquivo ou inode pertence um determinado bloco.
Permite recuperar dados parciais de arquivos.
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
# 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
Lista detalhes sobre unidades de dados, e pode listar blocos de dados desalocados de um sistema de
arquivos. Estes blocos contm o espao livre e os
arquivos deletados em disco.
# dls -A -a -l -f linux-ext2 /data/dev_sda2_root.
img 27891 27895 8
class|host|image|first_time|unit
dls|Helix||1199680475|Fragment
addr|alloc
27891|a
27892|a
27893|a
27894|f
27895|f
# dls -A -f linux-ext2 /data/dev_sda2_root.img > /
data/dev_sda2_root.img.dls8
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.
O segundo exemplo cria um arquivo contendo somente os blocos desalocados do
disco. Com este arquivo, poderemos procurar por evidncias que tenham sido removidas, como por exemplo, um arquivo de log ou executvel. Pode no parecer muito
interessante esse tipo de funo, mas pense em procurar por essa evidncia em um
disco de centenas de gigabytes. Se conseguir procurar somente no espao livre, a
quantidade de dados pode ser muito menor, facilitando o trabalho de investigao.
61
dcalc
Usado para encontrar na imagem original o bloco de
dados correspondente ao encontrado na imagem de
blocos de dados desalocados. Exemplo:
# grep -ab http://www /data/dev_sda2_root.img.dls8
# fsstat /data/dev_sda2_root.img | grep Block Size8
# echo $((4045060/1024))8
# dcalc -u 3950 /data/dev_sda2_root.img8
# dcat /data/dev_sda2_root.img 318448
Mais informaes:
http://www.nomachine.
com/
Outras ferramentas
mmls
Mostra informaes sobre o layout do disco, incluindo
espaos no particionados.
A sada identifica o tipo das parties e seus tamanhos,
facilitando a utilizao do comando dd para extrair parties.
A sada ordenada pelo setor inicial, facilitando encontrar
espaos no layout.
Outras ferramentas
mmls
Mostra informaes sobre o layout do disco, incluindo
espaos no particionados. A sada identifica o tipo
das parties e seus tamanhos, facilitando a utilizao do comando dd para extrair parties. A sada
ordenada pelo setor inicial, facilitando encontrar
espaos no layout.
62
Outras ferramentas
mmstat
Este comando mostra apenas o tipo de partio
presente em um dispositivo.
Pode ser utilizado para descobrir essa informao
num disco no qual no conhecemos o tipo de
particionamento utilizado.
# mmstat /dev/das
dos
Outras ferramentas
hfind
Para um dado arquivo suspeito, procura em bancos de dados
de hash criptogrficos conhecidos pela existncia do arquivo,
para verificar sua autenticidade. Diversos bancos de dados
podem ser usados como fonte: [9], [10], [11], [12], [13].
# hfind -i md5sum /data/badfiles_hashs.md5
Index Created
# hfind /data/badfiles_hashs.md5 54904845b4b0a9cb5f49
91d39043199
e54904845b4b0a9cb5f4991d39043199 /bin/chgrp
63
mactime
Outras ferramentas
mactime
Pega a sada dos comandos ils ou fls e cria um
timeline, ou linha de eventos, da atividade de arquivos
no disco.
# mactime -b /data/dev_sda2_root.img.mac p /etc/passwd -z GMT-3
Pega a sada dos comandos ils ou fls e cria um timeline, ou linha de eventos, da atividade de arquivos
no disco. Como veremos em sesses posteriores,
o timeline a principal ferramenta para remontar os
passos de uma invaso.
# mactime -b /data/dev_sda2_root.img.mac -p /etc/pa
sswd -z GMT-38
disk_stat
Outras ferramentas
disk_stat
Este comando mostra informaes sobre discos ATA e SerialATA.
Host Protected Area (HPA):
rea reservada onde os fabricantes normalmente instalam
arquivos de recuperao do sistema operacional original.
# disk_stat /dev/sda
Maximum Disk Sector: 312499999
Maximum User Sector: 268435454
** HPA Detected (Sectors 268435454 312500000) **
Se o investigador tentar realizar uma cpia do disco antes de desabilitar a proteo do HPA, o dd ou qualquer comando utilizado para cpia no copiar os setores protegidos. Por isso estes comandos so importantes durante o atendimento
inicial do incidente para garantir que as evidncias sero coletadas corretamente.
Outras ferramentas
disk_sreset
Permite remover o bloqueio de acesso ao HPA,
permitindo que o investigador tenha acesso aos
setores de disco protegidos.
# disk_sreset /dev/sda
Removing HPA from 268435454 to 312500000
until next reset
disk_sreset
Este comando permite remover o bloqueio de
acesso ao HPA, permitindo assim que o investigador
tenha acesso aos setores de disco protegidos e ao
seu contedo.
# disk_sreset /dev/sda8
Removing HPA from 268435454 to 312500000 until next
reset
64
Outras ferramentas
# mkdir -p /usr/local/sleuthkit-2.09/share/file/
# cp /usr/share/file/magic /usr/local/sleuthkit2.09/share/file/
# mkdir -p /usr/local/sleuthkit-2.09/share/file/8
sorter
Analisa e ordena os arquivos em uma imagem de disco baseada em
um banco de dados de assinaturas de arquivos.
100%
All files have been saved to: /data/sorter
# cp /usr/share/file/magic /usr/local/sleuthkit-2.09
/share/file/8
# sorter -f linux-ext2 -d /data/sorter /data/dev_sd
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
O arquivo unknown.txt contm os arquivos encontrados pelo sorter com os respectivos inodes onde foram encontrados.
sigfind
Outras ferramentas
sigfind
O comando sigfind permite procurar por um padro
binrio em um arquivo.
# sigfind -b 1024 1f8b08
/data/dev_sda2_root.img | less
# ifind -a /data/dev_sda2_root.img -d 55934
# ffind -a /data/dev_sda2_root.img 4781
# hexdump -C /usr/X11R6/lib/X11/fonts/100dpi
/UTBI__10-ISO8859-1.pcf.gz | head -1
65
Fizemos uma ltima verificao com o comando hexdump para mostrar que os
trs primeiros bytes do arquivo so mesmo 0x1f8b08.
srch_strings
Outras ferramentas
srch_strings
Permite realizar as mesmas tarefas do comando
strings, com a diferena de poder procurar por
caracteres com outra codificao.
Veja os exemplos abaixo:
#
#
#
#
#
Nos exemplos, mudando o tipo de codificao com o parmetro e podemos ver a diferena 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
# foremost -o /data/foremost -c /data/foremost.conf /data/dev_sda2_root.img.
dls8
Processing: /data/dev_sda2_root.img.dls
# ls /data/foremost8
audit.txt htm jpg
Podemos ver que o comando cria um diretrio para cada tipo de arquivo identificado, 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.
66
Outras ferramentas
foremost
Facilita a procura e recuperao de arquivos baseados
em suas assinaturas, utilizando um arquivo de
configurao onde possvel especificar as
assinaturas que deseja procurar.
# mkdir /data/foremost
# foremost -o /data/foremost -c /data
/foremost.conf /data/dev_sda2_root.img.dls
Processing: /data/dev_sda2_root.img.dls
# ls /data/foremost
audit.txt htm jpg
CD de ferramentas
Deve-se criar ou utilizar um CD com ferramentas teis
ao trabalho do investigador.
O Live CD do Helix uma boa opo, mas caso o seu
trabalho seja exclusivamente realizar investigaes de
incidente, voc deveria pensar em criar seu prprio
CD de ferramentas.
A primeira coisa que deve existir em um CD de
ferramentas forenses um interpretador de comandos
confivel.
CD de ferramentas
Alm de um interpretador de comandos, o CD deve
conter as seguintes ferramentas:
Todas as ferramentas bsicas vistas anteriormente.
Todas as ferramentas do pacote forense escolhido.
Ferramentas bsicas do sistema:
ls, cp, mv, rm, chroot, cat, less, more, chmod, chown, chgrp,
date, df, du, cut, sort, strip, tail, head, ln, arp, echo, env,
hostname, id, ifconfig, pwd, touch, uniq, uptime, wc, who.
CD de ferramentas
Durante uma investigao, importante que o investigador tenha em mos todas as ferramentas necessrias para o seu trabalho.
necessrio compilar estaticamente todas as ferramentas do CD, para evitar o comprometimento por
binrios ou bibliotecas suspeitas.
67
Concluses
O sistema operacional utilizado pelo investigador
precisa ser flexvel e confivel.
Deve dispor de ferramentas bsicas que auxiliem na
tarefa de analisar dezenas de gigabytes de dados.
A utilizao de um pacote de ferramentas forenses
indispensvel.
Todas as ferramentas utilizadas devem estar
disponveis em um CD, compiladas estaticamente e
prontas para utilizao em qualquer situao.
Concluses
Na prxima sesso conheceremos as tcnicas para
coleta de evidncias a partir da imagem do disco
de uma mquina comprometida. Apesar desta ser a
parte mais demorada do processo, veremos que as
tcnicas so simples e de fcil execuo.
68
3
Sesso de aprendizagem 3
Ambiente e ferramentas de anlise
forense (parte 2)
Roteiro de atividades
Tpicos e conceitos
\\Utilizao
minutos
70
4
Sesso de aprendizagem 4
Coleta de evidncias
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
Arquivos de inicializao do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Arquivos de histrico de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Checando arquivos importantes do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
Atividade 1 Coletando evidncias . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
72
Coleta de evidncias
Coleta de evidncias
A anlise forense de mdias tem o objetivo de
recuperar evidncias que comprovem a invaso do
computador analisado.
O investigador deve ser imparcial em seu julgamento
e na coleta de provas.
O processo de coleta de evidncias demorado e
varia de caso para caso.
Vamos nos concentrar em conhecer as evidncias
importantes e a forma de recuper-las do disco, para
depois analis-las e tentar montar uma linha de tempo
do ataque.
Sistema comprometido
Sistema comprometido
Utilizaremos um modelo virtual de um sistema comprometido,
utilizado no Scan Of The Month 29 do projeto Honeynet.
Esta mquina virtual foi parada em um momento especfico
aps a invaso, para que fosse possvel analisar o sistema
como se estivesse utilizando a mquina.
Como esta mquina virtual antiga, as verses mais novas do
VMWare no conseguem mais abri-la.
Por isso, vamos utilizar uma outra mquina virtual, configurada
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.
essa imagem que vamos analisar nas prximas sesses.
Tipos de evidncias
Qualquer tipo de informao encontrada na mquina
suspeita pode ser considerado uma evidncia.
Arquivos de logs
Arquivos apagados
Histricos de comandos
Binrios comprometidos
Arquivos em diretrios suspeitos
Arquivos abertos no momento da coleta inicial de
evidncias
Dados importantes que possam ter sido comprometidos
Datas de acesso, de modificao e de criao de arquivos
Tipos de evidncias
73
Primeiros passos
Esta a imagem da tela do sistema aps ter sido
comprometido e antes de ser parado para anlise.
Note a presena de informaes importantes, como o
sistema operacional utilizado, a data em que o sistema
foi parado e as mensagens que aparecem na imagem,
como por exemplo as mensagens informando que a
interface de rede entrou em modo promscuo.
Um bom ponto
de partida so as
informaes coletadas
durante o momento da
captura do computador
comprometido.
Uma informao que queremos manter so os timestamps de escrita e montagem do disco. Se montarmos a imagem sem a preocupao de proteger as
evidncias, elas sero perdidas e isto pode prejudicar a investigao.
Entretanto, ao executar este comando percebemos que ocorre um erro e a imagem no montada. Aparentemente, o processo de desligar a mquina sem desligar
o sistema operacional corretamente acabou prejudicando a estrutura do disco. Este
tipo de situao pode ocorrer com freqncia em uma investigao, onde o investigador tem que escolher entre prejudicar uma evidncia ou ter acesso a mais evidncias.
Primeiros passos
Para comear a procurar por evidncias na imagem do disco comprometido,
ser necessrio ter acesso ao sistema de arquivos dessa imagem.
importante sempre manter a integridade de todas as evidncias.
# mkdir /mnt/image
9 15:34:26 2003
9 15:34:26 2003
Antes de tentar recuperar o acesso a imagem, precisamos salvar as informaes que sero perdidas. Quando
montamos um dispositivo, o kernel do sistema operacional atualiza os tempos de ltima escrita e de ltima data
de montagem do mesmo. Precisamos salvar essas informaes antes de prosseguir. Lembre-se de que temos
uma ferramenta que pode ser muito til, o fsstat.
Coleta de evidncias
74
Primeiros passos
Algumas ferramentas do sistema podem ser usadas na
investigao, e muitas vezes so essenciais para o trabalho.
A coleta de evidncias um processo cclico. Cada evidncia
encontrada leva a novas pistas e o processo deve ser
reiniciado com as novas informaes.
# find /mnt/image atime 1825 or mtime 1825
O segundo mostra como procurar por arquivos alterados a partir da data de modificao de um arquivo
qualquer, para descobrir modificaes e acessos
posteriores.
75
Armazenagem de evidncias
Armazenar evidncias de forma segura e padronizada:
Garante a integridade das mesmas.
Permite recuperar e correlacionar de forma fcil as
evidncias.
Mantm a cadeia de custdia das evidncias,
permitindo o controle do acesso a elas.
O local de armazenagem deve ser seguro e ter acesso
controlado.
Armazenagem de evidncias
tag#
20080118-1750-txt-0001
Tipo
Arquivo de texto
Nome
/mnt/image/dev/ttyop
SHA1 hash
2a7badc291e94f3dcb621c0b7abf100eb0ad88cd
Tamanho
74 bytes
Data
2002/03/18
Descrio
Observaes
Armazenagem de evidncias
tag#
Tipo
Nome
SHA1 hash
Tamanho
Data
Descrio
20080118-1750-txt-0002
Arquivo de texto
/mnt/image/dev/ttyoa
fe3b2e77710875617dee295e1f880b
9fcc4d9300
134 bytes
2002/09/04
Arquivo com endereos de
rede/portas
Observaes
Coleta de evidncias
Armazenagem de evidncias
necessrio manter uma cadeia de custdia das
evidncias encontradas. Para isso, precisamos identificar e armazenar cada evidncia de forma segura e
de modo que seja possvel identificar rapidamente a
procedncia de cada uma. Para isso, vamos usar um
sistema de fichas para cada evidncia encontrada.
Veja os detalhes que guardamos em cada ficha. O
primeiro campo uma tag nica de identificao,
para podermos referenciar cada evidncia posteriormente. interessante criar essa tag com referncia
data e hora em que ela foi encontrada, ou a data e
hora de criao do arquivo.
Temos tambm informaes sobre o arquivo em si.
Nome, tipo do arquivo, tamanho e data de criao,
uma descrio do que o arquivo e o hash SHA1 do
mesmo. Com isso, teremos informaes suficientes
para identificar e referenciar o arquivo em um relatrio, bem como garantir que o arquivo estar to
ntegro como no momento em que foi encontrado.
76
Tcnicas de coleta
Tcnicas de coleta
Utilizar inicialmente as ferramentas do sistema para
encontrar pistas valiosas.
# find /mnt/image -name .\*
# grep tar\.gz
/data/compromised/compromised_hda1.img.str
# grep E [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9
]{1,3} /data/compromised/compromised_hda1.img.str8
# grep -f /data/dirt_list.txt
/data/compromised/compromised_hda1.img.str
\\O
\\O
\\O
\\O
\\O
\\O
ltimo exemplo mostra como utilizar uma dirt list para realizar uma procura
na imagem por palavras-chave.
77
# ls la /mnt/image/var/log8
Tcnicas de coleta
# more /mnt/image/var/log/boot.log8
# more /mnt/image/var/log/secure8
# more /mnt/image/var/log/maillog8
# find /mnt/image -name \*.log8
# more /mnt/image/etc/opt/psybnc/log/psybnc.log8
# cat /mnt/image/usr/lib/libice.log8
# more /mnt/image/etc/opt/psybnc/log/psybnc.log
# cat /mnt/image/usr/lib/libice.log
Arquivos de logs
Arquivos de logs
A anlise de arquivos de logs um passo importante
na anlise forense, embora nunca se deva confiar
totalmente em um log.
s vezes, at mesmo a falta de alguma informao em
um log pode ser uma evidncia importante.
O investigador deve procurar todos os arquivos de
logs armazenados em disco.
importante tentar correlacionar os logs com outros
eventos: data de criao/acesso/remoo de arquivos,
outros logs, eventos capturados em dispositivos de
rede etc.
O investigador deve procurar todas as informaes pertinentes que estejam relacionadas a uma evidncia, e lembrar de correlacionar eventos nos logs com evidncias
encontradas anteriormente. Sempre que encontrar novas evidncias, deve retomar
o processo de procura de evidncias utilizando as novas informaes encontradas.
Coleta de evidncias
78
Arquivos de logs
# more maillog8
# more maillog
79
\\rc.sysinit
\\/etc/rc.local
Muitas vezes, arquivos de inicializao podem conter comandos para controlar o sistema aps reiniciar a mquina, fornecendo pistas de onde procurar por mais evidncias.
No exemplo, encontramos o arquivo de instalao de um rootkit:
# find /mnt/image/ -name inst8
/mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst
/mnt/image/lib/.x/inst
# 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!
# find /mnt/image/ -name inst8
Coleta de evidncias
/mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst
/mnt/image/lib/.x/inst
# 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\00
3\163\153\000\355\175\177\170\
...
\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!
80
81
-ls | less
Concluses
Vimos nesta sesso o que so evidncias e como
trat-las e armazen-las de maneira a garantir a
integridade e a cadeia de custdia das mesmas.
Aprendemos a encontrar evidncias utilizando
ferramentas bsicas disponveis em qualquer
distribuio Linux.
Ainda existem muitas evidncias presentes na
imagem analisada nesta sesso. A anlise forense
um processo cclico, demorado e sujeito a erros.
importante tentar correlacionar evidncias para
garantir a validade das informaes coletadas.
Coleta de evidncias
Concluses
Na prxima sesso veremos as ferramentas e tcnicas para recuperao completa ou parcial de evidncias removidas do disco.
Veremos tambm algumas tcnicas para anlise de
arquivos suspeitos encontrados. Apesar desta ser a
parte mais demorada do processo, veremos que as
tcnicas so simples e de fcil execuo.
82
4
Sesso de aprendizagem 4
Coleta de evidncias
Roteiro de atividades
Tpicos e conceitos
\\A
minutos
84
5
Sesso de aprendizagem 5
Recuperao e anlise de evidncias
Sumrio da sesso
Recuperao e anlise de evidncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Estrutura do sistema de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
Recuperao de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
Recuperao de arquivos sobrescritos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Recuperao de arquivos journaling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
Atividade 1 Rastreando eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Atividade 2 Buscando ferramentas na internet. . . . . . . . . . . . . . . . . . . . . . . . 98
86
\\Ext3,
87
88
Recuperao de arquivos
Para recuperar arquivos, precisamos descobrir em
qual inode o arquivo procurado estava armazenado
Se no for possvel descobrir o inode, talvez
possamos recuperar apenas parte do arquivo
Podemos utilizar ferramentas para analisar o disco e
encontrar as informaes necessrias sobre os
arquivos apagados
Em ltimo caso, podemos utilizar ferramentas como
grep e strings para descobrir onde a informao
procurada est armazenada
Recuperao de arquivos
Vemos aqui informaes importantes sobre o sistema de arquivos, como o tamanho do bloco de
dados e informaes sobre a disponibilidade de
inodes e blocos de dados. O primeiro passo descobrir informaes sobre o sistema de arquivos:
# fsstat -f linux-ext2 /data/compromised/compromise
d_hda1.img8
FILE SYSTEM INFORMATION
-------------------------------------------File System Type: Ext2
Volume Name: /
Volume ID: 45ba545b90872295d7113db68ac3de0b
Last Written at: Wed Jan 16 21:06:57 2008
Last Checked at: Mon Jul 14 14:52:13 2003
Last Mounted at: Wed Jan 16 21:05:40 2008
METADATA INFORMATION
-------------------------------------------Inode Range: 1 - 117760
Root Directory: 2
Free Inodes: 87861
CONTENT INFORMATION
-------------------------------------------Block Range: 0 - 235515
Block Size: 4096
Free Blocks: 155704
89
Recuperao de arquivos
Para recuperar um arquivo que no tenha sido
sobrescrito, o procedimento o seguinte:
Encontre o inode onde o arquivo estava armazenado:
fls adpr /data/compromised/compromised_hda1.img
O primeiro comando lista todos os arquivos da imagem que foram removidos. Dessa forma podemos
encontrar o inode do arquivo que nos interessa.
Com o inode, podemos utilizar o istat para descobrir
os blocos onde este arquivo est armazenado. E
com o ffind, descobrir o nome original do arquivo,
caso ele tenha sido realocado.
Descobrindo a posio na imagem de dados desalocados, utilizamos o dcalc para encontrar a posio
na imagem original.
Se o ifind no encontrar nenhum inode apontando para
este bloco de disco, precisamos recuperar bloco a
bloco at conseguir toda informao possvel do
arquivo.
90
# dcat -f linux-ext2
/data/compromised/compromised_hda1.img 39341
602 > /data/compromised/recovered.tar
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, observamos 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 totalmente, apenas com alguns erros que foram mostrados pelo comando.
Anlise forense Sesso de aprendizagem 5
91
Quando feita qualquer atualizao no sistema de arquivos, o journaling guarda uma cpia completa do inode
modificado no journal, o que nos permite recuperar a
informao original que existia em um inode, bastando
recuperar a cpia do inode armazenada no journal.
Como no queremos prejudicar nenhuma evidncia
na imagem que estamos utilizando, vamos realizar
os exerccios a seguir no disco da mquina virtual
de nossa estao forense. Para isso, vamos criar
um arquivo, apag-lo do disco, e tentar recuper-lo
utilizando as informaes do journal.
Ateno: como este exerccio vai ser feito no disco
que o aluno est utilizando para realizar todos os
exerccios, possivelmente os valores de inode e
blocos estaro diferentes dos que o aluno encontrar em sua mquina. Basta que o aluno adapte os
valores de inodes e blocos de dados mostrados aqui
para os encontrados em sua mquina.
Inicialmente, vamos criar o arquivo que usaremos
como exemplo, e coletar algumas informaes sobre
o mesmo antes de apagar, para compar-las depois:
# gzip -9 -c /data/compromised/compressed.files > /d
ata/compromised/test.gz8
# ls -li /data/compromised/test.gz8
937288 -rw-r--r-- 1 root root 5252 Jan 17 12:06 /
data/compromised/test.gz
92
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 armazenado, para compararmos posteriormente com o resultado obtido.
93
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 distribuio 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 presentes no journal do sistema de arquivos.
Generation: 1159893987
Generation: 1159893987
# debugfs /dev/sda58
debugfs 1.39-WIP (10-Dec-2005)
debugfs: logdump -i <937288>
Inode 937288 is at group 58, block 1900546, offset 896
Journal starts at block 1, transaction 116
94
# ls -l /tmp/recover.gz
# ls -l /tmp/recover.gz8
-rw-r--r-- 1 root root 8192 Jan 17 12:26 /tmp/recov
er.gz
95
Concluses
Algumas vezes no possvel encontrar no disco as
evidncias necessrias para comprovar o caso de
invaso
As evidncias podem ter sido apagadas ou
sobrescritas
Mesmo assim, existem ferramentas para recuperar
estes dados
Aprendemos tambm um pouco mais sobre a
estrutura dos sistemas de arquivos do Linux, e
tambm como recuperar arquivos em um sistema com
journaling como o Ext3
Concluses
96
5
Sesso de aprendizagem 5
Recuperao e anlise de evidncias
Roteiro de atividades
Tpicos e conceitos
\\Procurar
internet.
minutos
98
6
Sesso de aprendizagem 6
Recuperao e anlise de evidncias
(parte 2)
Sumrio da sesso
Recuperao e anlise de evidncias. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Anlise de executveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
Anlise do cdigo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
Anlise de core dump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
Slack space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
Atividade 1 Anlise do contedo do arquivo. . . . . . . . . . . . . . . . . . . . . . . . . 114
Atividade 2 Busca de ferramentas na internet . . . . . . . . . . . . . . . . . . . . . . . 114
100
Aprenderemos a analisar evidncias em arquivos de core dump, a examinar arquivos binrios, e descobriremos como os invasores utilizam os espaos desperdiados no fim dos blocos de dados para ocultar evidncias.
Anlise de executveis
Anlise de executveis
Regras durante uma anlise de executveis:
Jamais execute o programa em sua estao forense; utilize
uma mquina separada e isolada exclusivamente para isso
A mquina de anlise no deve estar conectada na internet
Inicie a anlise com ferramentas mais simples, como file,
strings e ldd
Somente aps coletar todas as informaes possveis com
estas ferramentas que deve ser feita uma engenharia reversa
do cdigo
Em ltimo caso deve-se executar o programa em um ambiente
controlado e isolado da rede
Jamais confie em um programa suspeito
\\Inicie
\\A
\\Somente
\\Em
101
Anlise de executveis
Vamos usar como exemplo um arquivo que foi
encontrado em uma sesso anterior:
# find /mnt/image/ -anewer /mnt/image/dev/hdx1
-ls
...
92030 664 -rwxr-xr-x 1 root root 672527 Sep 4
2002 /mnt/image/usr/bin/smbd\ -D
...
92030 664 -rwxr-xr-x 1 root root 672527 Sep 4 2002
/mnt/image/usr/bin/smbd\ -D
Anlise de executveis
Arquivo suspeito criado no perodo da invaso:
# istat /data/compromised/compromised_hda1.img 92030
inode: 92030
uid / gid: 0 / 0
mode: -rwxr-xr-x
size: 672527
Accessed: Sun Aug 10 16:54:18 2003
File Modified: Wed Sep 4 00:54:10 2002
Inode Modified: Sun Aug 10 14:33:33 2003
Anlise de executveis
Comece a procurar pelas informaes mais fceis:
# file /mnt/image/usr/bin/smbd\ -D
/mnt/image/usr/bin/smbd -D: ELF 32-bit LSB executable,
Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0,
dynamically linked (uses shared libs), not stripped
# cp /mnt/image/usr/bin/smbd\ -D /data/compromised/smbd
D
# ldd /data/compromised/smbd\ -D
linux-gate.so.1 => (0xffffe000)
libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb7f42000)
libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7f14000)
libutil.so.1 => /lib/tls/libutil.so.1 (0xb7f0f000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7ddd000)
102
Anlise de executveis
Uma procura por strings dentro do executvel pode fornecer informaes
muito teis:
# strings -a /data/compromised/smbd D
/lib/ld-linux.so.2
libcrypt.so.1
/usr/include//iceconf.h
By-ICE_4_All ( Hackers Not Allowed! )
sshd version %.100s [%.100s]
Bind to port %d failed: %.200s.
Server listening on port %d.
Connection from %.100s port %d
SSH-%d.%d-%.50s
Your ssh version is too old and is no longer supported.
install a newer version.
+-[ User Login Incoming ]----------- --- --- - | username: %s password: %s%s hostname: %s
ROOT LOGIN as '%.100s' from %.100s
Please
/usr/include//icekey.h
/usr/include//iceseed.h
# strings -a /data/compromised/smbd D8
/lib/ld-linux.so.2
libcrypt.so.1
/usr/include//iceconf.h
By-ICE_4_All ( Hackers Not Allowed! )
sshd version %.100s [%.100s]
Bind to port %d failed: %.200s.
Server listening on port %d.
Connection from %.100s port %d
SSH-%d.%d-%.50s
Your ssh version is too old and is no longer suppor
ted. Please install a newer version.
+-[ User Login Incoming ]----------- --- --- - | username: %s password: %s%s hostname: %s
ROOT LOGIN as %.100s from %.100s
/usr/include//icekey.h
/usr/include//iceseed.h
As strings acima foram resumidas e mostram apenas algumas partes mais importantes.
Podemos ver referncias a arquivos dentro do diretrio /usr/include, e mensagens
sobre o autor da ferramenta. Tambm podemos ver que trata-se de um servidor
SSH, possivelmente modificado pelo hacker. Alm disso, vemos um texto que
parece ser parte de um log (user login incoming), possivelmente um log adicional
que a ferramenta gera alm do log normal do SSH. No fim, mais referncias a
arquivos no /usr/lib.
Anlise de executveis
Podemos ver indicaes de possveis arquivos para procurar
no disco:
# ls -li /mnt/image/usr/include/ice*
92015 -rw-r--r-- 1 root root 692 May 16 2003
/mnt/image/usr/include/iceconf.h
91850 -rw------- 1 root root 539 May 24 2002
/mnt/image/usr/include/icekey.h
3176 -rw-r--r-- 1 root root
5 Aug 10 2003
/mnt/image/usr/include/icepid.h
92007 -rw------- 1 root root 512 Aug 10 2003
/mnt/image/usr/include/iceseed.h
# file /mnt/image/usr/include/ice*
/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
16 2003 /mnt/i
24 2002 /mnt/i
2003 /mnt/imag
10 2003 /mnt/i
# 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
103
Examinando um dos arquivos de texto, vemos que realmente um arquivo de configurao de servidor SSH:
Anlise de executveis
Arquivo de configurao de servidor SSH:
# cat /mnt/image/usr/include/iceconf.h
# This is ssh server systemwide configuration file.
Port 2003
ListenAddress 0.0.0.0
HostKey /usr/include//icekey.h
RandomSeed /usr/include//iceseed.h
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 1
PermitRootLogin yes
# cat /mnt/image/usr/include/iceconf.h8
# This is ssh server systemwide configuration file.
Port 2003
ListenAddress 0.0.0.0
HostKey /usr/include//icekey.h
RandomSeed /usr/include//iceseed.h
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 1
PermitRootLogin yes
Um dos arquivos encontrados realmente uma configurao de servidor SSH. Podemos ver que a porta onde este servidor escuta
a 2003, uma porta que no comum. Seria interessante correlacionar este tipo
de informao com informaes de dispositivos de rede e firewall, para ver se
realmente ocorreu alguma atividade nesta porta.
Anlise de executveis
Chave privada do servidor com identificao do
usurio que a gerou:
# strings -a /mnt/image/usr/include/icekey.h
SSH PRIVATE KEY FILE FORMAT 1.1
"0w:
RXqU_C
root@lessons.menchey.com}
z>'|E
b9jH2
\=?0
;d-)
L=7~=
(e8
Quando um servidor SSH instalado, precisa de uma chave privativa para funcionar. 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.
104
Anlise do cdigo
Anlise do cdigo
Aps conseguir o mximo de informaes sobre o
programa, o analista realiza a engenharia reversa do
programa.
Realizar a engenharia reversa significa transformar o
cdigo de mquina novamente em cdigo-fonte, para
analisar as funes do programa.
Pode revelar funes obscuras do programa.
Este conhecimento pode ser til para evitar novas
invases ou para eliminar as que ainda existem.
Somente depois de conseguir o mximo de informaes possveis sobre o programa (lembre-se de usar
o Google), que o analista deve tentar realizar a
engenharia reversa do programa.
Anlise do cdigo
Diversas ferramentas fazem engenharia reversa de
cdigo:
OllyDBG
IDA Pro
Entre outras
LDasm:
Ferramenta escrita em Perl, com interface grfica para
Linux
No faz parte do CD do Helix
# /data/tools/LDasm0.04.53/bin/ldasm
105
Se realmente for necessrio, o investigador pode executar o programa em um ambiente controlado e isolado.
Anlise do cdigo
O investigador pode executar o programa em um
ambiente controlado e isolado.
O primeiro passo encontrar o ponto de incio do
programa:
# nm /data/compromised/smbd\ -D
08054ccc T MD5Final
08054be0 T MD5Init
...
08049b84 ? _init
Conecte a estao em um hub, switch ou cabo crossover para monitorar a atividade de rede. Mesmo
assim, execute o programa dentro de um depurador
de cdigo, como o GDB, OllyDBG ou IDA Pro.
O primeiro passo encontrar o ponto de incio do
programa:
# nm /data/compromised/smbd\ -D8
08054ccc T MD5Final
08054be0 T MD5Init
...
08049b84 ? _init
106
Anlise do cdigo
Executando o programa com o depurador:
# /data/tools/gdb/bin/gdb /data/compromised/smbd\ -D
(gdb) b * 0x08049b84
Breakpoint 1 at 0x8049b84
(gdb) run
Starting program: /data/compromised/smbd -D
Breakpoint 1, 0x08049b84 in _init ()
(gdb) stepi
0x08049b85 in _init ()
(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
107
108
Slack space
Slack space
A busca por arquivos deixados pelo invasor pode ser
demorada, exigindo pacincia e dedicao.
O que acontece quando a evidncia que procuramos
foi escondida intencionalmente, de forma que no seja
possvel encontr-la com as ferramentas que vimos
at agora?
Existem tcnicas para esconder a informao, atravs
das quais o dado escondido no pode ser identificado
mesmo que se tenha acesso ao arquivo onde est
armazenado.
Um exemplo a tcnica chamada de Esteganografia.
Slack space
Vimos que quando um arquivo tem um tamanho menor que o
tamanho do bloco, o espao restante desperdiado. Este
espao conhecido como slack space.
O slack space usado como tcnica para esconder
informao.
Os blocos de dados so as menores estruturas possveis em
um sistema de arquivos.
Bloco de dados
dados do arquivo
slack space
Slack space
dados do arquivo
slack space
109
Exemplo:
Slack space
# du -sb /data/dirt_list.txt8
Exemplo:
# du -sb /data/dirt_list.txt
60 /data/dirt_list.txt
# du -sk /data/dirt_list.txt
4 /data/dirt_list.txt
60 /data/dirt_list.txt
# du -sk /data/dirt_list.txt8
4 /data/dirt_list.txt
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.
possvel at mesmo utilizar todos os arquivos de um diretrio para armazenar
um dado, se este tiver um tamanho maior do que o que caberia em um nico
slack space de um bloco.
Vejamos alguns exemplos:
Slack space
4036
# cat /data/badfiles_hashs.sha1 | bmap --mode putsla
ck /data/dirt_list.txt8
stuffing block 1540604
file size was: 60
slack size: 4036
block size: 4096
# bmap --mode slack /data/dirt_list.txt8
getting from block 1540604
8bc99cf58caca6e4c1c5d8eca5c59ecc01d4cc9f /bin/chmod
44bb98736c677c1c86d4fc984e66002fff9fccf5 /bin/echo
110
Slack space
| hexdump -C
0a 74 74 79 6f 61 0a 74 74 79 6f
31 0a 68
64 78 32 0a 73 73 68 64
69 6f 6e
0a 42 61 73 68 20 76 65
| version.Bash
69 6f 6e
0a 42 61 73 68 20 76 65
| version.Bash
0a 5c 77
40 5c 77 0a 38 62 63 39
# ls -l /data/dirt_list.txt
-rw-r--r-- 1 root root 60 Jan
6 17:24 /data/dirt_list.txt
00000000 74 74 79 6f 70 0a
79 6f |ttyop.ttyoa.ttyo|
00000010 66 0a 68 64 78 31
68 64 |f.hdx1.hdx2.sshd|
00000020 20 76 65 72 73 69
76 65 | version.Bash ve|
00000020 20 76 65 72 73 69
76 65 | version.Bash ve|
00000030 72 73 69 6f 6e 0a
63 39 |rsion.\w@\w.8bc9|
74 74 79 6f 61 0a 74 74
0a 68 64 78 32 0a 73 73
6f 6e 0a 42 61 73 68 20
6f 6e 0a 42 61 73 68 20
5c 77 40 5c 77 0a 38 62
/data/tools
# ls -l /data/dirt_list.txt8
-rw-r--r-- 1 root root 60 Jan 6 17:24 /data/dirt_li
st.txt
# cat /data/compromised/smbd-D.core | slacker
--mode fill /data/tools8
# slacker --mode pour /data/tools > /tmp/test.dat8
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.
Normalmente, em um bloco sem informao escondida existiriam somente bytes
0x00 nestas posies ou restos de arquivos anteriores e dos buffers de gravao na
memria.
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.
O ltimo comando mostra como recuperar o arquivo deste diretrio. Como no
possvel saber onde a informao acaba, o comando acima vai ler o slack space de
todos os blocos no diretrio, mesmo que eles no tenham sido usados para gravar a
informao original; por isso, para recuperar o arquivo original necessrio saber o
tamanho total do arquivo, e separar esses bytes de dentro do arquivo /tmp/test.dat.
Slack space
Nenhuma ferramenta que verifique a integridade do
sistema vai acusar a presena destes dados.
Se o arquivo for apagado o bloco de dados pode ser
alocado em outro arquivo e a informao no slack
space pode ser sobrescrita.
O mesmo acontece se o arquivo que utilizamos para
armazenar a informao aumentar de tamanho.
Por isso, esta informao considerada voltil.
Existem ferramentas que permitem criar um sistema
de arquivos completo dentro do slack space de um
diretrio.
111
Concluses
Apenas recuperar arquivos apagados pode no ser suficiente
Em alguns casos, precisamos nos aprofundar nas provas, e
descobrir as funcionalidades de um executvel desconhecido
Podemos descobrir informaes sobre o programa com
ferramentas bsicas ou realizar uma anlise avanada, fazendo
a engenharia reversa do cdigo ou executando o programa em
ambiente controlado
A anlise do contedo de arquivos core dump pode fornecer
informaes sobre o invasor e a ferramenta
Precisamos procurar at mesmo onde nem imaginamos haver
informao, como no slack space dos blocos de disco
Concluses
Na prxima sesso reuniremos todas as evidncias
encontradas para correlacion-las em uma linha de
tempo. Com isso, vamos tentar descobrir como e
quando o ataque ocorreu e identificar o que foi feito
na mquina aps a invaso. Esta informao ser til
para que a empresa se proteja de ataques futuros.
112
6
Sesso de aprendizagem 6
Recuperao e anlise de evidncias
(parte 2)
Roteiro de atividades
Tpicos e conceitos
\\Investigao
minutos
114
7
Sesso de aprendizagem 7
Linha de tempo e reconstruo do ataque
Sumrio da sesso
Linha de tempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
Correlao de informaes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117
Reconstruo do ataque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121
Atividade 1 Determinando a linha do tempo. . . . . . . . . . . . . . . . . . . . . . . . . 122
Atividade 2 Identificando os eventos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 122
116
Linha de tempo
Linha de tempo
p
Obj ti
Objetivo
Criar um histrico das aes e eventos encontrados no sistema
comprometido de forma a identificar quando
comprometido,
q ando e como ocorreu
ocorre a
invaso, dando uma viso clara do ataque e dos mtodos
utilizados pelo invasor para invadir e tomar o controle do
sistema.
Problemas
Linha de tempo
p
Para criar
P
i uma linha
li h d
de ttempo, o analista
li t d
deve:
Descobrir quando a mquina foi instalada ou iniciada
Descobrir quando a mquina foi identificada como
invadida, e o horrio em qque comeou
a atividade de
anlise forense e de conteno do ataque
Obter informaes do momento em que a mquina foi
efetivamente desligada
Registrar informaes de tempo das evidncias
coletadas
Ferramentas
O analista deve utilizar as ferramentas para coletar informaes sobre as
evidncias encontradas:
#istat/data/compromised/compromised_hda1.img30578
inode:30578
Allocated
Group:2
uid/gid:0/0
mode:rwrr
i
228
size:228
numoflinks:1
InodeTimes:
Accessed:SunAug1016:26:182003
FileModified:WedAug612:09:172003
InodeModified:WedAug612:09:172003
DirectBlocks:
71142
Ferramentas
O analista deve utilizar as ferramentas vistas anteriormente para coletar informaes de tempo das
evidncias encontradas:
# istat /data/compromised/compromised_hda1.img 305788
inode: 30578
Allocated
Group: 2
uid / gid: 0 / 0
mode: -rw-r--r-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
117
Ferramentas
Algumas ferramentas podem facilitar o trabalho de coleta de informaes:
# fls -alrp -m / -z PDT
/data/compromised/compromised_hda1.img | mactime -g
/mnt/image/etc/group -p /mnt/image/etc/passwd >
/data/compromised/compromised_hda1.img
Sun Sep 25 1983 18:45:00
48856 m.. -/-rwxr-xr-x root
root
92017
/usr/bin/top
8268 m.. -/-rwx------ root
root
92010
/usr/bin/sl2
4060 m.. -/-rwxr-xr-x root
root
92009
/usr/bin/sense
Sun Aug 10 2003 14:33:19
36692 .a. -/-rwxr-xr-x root
root
92022
/bin/ls
8268 .a. -/-rwx------ root
root
92010
/usr/bin/sl2
2 .a. -/-rw-r--r-- root
root
92023
/usr/lib/libsss
Correlao de informaes
Correlao
de informaes
118
Correlao
de informaes
As evidncias
A
id i encontradas
t d d
devem ser correlacionadas
l i d
com as informaes de tempo fornecidas pelas
f
ferramentas
t fforenses:
SunAug10200316:30:300mac/ rootroot35804/dev/hdx1
0mac/ rootroot35833/dev/hdx2
SunAug10200316:30:525636ma./rwrr rootroot47169
/usr/lib/adore.o
Reconstruo
do ataque
q
Aps
A
encontrar
t e correlacionar
l i
iinformaes
f
dde ttempo
das evidncias coletadas, o analista deve tentar
reconstruir
t i as aes
executadas
t d pelos
l invasores,
i
desde o momento da invaso at o momento em que a
mquina
i ffoii llevada
d para anlise
li
A reconstruo do ataque deve tentar descobrir o
modo como o invasor obteve acesso ao sistema,
identificando possveis vulnerabilidades e ferramentas
utilizadas no ataque e no controle do sistema
Uma boa prtica criar uma tabela descrevendo os
eventos de acordo com a linha de tempo
Reconstruo
do ataque
q
Data
Ao / Evidncia
06/Ago/2003 11:16:40
06/Ago/2003 12:09:17
10/Ago/2003 13:24:29
10/Ago/2003 13:33:57
10/Ago/2003 14:33:19
10/Ago/2003 15:52:10
10/Ago/2003 16:30:30
10/Ago/2003 16:30:52
10/Ago/2003 20:30:39
Reconstruo do ataque
Logicamente, todas as informaes de conexo
remota devem ser correlacionadas a logs externos
ao servidor comprometido, para garantir a validade
dos mesmos. Outra forma de verificar informaes
e identificar evidncias utilizando mecanismos de
procura, como o Google.
Alm disso, todas as informaes de tempo devem ser
relativas ao mesmo timezone. Todas as ferramentas do
pacote forense analisado tm opes para mostrar as
informaes de datas em timezones diferentes.
Um bom relatrio de anlise forense deve ser composto
por uma reconstruo o mais detalhada possvel de tudo
que aconteceu na mquina, bem como uma anlise dos
mtodos e tcnicas utilizadas pelo invasor, inclusive com
possveis solues e tcnicas para proteo e deteco
deste tipo de ao no futuro.
119
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
Aprendemos
A
d
a organizar
i as evidncias
id i encontradas
t d
numa linha de tempo, identificando os momentos
chaves
h
d
da iinvaso
e o comprometimento
ti
t ddo servidor.
id
A linha de tempo uma ferramenta indispensvel para
analisar o sistema.
O objetivo
final da anlise forense e do relatrio de
j
reconstruo do ataque criar um documento que
possa ser utilizado p
p
pela empresa
p
como conhecimento
formalizado a partir dos erros e preveno contra
futuros ataques.
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.
120
7
Sesso de aprendizagem 7
Linha de tempo e reconstruo do ataque
Roteiro de atividades
Tpicos e conceitos
\\Identificar
minutos
122
8
Sesso de aprendizagem 8
Anlise forense em Windows
Sumrio da sesso
Anlise forense em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124
Sistema de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125
Kit de ferramentas forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126
Primeiras aes. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
Atividade 1 Coleta de evidncias em Windows. . . . . . . . . . . . . . . . . . . . . . . 134
Atividade 2 Classificando as ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . 134
Atividade 3 Busca de outras ferramentas para Windows. . . . . . . . . . . . . . . . 134
124
125
Sistema de arquivos
Sistema de arquivos
q
Si t
Sistema
d
de arquivos
i
NTFS
Padro no Windows XP e Vista
Windows Vista implementa o TxF em cima do NTFS
Verso atual: 3.1
Veremos ferramentas para NTFS,
NTFS mas a maioria funciona em FAT e
FAT32
Uma partio NTFS composta de diversas estruturas, sendo que a
principal a Master File Table (MFT)
Sistema de arquivos
q Windows so os seguintes: FAT (File Alocation Table),
Versopresente
atual: 3.1em um volume NTFS o Partition Boot Sector e
A primeira informao
Veremos
ferramentas
NTFS mas
NTFS,
maioriaOfunciona
FAT e
o primeiro arquivo do volume
NTFS para
o Master
FileaTable.
sistemaem
operacional
FAT32
reserva sempre 12% do tamanho do disco para armazenar o MFT, espao sempre
partio
contnuo a partir Uma
do incio
do NTFS
disco. composta de diversas estruturas, sendo que a
principal a Master File Table (MFT)
Sistema de arquivos
q
O MFT composto de 16 registros,
registros sendo que somente 12 so
utilizados atualmente:
$MFT Master File Table
$MftMirr Cpia de Master File Table
$LogFile Arquivo de registro de eventos do NTFS
$Volume Informaes sobre o volume
$AttrDef Definies de atributos
$ Diretrio
Di t i raiz
i do
d sistema
i t
$.
$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
126
Sistema de arquivos
q
Os arquivos so armazenados como uma srie de atributos,
atributos
equivalentes aos inodes no Linux:
Standard Information Inclui informaes como timestamps e nmero de links
Attribute List Lista a localizao de todos os atributos do arquivo
File Name Armazena o nome do arquivo
S
Security
it D
Descriptor
i t Informaes
I f
sobre
b o dono
d
do
d arquivo
i e permisses
i dde acesso
Data Armazena os dados do arquivo
Object ID Identificador nico de arquivo
Logged Tool Stream Registro de mudanas do metadado
Reparse Point Ponto de juno para diretrios e volumes
Index Root Usado para implementar ndice de arquivos e diretrios
Index Allocation Usado para implementar ndice de arquivos e diretrios
Index Bitmap Usado para implementar ndice em diretrios muito longos
Volume Information Contm a verso do volume
Volume Name Contm o nome do volume
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.
Para o processo de interao com sistema vivo recomendada a utilizao de
ferramentas de comando de linha, pois elas causam uma interferncia menor no
ambiente analisado. J para anlises em imagens e evidncias, pode-se utilizar
ferramentas com interface grfica, uma vez que esta etapa realizada na estao
de anlise forense.
127
\\Custo
\\Licenciamento
\\Cdigo-fonte
\\Portabilidade
Imager
g
IRCR
Microsoft
Net Latency
Nir Soft
NT
NT Security
PCtime
Perl
Putty
Sysinternals
y
System Tools
UnxUtils
Vista
WFT
WinDBG
Winfingerprint
XP
cmdenv1 bat
cmdenv1.bat
NC_Server.bat
\\2K
\\2K3
\\AgileRM
\\Bin
\\Cygwin
\\DiamondCS
\\FAU
\\Foundstone
\\FSP
\\ Hoverdesk
128
\\IRCR
\\Microsoft
98 e ME);
\\Net
\\Nir
\\NT
\\NT
\\PCtime
\\Perl
\\Putty
\\Sysinternals
\\System
\\UnxUtils
\\Vista
\\WFT
\\WinDBG
\\Winfingerprint
\\XP
\\cmdenv1.bat
\\NC_Server.bat
129
Primeiras aes
Primeiras aes
Primeiras aes:
Preservar evidncias
C l t evidncias
Coletar
id i mais
i volteis
lt i
Verificao externa do sistema:
N
Nmeros
de
d srie
i
Dispositivos conectados
E t d gerall ddo sistema
i t
Estado
Conectividade
Energia
Tela do sistema (console):
Fotografia
Print-screen (compromete a memria)
130
Eventualmente essa configurao pode no estar disponvel no sistema a ser analisado, razo pela qual devemos possuir mdias alternativas, como disco Firewire
ou at mesmo uma cpia do kit em disquetes.
cmd.exe
Primeiras aes
I
Imagem
d
da memria
i
Na estao forense:
D:\IR\xp>nc l p999>d:\tmp\physmem img
D:\IR\xp>nclp999>d:\tmp\physmem.img
Na mquina comprometida:
D:\IR\xp>ddif=\\.\Physicalmemoryconv=noerror|nc127.0.0.1999
CommandLine:ddif=\\.\Physicalmemoryconv=noerror
27/01/200823:12:59(UTC)
27/01/200821:12:59(localtime)
CurrentUser:COMPUTADOR\usuario
Totalphysicalmemoryreported:1047024KB
Copyingphysicalmemory...
y
y
g
Physicalmemoryintherange0x001000000x001ff000couldnotberead.
Stoppedreadingphysicalmemory:
27/01/200823:14:07(UTC)
27/01/200821:14:07(localtime)
261871+0recordsin
261871+0recordsout
131
Primeiras aes
Hora d
H
do sistema
i t
Necessrio conhecer horrio correto e timezone da
mquina
Garante a correlao
de evidncias com registros
g
externos
D:\IR\xp>date/t
dom27/01/2008
D:\IR\xp>time/t
21:41
Primeiras aes
Hora do sistema:
Hora do sistema
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.
Anlise forense em Windows
132
Primeiras aes
H d
Hora
do sistema
i t
D:\IR\xp>nettime\\computador
Currenttimeat\\computadoris1/27/20089:51PM
Thecommandcompletedsuccessfully.
Thecommandcompletedsuccessfully
D:\IR\xp>nettime\\computador/QUERYSNTP
ThecurrentSNTPvalueis:200.144.121.33,0x1
The command completed successfully.
Concluses
Vimos nessa sesso
Vi
os conceitos
it b
bsicos
i
dde anlise
li
forense em sistemas Windows
Algumas caractersticas do NTFS diferem das que vimos
at agora em ambientes Linux
Conhecemos as ferramentas do Live CD do Helix e
vimos como utilizar algumas
delas p
para coletar
g
evidncias em uma mquina comprometida
Concluses
Na prxima sesso vamos conhecer mais sobre as
ferramentas que permitem coletar informaes sobre
processos e conexes de rede, e sobre as estruturas prprias do Windows, como registro, usurios e
polticas de segurana.
8
Sesso de aprendizagem 8
Anlise forense em Windows
Roteiro de atividades
Tpicos e conceitos
\\Iniciando
minutos
134
9
Sesso de aprendizagem 9
Anlise forense avanada em Windows
Sumrio da sesso
Anlise forense avanada em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Coleta de informaes bsicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
Processos em execuo no sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140
Bibliotecas do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145
Informaes sobre arquivos abertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147
Servios em execuo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153
Atividade 1 Levantando informaes do sistema . . . . . . . . . . . . . . . . . . . . . 154
Atividade 2 Identificando processos comprometidos . . . . . . . . . . . . . . . . . . 154
Atividade 3 Novas ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154
136
\\O
\\Caso
\\Pornografia;
\\Fraude;
\\Presena
\\Utilizao
0 users,
D:\IR\xp> hostname
Computador
D:\IR\xp> whoami
Usuario
137
138
00000000:00018df7:
COMPUTADOR\Usuario
NTLM
Interactive
0
S-1-5-21-4042056708-2335835806-
\\Sem
\\De
interatividade;
\\Remotos.
29/1/2008 14:40:08
COMPUTADOR
ASPNET
HelpAssistant
\\COMPUTADOR
Administrator
Guest
SUPPORT_12312331
ASPNET
HelpAssistant
139
512
4096
1024
0
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 algumas informaes bsicas sobre o disco.
Veja no slide informaes importantes sobre a estrutura de arquivos no disco
especificado no comando: confira especialmente as informaes sobre o MFT.
D:\IR\xp> mem8
655360
655360
598160
1048576
0
941056
MS-DOS
D:\IR\xp> psinfo8
System information for \\COMPUTADOR:
Uptime: 0 days 4 hours 56 minutes 29 seconds
Kernel version: Microsoft Windows XP, Uniprocessor
Free
Product type: Professional
Product version: 5.1
Service pack: 2
Kernel build number: 2600
Registered organization:
Registered owner: Usuario
Install date: 18/10/2005, 19:19:17
Activation status: Error reading status
IE version: 7.0000
System root: C:\WINDOWS
Physical memory: 1022 MB
140
D:\IR\xp> ps -a -W
PID
PPID
PGID
WINPID TTY
4
0
0
4
?
unknown ***
944
0
0
944
?
\SystemRoot\System32\smss.exe
1068
0
0
1068
?
\??\C:\WINDOWS\system32\winlogon.exe
1112
0
0
1112
?
C:\WINDOWS\system32\services.exe
1124
0
0
1124
?
C:\WINDOWS\system32\lsass.exe
1272
0
0
1272
?
C:\WINDOWS\system32\Ati2evxx.exe
1284
0
0
1284
?
C:\WINDOWS\system32\svchost.exe
UID
STIME COMMAND
0 16:24:48 ***
0 14:39:48
0 14:39:58
0 14:39:58
0 14:39:58
0 14:39:59
0 14:39:59
141
Descrio
Alg.exe
Sim
csrss.exe
No
explorer.exe
Interface do usurio.
Sim
internet.exe
Sim
No
mstask.exe
No
smss.exe
lsass.exe
No
spoolsv.exe
No
svchost.exe
Generic Service Process, atua como host para outros processos executados por
dlls; normalmente existe em mais de uma instncia. utilizado tambm para
executar servios de rede.
No
services.exe
No
system
No
system idle
process
No
taskmgr.exe
Gerenciador de tarefas
Sim
winlogon.exe
No
\\csrss.exe
\\explorer.exe
\\internet.exe
\\lsass.exe
\\mstask.exe
de tarefas).
\\smss.exe
\\spoolsv.exe
\\svchost.exe
\\services.exe
142
\\system
\\taskmgr.exe
de tarefas).
\\winlogon.exe
Priv
0
0
168
2004
6388
1996
5868
796
3384
CPU Time
5:22:42.671
0:01:50.234
0:00:00.015
0:00:53.640
0:00:00.937
0:00:10.515
0:00:05.187
0:00:00.343
0:00:00.203
Elapsed Time
0:00:00.000
0:00:00.000
6:18:01.531
6:17:55.000
6:17:52.234
6:17:52.046
6:17:52.031
6:17:51.218
6:17:51.203
143
D:\IR\xp> ..\diamondcs\cmdline.exe8
DiamondCS Commandline Retrieval Tool for Windows NT
4/2K/XP
944 - \SystemRoot\System32\smss.exe <Error> Unable t
o read memory from PID 944
1040 - \??\C:\WINDOWS\system32\csrss.exe
C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Wind
ows SharedSection=1024,3072,512 Windows=On SubSyste
mType=Windows ServerDll=basesrv,1 ServerDll=winsrv:
UserServerDllInitialization,3 ServerDll=winsrv:ConS
erverDllInitialization,2 ProfileControl=Off MaxReque
stThreads=16
1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogo
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
144
145
Bibliotecas do sistema
Bibliotecas do sistema
Windows utiliza bibliotecas compartilhadas,
conhecidas como Dinamic Link Library (DLL)
Normalmente ficam armazenadas no diretrio
C:\WINDOWS\SYSTEM32
Pode ser um problema quando bibliotecas
comprometidas so utilizadas para modificar a forma
de funcionamento de um processo, comprometendo o
sistema
Um exemplo desse tipo de ataque a injeo de cdigo
no Internet Explorer, atravs da explorao de alguma
falha do programa
Windows utiliza bibliotecas compartilhadas, conhecidas como Dinamic Link Library (DLL). Elas normalmente ficam armazenadas no diretrio C:\WINDOWS\
SYSTEM32, mas os processos podem retir-las do
diretrio corrente se elas estiverem nele.
Pode ser um problema quando bibliotecas comprometidas so utilizadas para modificar a forma de
funcionamento de um processo, comprometendo o
sistema. Um exemplo desse tipo de ataque a injeo de cdigo no Internet Explorer, atravs da explorao de alguma falha do programa. Com isso, o hacker consegue comprometer
o sistema sem modificar ou executar nenhum binrio estranho.
D:\IR\xp> listdlls wordpad8
Bibliotecas do sistema
D:\IR\xp> listdlls wordpad
wordpad.exe pid: 676
Command line: "C:\Program Files\Windows NT\Accessories\wordpad.exe"
Base
Size
Version
Path
0x01000000 0x37000
5.01.2600.2180 C:\Program Files\Windows
NT\Accessories\wordpad.exe
0x7c900000 0xb0000
5.01.2600.2180 C:\WINDOWS\system32\ntdll.dll
0x7c800000 0xf5000
5.01.2600.3119 C:\WINDOWS\system32\kernel32.dll
0x5f800000 0xf2000
6.02.8071.0000 C:\WINDOWS\system32\MFC42u.DLL
0x77c10000 0x58000
7.00.2600.2180 C:\WINDOWS\system32\msvcrt.dll
0x77f10000 0x47000
5.01.2600.3159 C:\WINDOWS\system32\GDI32.dll
0x7e410000 0x90000
5.01.2600.3099 C:\WINDOWS\system32\USER32.dll
Bibliotecas do sistema
D:\IR\xp> ..\winfingerprint\procinterrogate -pid 676
ProcInterrogate Version 0.0.1 by Kirby Kuehl vacuum@users.sourceforge.net
wordpad.exe (Process ID: 676)
Entry Point Base
Size
Module
0x01019B4D
0x01000000 00037000
C:\Program Files\Windows
NT\Accessories\wordpad.exe
0x7C913156
0x7C900000 000B0000
C:\WINDOWS\system32\ntdll.dll
0x7C80B5AE
0x7C800000 000F5000
C:\WINDOWS\system32\kernel32.dll
0x5F806A61
0x5F800000 000F2000
C:\WINDOWS\system32\MFC42u.DLL
0x77C1F2A1
0x77C10000 00058000
C:\WINDOWS\system32\msvcrt.dll
0x77F16597
0x77F10000 00047000
C:\WINDOWS\system32\GDI32.dll
0x7E42E966
0x7E410000 00090000
C:\WINDOWS\system32\USER32.dll
0x77DD70D4
0x77DD0000 0009B000
C:\WINDOWS\system32\ADVAPI32.dll
146
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.
147
Arquivos abertos
D:\IR\xp> handle -a -u wordpad
csrss.exe
pid: 1040
NT AUTHORITY\SYSTEM
730: wordpad.exe(676): 1684
csrss.exe
pid: 1040
NT AUTHORITY\SYSTEM
8A0: wordpad.exe(676): 3428
csrss.exe
pid: 1040
NT AUTHORITY\SYSTEM
AD0: wordpad.exe(676)
lsass.exe
pid: 1124
NT AUTHORITY\SYSTEM
69C: wordpad.exe(676)
svchost.exe
pid: 1576
NT AUTHORITY\SYSTEM
1390: wordpad.exe(676)
cmdagent.exe pid: 380
NT AUTHORITY\SYSTEM
4DC: wordpad.exe(676)
wordpad.exe
pid: 676
COMPUTADOR\Usuario
60:
HKCU\Software\Microsoft\Windows\ CurrentVersion\Applets\Wordpad
wordpad.exe
pid: 676
COMPUTADOR\Usuario
84: wordpad.exe(676): 2812
wordpad.exe
pid: 676
COMPUTADOR\Usuario
14C: wordpad.exe(676): 1684
wordpad.exe
pid: 676
COMPUTADOR\usuario
168: wordpad.exe(676): 3428
Outra informao importante sobre os processos, alm das bibliotecas que eles
utilizam, relativa aos arquivos que eles mantm abertos. Um processo desconhecido 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.
Podemos ver no slide todos os arquivos abertos e os processos que controlam,
alm de chaves de registro e do usurio que iniciou o processo.
148
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 so programas iniciados pelo sistema
operacional
Funes:
Oferecer algum tipo de servio aos usurios
Controlar algum tipo de acesso aos dispositivos
conectados
Por exemplo, o compartilhamento de arquivos em rede
controlado pelo servio Servidor e as conexes
com uma cmera digital ou celular so feitas pelos
respectivos servios instalados pelos drivers de
dispositivo
Servios em execuo
Podemos utilizar a prpria ferramenta do Windows
para listar os servios iniciados. O problema desta
ferramenta que ela no lista mais nenhuma
informao sobre os servios, e isto pode no ser
suficiente para identificar um possvel servio falso
instalado por um invasor.
Servios em execuo
D:\IR\xp> net start
These Windows services are started:
Ad-Aware 2007 Service
Adobe LM Service
Application Layer Gateway Service
Ati HotKey Poller
Automatic Updates
avast! Antivirus
avast! iAVS4 Control Service
Background Intelligent Transfer Service
Servios em execuo
D:\IR\xp> servicelist \\COMPUTADOR
ServiceList v1.0 Copyright 1999 www.NetLatency.com
Service Name
Stats
Alerter
Display Name:
Alerter
State:
Stopped
Type:
Windows Shared Process
Controls: UNKNOWN #0
ALG
Display Name:
Application Layer Gateway Service
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
Podemos ver no slide os servios e comandos aceitos por COMPUTADOR. possvel controlar o estado
de um servio com um dos comandos abaixo:
\\net
start <servio>
\\net
stop <servio>
149
Servios em execuo
D:\IR\xp> psservice /?
PsService lists or controls services on a local or remote system.
Usage: psservice [\\Computer [-u Username [-p Password]]] <cmd> <optns>
Cmd is one of the following:
query
Queries the status of a service
config
Queries the configuration
setconfig Sets the configuration
start
Starts a service
stop
Stops a service
restart
Stops and then restarts a service
pause
Pauses a service
cont
Continues a paused service
depend
Enumerates the services that depend on the one specified
find
Searches for an instance of a service on the network
security
Reports the security permissions assigned to a service
Servios em execuo
Inicializao do sistema
Diversas configuraes do Windows permitem iniciar
programas junto com o sistema
O registro um conjunto de configuraes do sistema
Alguns programas podem ser iniciados antes de
qualquer antivrus ou firewall
Servios em execuo
D:\IR\xp> reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run
Listing of [Software\Microsoft\Windows\CurrentVersion\\Run]
REG_SZ
SynTPLpr
C:\Program
Files\Synaptics\SynTP\SynTPLpr.exe
REG_SZ
SynTPEnh
C:\Program
Files\Synaptics\SynTP\SynTPEnh.exe
REG_SZ
eabconfg.cpl
C:\Program Files\HPQ\Quick Launch
Buttons\EabServr.exe /Start
REG_SZ
DAEMON Tools-1033
"C:\Program Files\DTools\daemon.exe" -lang 1033
REG_SZ
Broadcom Wireless Manager UI
C:\WINDOWS\system32\bcmntray
REG_SZ
Windows Defender
"C:\Program Files\Windows
Defender\MSASCui.exe" -hide
REG_SZ
COMODO Firewall Pro
"C:\Program
Files\Comodo\Firewall\CPF.exe" /background
REG_SZ
avast! C:\PROGRA~1\ALWILS~1\Avast4\ashDisp.exe
Listing of [Software\Microsoft\Windows\CurrentVersi
on\\Run]
REG_SZ SynTPLpr C:\Program Files\Synaptics\SynTP\Sy
nTPLpr.exe
REG_SZ SynTPEnh C:\Program Files\Synaptics\SynTP\Sy
nTPEnh.exe
REG_SZ eabconfg.cpl C:\Program Files\HPQ\Quick Laun
ch Buttons\EabServr.exe /Start
REG_SZ DAEMON Tools-1033 C:\Program Files\D-Tools\
daemon.exe -lang 1033
REG_SZ Broadcom Wireless Manager UI C:\WINDOWS\syst
em32\bcmntray
REG_SZ Windows Defender C:\Program Files\Windows D
efender\MSASCui.exe -hide
REG_SZ COMODO Firewall Pro C:\Program Files\Comodo
\Firewall\CPF.exe /background
REG_SZ avast! C:\PROGRA~1\ALWILS~1\Avast4\ashDisp.exe
Uma das chaves do registro que permitem a execuo de processos na inicializao do sistema a chave HKLM\Software\Microsoft\Windows\CurrentVersion\
Run. Podemos descobrir quais programas so iniciados automaticamente com o
comando expresso no slide.
Anlise forense avanada em Windows
150
Servios em execuo
D:\IR\xp> autorunsc
Autoruns v8.61 - Autostart program viewer
HKLM\System\CurrentControlSet\Control\Terminal
Server\Wds\rdpwd\StartupPrograms
rdpclip
RDP Clip Monitor
Microsoft Corporation
c:\windows\system32\rdpclip.exe
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
C:\WINDOWS\system32\userinit.exe
Userinit Logon Application
Microsoft Corporation
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 programas que esto iniciando automaticamente.
151
Servios em execuo
D:\IR\xp> schtasks
TaskName
Next Run Time
====================================
AppleSoftwareUpdate 09:42:00, 4/2/2008
MP Scheduled Scan
01:36:00, 30/1/2008
Status
Concluses
Existem muitas informaes que devem ser coletadas em
um sistema comprometido
Vimos como coletar informaes bsicas sobre o
sistema, e tambm como listar e identificar os processos
em execuo na mquina
As bibliotecas carregadas pelos processos e os arquivos
abertos so importantes fontes de informao para
auxiliar a investigao
A execuo automtica de programas uma informao
que tambm deve ser coletada
Finalmente, a ltima forma que estudaremos de checar processos que podem ser executados automaticamente a verificao dos processos agendados.
O agendamento de tarefas permite definir uma data
e hora para a execuo de um programa. Para listar
os agendamentos existentes, podemos usar a ferramenta schtasks.exe.
Concluses
Na prxima sesso vamos conhecer as ferramentas
que podem ser usadas para coletar informaes
sobre conexes de rede, alm de conhecer mais
sobre algumas caractersticas de sistemas Windows,
como arquivos em Alternate Data Streams, logs
de eventos e o registro do sistema, alm de ferramentas para investigar histricos de navegao na
internet e de recuperao de senhas.
152
9
Sesso de aprendizagem 9
Anlise forense avanada em Windows
Roteiro de atividades
Tpicos e conceitos
\\Identificar
minutos
154
10
Sesso de aprendizagem 10
Anlise forense avanada em Windows
(parte 2)
Sumrio da sesso
Coleta de informaes de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156
Coleta de informaes em registros do Windows. . . . . . . . . . . . . . . . . . . . . . 160
Coleta de registros de eventos (logs). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164
Anlise de contedo do Recycle.Bin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
Anlise de contedo do Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Anlise de contedo de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
Recuperao de dados ocultos ADS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170
Anlise do histrico de navegao. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172
Recuperao de senhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174
Concluses . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175
Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
Atividade 1 Coleta de informaes de redes . . . . . . . . . . . . . . . . . . . . . . . . 178
Atividade 2 Coleta de informaes em registros do Windows. . . . . . . . . . . . 178
Atividade 3 Anlise de contedo do Recycle.Bin. . . . . . . . . . . . . . . . . . . . . . 178
Atividade 4 Recuperao de dados ocultos ADS . . . . . . . . . . . . . . . . . . . . . 178
Atividade 5 Anlise do histrico de navegao. . . . . . . . . . . . . . . . . . . . . . . 178
Atividade 6 Recuperao de senhas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
156
Windows IP Configuration
Host Name . . . . . . . . . . . . : COMPUTADOR
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : provedor.com.br
Ethernet adapter Wireless Network Connection 2:
Connection-specific DNS Suffix . : provedor.com.br
Description . . . . . . . . . . . : Broadcom 802.11b/g WLAN
Physical Address. . . . . . . . . : 00-90-4B-EA-0F-F3
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
IP Address. . . . . . . . . . . . : 192.168.0.194
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 192.168.0.1
DHCP Server . . . . . . . . . . . : 192.168.0.1
DNS Servers . . . . . . . . . . . : 192.168.0.10
192.168.0.1
Lease Obtained. . . . . . . . . . : quarta-feira, 30 de janeiro de 2008
16:42:06
Lease Expires . . . . . . . . . . : quarta-feira, 6 de fevereiro de
2008 16:42:06
COMPUTADOR
Hybrid
No
No
provedor.com.br
Connection 2:
provedor.com.br
Broadcom 802.11
00-90-4B-EA-0F-F3
Yes
Yes
192.168.0.194
255.255.255.0
: 192.168.0.1
: 192.168.0.1
: 192.168.0.10
192.168.0.1
Lease Obtained. . . . . . . . . . : quarta-feira,
30 de janeiro de
2008 16:42:06
Lease Expires . . . . . . . . . . : quarta-feira, 6
de fevereiro de
2008 16:42:06
D:\IR\xp> iplist8
DiamondCS IP Enumerator v1.0 (www.diamondcs.com.au)
# ADDRESS
BROADCAST
NETMASK
-1040144192
192.168.0.194
255.255.255.255 255.2
55.255.0
16777343
127.0.0.1
255.255.255.255 255.0
.0.0
19900608
192.168.47.1
255.255.255.255 255.2
55.255.0
3 interfaces found.
157
Foreign Address
0.0.0.0:0
0.0.0.0:0
127.0.0.1:1097
127.0.0.1:1096
0.0.0.0:0
64.233.171.104:80
66.249.83.19:443
*:*
*:*
State
LISTENING
LISTENING
ESTABLISHED
ESTABLISHED
LISTENING
LAST_ACK
CLOSE_WAIT
Conexes de rede
ESTABLISHED
for help)
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
0.0.0.0:0
207.46.109.93:1863
0.0.0.0:0
0.0.0.0:0
127.0.0.1:1102
127.0.0.1:1101
66.249.83.83:443
127.0.0.1:1096
127.0.0.1:1097
66.249.83.19:443
LISTENING
LISTENING
LISTENING svchost.exe [380]
LISTENING MsnMsgr.Exe [884]
ESTABLISHED
LISTENING wmplayer.exe [984]
LISTENING lsass.exe [1144]
ESTABLISHED
ESTABLISHED
CLOSE_WAIT
ESTABLISHED
ESTABLISHED
ESTABLISHED
Active Connections
TCP 127.0.0.1:1097 127.0.0.1:1096 ESTABLISHED 2512
C:\WINDOWS\system32\mswsock.dll
C:\WINDOWS\system32\WS2_32.dll
C:\Program Files\Mozilla Firefox\nspr4.dll
C:\Program Files\Mozilla Firefox\xpcom_core.dll
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\xpcom_core.dll
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\xpcom_core.dll
-- unknown component(s) -[firefox.exe]
...
Esta uma informao importante, pois permite detectar a presena de processos estranhos que estejam interceptando a criao de conexes e, com isso,
capazes de capturar informaes confidenciais.
D:\IR\xp> openports8
DiamondCS OpenPorts v1.0 (-? for help)
SYSTEM [4]
TCP 0.0.0.0:445
0.0.0.0:0
LISTENING
158
192.168.47.1:138
0.0.0.0:0
LISTENING
0.0.0.0:445
0.0.0.0:0
LISTENING svchost.exe [380]
192.168.0.194:1900 0.0.0.0:0
LISTENING MsnMsgr.Exe [884]
192.168.0.194:1074 207.46.109.93:1863 ESTABLISHED
192.168.0.194:46759
0.0.0.0:0
LISTENING wmplayer.exe [984]
127.0.0.1:2617
0.0.0.0:0
LISTENING lsass.exe [1144]
127.0.0.1:1101
127.0.0.1:1102
ESTABLISHED
127.0.0.1:1102
127.0.0.1:1101
ESTABLISHED
192.168.0.194:2670
66.249.83.83:443
CLOSE_WAIT
127.0.0.1:1097
127.0.0.1:1096
ESTABLISHED
127.0.0.1:1096
127.0.0.1:1097
ESTABLISHED
192.168.0.194:2668
66.249.83.19:443
ESTABLISHED
Port Mapper
Proto Path
TCP
TCP
TCP
TCP
TCP
C:\Program Files\MSN
TCP
C:\Program Files\Mozilla
TCP
C:\Program Files\Mozilla
TCP
C:\Program Files\Mozilla
D:\IR\xp> fport8
FPort v2.0 - TCP/IP Process
Pid
Process
Port
1364
-> 135
4
System
-> 139
4
System
-> 445
2156
-> 1025
884
MsnMsgr
-> 1074
\MSN Messenger\MsnMsgr.Exe
2512 firefox
-> 1096
\Mozilla Firefox\firefox.exe
2512 firefox
-> 1097
\Mozilla Firefox\firefox.exe
2512 firefox
-> 1101
\Mozilla Firefox\firefox.exe
...
to Port Mapper
Proto Path
TCP
TCP
TCP
TCP
TCP
C:\Program Files
TCP
C:\Program Files
TCP
C:\Program Files
TCP
C:\Program Files
159
Alm das ferramentas de comando de linha estudadas, ainda existem duas ferramentas com interface grfica que podem ser utilizadas para coletar informaes
sobre conexes de rede.
Uma delas j foi vista na sesso passada: trata-se da ferramenta procexp.exe.
Ela permite visualizar propriedades sobre um processo em execuo; entre estas
propriedades esto as conexes de rede utilizadas pelo processo.
Outra ferramenta que tambm permite visualizar este tipo de informao chamada cports.exe. Ela contm muitas informaes interessantes sobre os processos que esto mantendo conexes abertas. Execute a ferramenta em sua estao
e examine as colunas de informao para cada processo.
D:\IR\xp> promiscdetect8
Adapter name:
- Broadcom 802.11b/g WLAN
Active filter for the adapter:
- Directed (capture packets directed to this comput
er)
- Multicast (capture multicast packets for groups t
he computer is a member of)
- Broadcast (capture broadcast packets)
- Promiscuous (capture all packets on the network)
WARNING: Since this adapter is in promiscuous mode
there could be a sniffer running on this computer!
Adapter name:
- 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.
Para detectar a presena de alguma interface de rede em modo promscuo, existe
uma ferramenta no kit chamada promiscdetect.exe.
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 comprometimento da mquina.
160
Funo
DEFAULT
SAM
SECURITY
SOFTWARE
SYSTEM
\\SAM
\\SECURITY
Armazena informaes de
segurana.
\\SOFTWARE
\\SYSTEM
161
HKEY_CLASSES_ROOT
REG_DWORD
REG_EXPAND_SZ
REG_MULTI_SZ
REG_SZ
REG_RESOURCE_LIST
REG_RESOURCE_REQUIREMENTS_LIST
REG_FULL_RESOURCE_DESCRIPTOR
REG_NONE
REG_LINK
REG_QWORD
\\REG_DWORD
\\REG_EXPAND_SZ
\\REG_MULTI_SZ
\\REG_SZ
\\REG_RESOURCE_LIST
\\REG_RESOURCE_REQUIREMENTS_LIST
162
\\REG_NONE
\\REG_QWORD
Cpia do registro:
D:\IR\xp> regdmp > d:\tmp\registry.txt8
D:\IR\xp> reg query HKCU\Software /s > d:\tmp\regis
try_HKCU.txt8
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 consideradas importantes para o processo de coleta de informaes. Podemos realizar
consultas a chaves especficas ou a um diretrio inteiro dentro do registro.
163
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 modificaes recentes no registro, causadas por algum vrus ou ferramenta de rootkit.
Uma forma adicional de realizar a cpia do registro utilizando o aplicativo dumpreg.exe. Esta ferramenta permite realizar a cpia das seguintes chaves de registro:
\\HKEY_LOCAL_MACHINE
\\HKEY_USERS
\\HKEY_CURRENT_USER
164
Uma funcionalidade permite navegar nos dados ordenados por tempo, o que
possibilita verificar mais facilmente em um determinado momento as chaves que
foram modificadas.
Security
Contm os registros de segurana relacionados com
tentativas de acesso ao terminal do sistema e violao de
privilgios.
System
Contm os registros relacionados com o sistema e hardware;
se um servio no for inicializado corretamente ser gerado
um alerta.
\\File
\\DNS
Outros processos do sistema podem criar arquivos de logs especficos, tal como
ferramentas de antivrus ou firewall.
165
Registro de eventos:
D:\IR\xp> psloglist8
Registro de eventos
D:\IR\xp> psloglist
System log on \\COMPUTADOR:
[494907] WinDefend
Type:
INFORMATION
Computer: COMPUTADOR
Time:
30/1/2008 20:03:49
ID:
2000
Windows Defender signature version has been updated.
Current Signature Version: 1.24.6025.0
Previous Signature Version: 1.24.5865.0
Update Source: User
Signature Type: AntiSpyware
Update Type: Delta
User: COMPUTADOR\Usuario
Current Engine Version: 1.1.3109.0
Previous Engine Version: 1.1.3109.0
Registro de eventos:
D:\IR\xp> ..\2k\res_kit\dumpel /?8
Registro de eventos
D:\IR\xp> ..\2k\res_kit\dumpel /?
DUMPEL Usage:
dumpel -f file [-s \\server] [-l log [-m source]] [-e n1 n2 n3..] [-r] [-t] [dx]
-d <days> Filters for event last days (number larger than zero)
-e nn
Filters for event id nn (up to 10 may be specified)
-f <filename> Output filename (default stdout)
-l <name> Dumps the specified log (system, application, security)
-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 too)
-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.
DUMPEL Usage:
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
er than zero)
-e nn Filters for event id nn (up to 10 may be spe
cified)
-f <filename> Output filename (default stdout)
-l <name> Dumps the specified log (system, applicat
ion, security)
-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.
166
Registro de eventos:
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 Somarsoft, Inc.
LogType=Application
Computer=(local)
SystemRoot=C:\WINDOWS
Outfile=\tmp\evtdump.txt
Use HKEY_CURRENT_USER for saving record number
Format=yes
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 visualizao 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 atualizaes do Windows, alm de informaes gerais sobre o sistema.
167
Dentro do subdiretrio representado pelo SID existem sempre dois arquivos: desktop.ini e INFO2.
Quando um arquivo apagado atravs do Windows Explorer, ele movido para o
diretrio RECYCLER com um nome diferente do original. Por exemplo, o arquivo
teste.txt quando apagado se transforma em Dc1.txt, ou seja, o arquivo removido
tem origem no drive C, e o primeiro arquivo removido, com extenso .txt.
00:05
14:50
14:42
22:10
389 Dc1
83 Dc2.txt
65 desktop.ini
1.620 INFO2
Recycle.Bin
Name is Usuario
Domain is COMPUTADOR
Type of SID is SidTypeUser
DELETED TIME
DRIVE NUMBER
Tue Jan 29 20:21:58 2008
Thu Jan 31 00:10:42 2008
PATH
2
2
SIZE
C:\s9k 4096
C:\dump.txt
4096
SIZE
C:\s9k
168
D:\IR\xp> pclip
Informacoes de cartao de credito:
1234-1234-1234-1111
1234-1234-1234-1113
1234-1234-1234-1112
169
Searching...
c:\windows\system32\XPSViewer\en-us
Finished
D:\IR\xp> file -m ..\Cygwin\magic
c:\WINDOWS\NOTEPAD.EXE8
c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable (EXE), OS
/2 or MS Windows
170
Veja que este comando produz informaes importantes sobre um arquivo, principalmente sobre permisses de segurana e streams alternativos.
Ocultao de dados:
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp
\file.txt8
Ocultao de dados:
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp\file.txt
D:\IR\xp> dir d:\tmp\file.txt
31/01/2008 00:40
30 file.txt
30 file.txt
00:40
30 file.txt
00:40
30 file.txt
Ocultao de dados:
D:\IR\xp> type c:\windows\notepad.exe >
d:\tmp\file.txt:np.exe
D:\IR\xp> start d:\tmp\file.txt:np.exe
D:\IR\xp> dir d:\tmp\file.txt
31/01/2008 00:43
30 file.txt
171
Ocultao de dados:
D:\IR\xp> ads d:\tmp8
Ocultao de dados:
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:
:adsdata.txt:$DATA 23
:np.exe:$DATA 69120
D:\IR\xp> sfind d:\tmp8
Searching...
d:\tmp
teste.txt:adsdata.txt Size: 23
teste.txt:np.exe Size: 69120
Finished
172
Histrico de navegao:
Histrico de navegao
D:\IR\xp> pasco -d "c:\Documents and Settings\Usuario\Cookies\index.dat
VARIABLE VALUE
CREATION TIME
EXPIRE TIME
FLAGS
.google.com
TRUE
/
FALSE
1262741102
PREF
ID=66ce23137a6d713d:FF=
4:LD=en:NR=10:TM=1153453246:LM=1199669113:DV=AA:GM=1:IG=3:S=61TCN1UHJwM
0IeCa
il.google.com
FALSE
/mail
FALSE
1348445213
gmailchat
60644
.google.com
TRUE
/mail/ FALSE
1262402786
__utmx
173272373.
Thu Jan 1 00:00:00 1970
Thu Jan 1 00:00:00
1970
.google.com
TRUE
/FALSE 1506634851
rememberme
true
Os histricos de navegao web e cookies armazenados podem fornecer informaes importantes sobre o
mau uso do sistema. Eles informam, por exemplo, se
um usurio visitou algum site no permitido ou capaz
de infectar a mquina com algum programa malicioso.
Sendo assim, importante para o investigador
coletar e analisar esse tipo de informao. Esta
ferramenta permite listar o contedo do arquivo de
cookies do Internet Explorer, o que pode ser importante para identificar spywares ou acessos a sites
imprprios.
CREATION TIME
EXPIRE TIME
FLAGS
.google.com TRUE
/
FALSE 1262741102
PREF
ID=66ce23137a6d713d:FF=
4:LD=en:NR=10:TM=1153453246:LM=1199669113:DV=AA:GM=1:IG=3:S=61TCN1UHJwM0IeCa v
il.google.com
FALSE /mail FALSE 1348445213
gmailchat
60644
.google.com
TRUE
/mail/ FALSE 1262402786
__utmx v
173272373. Thu Jan 1 00:00:00 1970 Thu Jan 1 00:00:00 1970
.google.com TRUE
/FALSE 1506634851
rememberme
true
173
Como podemos observar nos exemplos do slide, as sadas de ambas as ferramentas utilizam um formato parecido, com campos separados por TAB, o que
facilita a insero destes dados em uma tabela ou base de dados.
No slide podemos observar os cookies, com respectivas datas de criao, modificao e acesso, e os valores correspondentes.
Anlise
do histrico de navegao
Usando a ferramenta MozillaCookiesView ,observamos que os valores so mostrados nas colunas, junto com outras informaes sobre cada cookie.
174
Recuperao de senhas
Recuperao de senhas
Ferramentas do kit para recuperao de senhas de
diversos servios do Windows e de aplicativos
instalados.
As ferramentas expem informaes privativas dos
usurios do computador, que podem no fazer parte da
investigao.
Por isso, o investigador deve ter conscincia da
importncia de manter estas informaes sob sigilo, e
no utiliz-las para qualquer finalidade que no seja uma
ao direta da investigao.
O computador em uso no deve utilizar senhas
pessoais.
175
\\accesspv.exe
Recuperao de senhas
\\lsasecretsview.exe
accesspv.exe
lsasecretsview.exe
mailpv.exe
mspass.exe
netpass.exe
pspv.exe
pstpassword.exe
rdpv.exe
wirelesskeyview.exe
\\mailpv.exe
\\mspass.exe
\\netpass.exe
\\pspv.exe
\\pstpassword.exe
\\rdpv.exe
\\wirelesskeyview.exe
Concluses
Concluses
Conhecemos ferramentas e tcnicas para coleta de
informaes importantes em sistemas Windows.
Aprendemos tcnicas para realizao de anlise forense
e ferramentas para uma resposta inicial a um incidente.
O aluno j possui conhecimentos para realizar anlises
em computadores comprometidos e identificar os
responsveis e eventos que comprometeram o sistema.
importante que o aluno entenda que este material
serve como uma base para que ele possa pesquisar e se
aprofundar no assunto.
176
10
Sesso de aprendizagem 10
Anlise forense avanada em Windows
(parte 2)
Roteiro de atividades
Tpicos e conceitos
\\Identificar
Windows.
minutos
178
179
180
Bibliografia
\\Access
\\Alertas
\\Analysis
\\Another
\\Autopsy
\\AVG
\\BitDefender.
\\Botnet
\\Botnet
\\CERT
\\Chkrootkit.
\\Clam
\\Computer
\\Digital
\\Dynamic-link
\\EnCase
\\Express,
\\Forensic
\\Forensic
\\Forensics
\\F-PROT
\\Helix:
\\Helix
\\IDA
\\Inside
\\LDasm.
\\Linux.RST.B.
\\md5deep.
\\Microsoft
\\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
\\National
\\NIST.
\\NTFS
\\NTFS
\\NTFS
\\OllyDbg.
\\Ondrej,
\\Panda
\\Piccolini,
\\Pimenta,
\\ProcessLibrary.com.
\\Prosise,
\\RFC
\\RFC
\\RST-variant
\\Scott,
\\SID:
\\SID
\\Slack
\\Solaris
\\Steganography
\\Steganography:
\\Szydlo,
\\The
\\The
\\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
\\The
\\The
\\Transactional
\\Tripwire.
\\Vexira
\\VMware
\\Wine
Seja um investigador
capaz de coletar evidncias digitais
e conduzir uma anlise em
sistemas comprometidos
Anlise forense
O curso apresenta as tcnicas e ferramentas utilizadas
em anlise forense computacional. Aprenda os procedimentos a serem seguidos pelo investigador durante a
anlise do incidente. Crie o CD de ferramentas forenses
que ser utilizado durante a investigao.
Aprenda a coletar evidncias em uma imagem de disco
de uma mquina comprometida. Elabore uma cronologia do ataque, descrevendo o que aconteceu e quando
ocorreu cada evento do computador investigado.
Compreenda as particularidades do processo de anlise forense em Linux e Windows e a gnese das informaes que devem ser coletadas em cada situao
enfrentada. Identifique as informaes dos programas
executados e as bibliotecas associadas.
www.esr.rnp.br