Dump de Memória 2 - Dump de Memória no GNU/Linux

E aí galera, tudo beleza?

Hoje eu vou falar sobre dump de memória no sistema GNU/Linux. Esse post é um complemento a um outro post, no blog do professor Eriberto.
Eu vou mostrar como fazer o dump de memória, já que no kernel 2.6 o seu acesso vem desabilitado por default.
Isso vem causando muitas dúvidas e questionamentos sobre o assunto. Então fui pesquisar e descobri uma maneira de contornar esse problema. Vamos lá então.

Se você tentar fazer o dump com o comando DD, vai obter o seguinte resultado na tela (imagem1)










Para corrigir esse erro, nós vamos acessar este link e fazer o download do módulo fmem.
Depois de ter feito o download, nós vamos descompactar e desempacotar o arquivo que foi baixado para nossa máquina. A imagem 2 mostra isso na tela do shell.









Após ter feito isso, nós vamos entrar no diretório fmem_1.5-0. A imagem 3 mostra esse passo na tela do computador.












Lá dentro do diretório fmem nós vamos digitar o comando make. A imagem 4 mostra esse comando na tela do computador.











O próximo passo é digitar o comando ./run.sh. A imagem 5 mostra esse comando na tela do computador.







Pronto, agora o módulo fmem foi carregado corretamente e o computador está pronto para o perito realizar o dump da memória. Agora é só usar o comando DD. Não se esqueça de acrescentar na linha do comando o parâmetro count. Este parâmetro leva a quantidade de memória da máquina periciada. Neste exemplo, minha máquina tem 3 GB (3072MB). Em máquinas com 4 GB de memória, coloca-se o valor 4096.

A imagem 6 mostra o comando DD rolando na tela.













Uma apresentação do youtube que o autor comenta sobre o fmem é este link: https://www.youtube.com/watch?v=OYGtceHYzQE

Sites com Diversas Imagens

Opa, e aí galera?
Tudo beleza?

Primeiramente, eu gostaria de falar que este post é um complemento de outro post, no blog do Sandro Suffert. O link para o do Sandro é: http://sseguranca.blogspot.com/2009/03/material-de-treinamento-para-equipes-de.html

Às vezes nós queremos usar alguma imagem com o intuito de estudar ou testar alguma ferramenta ou alguma técnica. Eu tive essa necessidade.
Pois bem, acabei encontrando alguns sites em que são disponibilizados algumas imagens e capturas de rede, para que possamos colocar em prática os nossos conhecimentos.




Por último, coloco aqui um link de um blog muito interessante. É o blog do professor Eriberto. Ele mostra a análise de uma invasão de rede. Muito legal mesmo. Obrigado pelo Link, professor!

E não podia deixar de colocar aqui um link muito interessante e com enorme valor para o profissional envolvido com a forense Computacional. É um site que mostra em uma tabela quais são os headers (cabeçalhos - conhecidos também como "magic numbers") de diferentes arquivos. Estes headers são como se fossem as assinaturas dos arquivos. Isso significa que um JPG tem uma assinatura diferente de um MPEG. E o que diferencia um do outro, é justamente o header. Mas este não é o único campo diferente, existem outros como por exemplo o Footer.
O link para ver os diferentes headers é: File Signatures Table

Bom, é isso.
Abração!

Dump de Memória 1 - Win32dd

Eu , de vez em quando, uso o Windows Vista Basic 32 bits aqui no meu notebook.
Fiquei encucado esses tempos, pq não estava conseguindo fazer o dump de memória nele.
Utilizei vários programas, inclusive o DD para windows. Mas não consegui. O DD não rodava em cima do Vista. E não entendia porque.
Fui pesquisar sobre o DD e acabei descobrindo que após o Windows XP SP2, a Microsoft limitou o acesso a certas áreas de memória. Com isso, somente os device drivers conseguem fazer dump. O uso do DD para fazer dump de memória no WinXP SP2 (e acima dele) deixou de funcionar, e além disso, o device \\.\PhysicalMemory foi desabilitado neste utilitário.

Continuei pesquisando sobre o assunto e achei um outro programa para fazer dump de memória, chamado: win32dd
No site da ferramenta, diz que existem 2 versões.
Encontrei em alguns sites o pessoal falando muito bem dele, dizendo que é até melhor que o próprio DD.
Acabei fazendo o download da versão free e instalei aqui no meu notebook (criei um diretório e descompactei os 2 arquivos lá dentro: win32dd.exe e o win32dd.sys).
O link pra fazer o download direto é: http://moonsols.com/component/jdownloads/view.download/3/2

Na hora de rodar e fazer o memory dump, novamente deu erro.
Eu não entendia a mensagem de erro pq dizia que eu precisava ter privilégios de administrador para ter acesso ao kernel-land (acessado somente pelo root do windows, ao contrário do user-land, acessado por qualquer usuário).
Detalhe: só existe um usuário cadastrado no meu notebook, e ele é administrador. Que por um acaso, é o que eu faço o login aqui na minha máquina. Ou seja, eu acesso como administrador no meu notebook, e o win32dd diz que eu não tinha privilégios de root.
A imagem1 mostra esse erro.









A imagem2 mostra através do comando net user que só existe um usuário cadastrado no meu notebook, e que ele é administrador.









Pesquisando sobre este erro, acabei descobrindo que a conta de administrador no Windows Vista vem desabilitada por default (apesar de ser classificada como administrador, ela não possui privilégios de root).
Resumindo: mesmo eu pertencer ao domínio de administradores, não tinha tais privilégios.
Eu tinha que fazer alguma coisa para conseguir rodar o win32dd. E fui pesquisar novamente sobre o erro que estava dando.
E achei o seguinte tutorial:
  1. vá em iniciar;
  2. depois vá em acessórios, e depois em prompt de comando;
  3. clique com o botão direito em cima de prompt de comando e escolha a opção : executar como administrador (imagem 3);
  4. escreva no prompt de comando aberto: net user [nome da conta que apareceu na imagem 2] /active:yes



















O que ele faz é ativar a conta de administrador do Vista, que vinha desabilitada por default.
Assim, meu problema teria sido resolvido parcialmente. Faltava agora rodar o win32dd e fazer o dump da memória.
Depois eu fiz o seguinte:
  1. usando o prompt, entrei no diretório onde está o win32dd;
  2. depois, digitei: win32dd.exe /d /f
Rodei novamente o win32dd e consegui, finalmente, fazer o dump de memória sem nenhum problema.
A imagem4 mostra o win32dd rodando.











Forense em Celulares com Software Livre

O campo da forense computacional cada vez se torna mais amplo. Os peritos em informática precisam lidar com computadores, além de PDA's e celulares.Hoje em dia, muitas pessoas guardam informações sobre suas vidas nestes aparelhos, como por exemplo, vídeos de seus familiares, lêem e-mails, ouvem músicas, mandam mensagens de textos, acessam a internet, agendam seus compromissos, tudo isso feito através dos celulares. Isso sem falar nos smartphones, que permitem o uso de softwares para planilhas elêtronicas e outros programas.

Nesse sentido, algumas empresas como a msab, desenvolveram equipamentos específicos para análise forense em celulares. Só que estes equipamentos costumar ser caros. Os links abaixo mostram alguns equipamentos com esse intuito:


Pra quem não tem tanto dinheiro assim, entra em cena o software livre, mais especificamente, o Linux. Eles nos permite realizar uma análise básica de todos os dispositivos conectados na porta USB do computador nos apresentando algumas informações. Mas como acessá-las no Linux?

É simples. Basta acessar o diretório /var/log/syslog com o comando tail. Este comando nos possibilita visualizar as últimas linhas de um arquivo. Adicionando o parâmetro -f, à medida que o arquivo vai crescendo, ele vai mostrando as últimas linhas, dinamicamente.

O comando tail -f mostra por padrão as últimas 10 linhas. Para mostrar as últimas 20, é só digitar o comando tail -n 20 /var/log/syslog, se quiser as últimas 30, é só digitar o comando tail -n 30 /var/log/syslog, e assim por diante.

A figura 1 mostra um celular conectado ao PeriBR (distribuição linux voltada para forense) e com o comando tail -n 40 /var/log/syslog rodando. Ele nos mostra algumas informações básicas.













A figura 2 mostra uma câmera digital sendo conectada à mesma distribuição Linux. O comando tail -f /var/log/syslog mostra as últimas 10 linhas, dinamicamente. Isso significa que à medida que formos conectando e desconectando os aparelhos na interface USB, ele vai mostrando na tela; ao contrário do parâmetro "-n" que não é dinâmico.












A figura 3 mostra uma Pendrive sendo conectada ao sistema. O comando tail -n 20 /var/log/syslog mostra as últimas 20 linhas do arquivo.










A figura 4 mostra uma outra Pendrive conectada ao PeriBR. O comando tail -n 20 /var/log/syslog mostra as últimas 20 linhas do arquivo.

Montar imagens Windows copiadas para o Disco

No post passado eu mostrei como montar uma imagem diretamente de uma pendrive. Neste post, eu vou mostrar como montar uma imagem Windows, que já está no HD. Eu vou usar novamente a distribuição Linux voltada para forense - PeriBR. E estarei montando uma imagem do windows vista no PeriBR.Então, mãos à obra!Primeiramente, é preciso copiar a imagem do windows para o HD, que tem o peribr instalado. No meu caso, eu criei um diretório "/images" e copiei a minha imagem windows para este diretório. A figura 1 mostra o cálculo do MD5, para verificar a integridade da cópia. Se as saídas do md5 forem as mesmas, significa que a cópia da imagem para o HD é íntegra, ou seja, o arquivo não teve o seu conteúdo alterado. A figura 1 mostra o cálculo md5 do arquivo original (arquivo no pendrive) e o cálculo md5 do arquivo já na máquina, lá dentro do diretório "/images".












Depois de fazer o cálculo e verificar que o md5 na cópia da imagem e na original são os mesmos (ou seja, o arquivo está íntegro), agora é só montar. Para montá-la, crie primeiramente um diretório, digitando o comando "mkdir ". No meu caso, eu vou criar o diretório "/mnt/image". Então fica assim: mkdir /mnt/image.Agora, para montar a imagem, digite o comando "mount -t ntfs-3g -o ro,loop,show_sys_files /images/vista_dd.001 /mnt/image". A figura 2 mostra o comando na tela do shell e o comando " df- h" para verificar se a imagem foi montada corretamente.












Agora é só acessar o conteúdo da imagem. A figura 3 mostra o acesso ao conteúdo da imagem com os Atributos dos arquivos (parâmetro show_sys_files é quem possibilita este acesso).

Montar imagens Windows em Linux diretamente de uma Pendrive

Pra quem não sabe montar uma imagem Windows em sistemas Linux, aqui vai como fazê-lo. No meu exemplo, eu vou montar uma imagem do Windows Vista em um ambiente Linux voltada pra forense computacional, utilizando uma ditribuição chamada PeriBR. Mas essa dica vale pra qualquer ditribuição linux.

Partindo do pressuposto que a imagem está em uma Pendrive ou HD externo, para montá-la sem copiar a imagem para o HD da estação forense (ou seja, analisando a imagem diretamente no dispositivo USB - pendrive ou HD externo), faça o seguinte:

  • Plugue o pendrive (ou o HD externo no seu computador);
  • Digite o comando fdisk -l para ver as partições do sitema. (figura1)














  • Digite o comando df -h, ou se preferir mount para ver qual sistema de arquivo é a sua pendrive, e em qual diretório ela está montada. Vocês podem ver na imagem que o comando mount mostra que minha pendrive está montada como read-only (ro). (figura2)















Agora eu vou criar o diretório aonde vou montar minha pendrive (acessar os arquivos da minha imagem). Para isso, digite o comando mkdir /mnt/image.

  • Depois, para montar a imagem, digite o comando mount -t ntfs-3g -o ro,loop,show_sys_files /dev/sdb1 /mnt/image.
  • Se digitamos o comando ls -lh /mnt/image, irá aparecer na tela do shell os arquivos de metadados do windows (isso é possível porque na hora em que a imagem foi montada, nós passamos o parâmetro show_sys_files). Se não passarmos este parâmetro no momento de montar a imagem, não teremos a possibilidade de acessar estes metadados - símbolo $ no início do nome do arquivo). (Figura 3)














Para usar o Sleuthkit na imagem do Windows, pode digitar, por exemplo, o comando fsstat /mnt/image/vista_dd.001 (figura 4)













Para acessar os metadados de volume do Windows (parâmetro show_sys_files), digite o comando strings /mnt/image/\$Boot (figura 5)

Login no SIFT Workstation

Pra quem é amante da forense computacional, eu sugiro experimentar a distribuição forense do SANS Institute. O nome da distribuição é: SIFT (SANS Investigative Forensic Toolkit)
Existem 2 versões: a versão 1.3 é mais antiga. A versão mais atual é a 2.0
Na 1.3, só existe a versão para VMWare. Na atual (2.0), existe a versão VMWare e uma outra, em formato .ISO. Eu tenho as duas e todas são excelentes.


Para fazer o login na 1.3:
login: root
password: forensics


Para fazer o login na versão 2.0:

login: sansforensics
password: forensics

Existe uma ferramenta de análise no SIFT Workstation, chamada: PTK.O PTK é uma ferramenta italiana, desenvolvida pela empresa DFLABS, cujo link é: http://ptk.dflabs.com/


Para abrir o PTK é preciso clicar no ícone do firefox e digitar: localhost/ptk/index.php (figura1)














Para se autenticar no PTK usando a SIFT Workstation (ambas as versões), digite:

login: admin
password: forensics

Bom, é isso!
Abraços!