Perícias com software livre – Parte 2

No primeiro momento, muitos peritos podem achar esse procedimento muito difícil de ser executado pois estão acostumados a utilizar ferramenta forense no ambiente gráfico, estilo o sistema operacional Windows e não rodar aplicativos por linha de comandos em que o usuário do sistema precisa digitar o comando. Porém, nem todos os casos envolverão sistema Windows e portanto, é aconselhável que os profissionais na área forense estejam preparados para exercer o trabalho de perito em qualquer ambiente operacional.

Pensando nessa dificuldade, vários projetos surgiram ao longo do tempo para facilitar o trabalho do perito forense que utiliza o software livre como ferramenta para análise de dados e busca de evidências. Algumas comunidades tecnológicas juntaram as principais ferramentas forense e agregaram em uma distribuição Linux que tinha como objetivo o desenvolvimento de tarefas forense, otimizando os recursos e facilitando o serviço do perito. Dessa forma, com apenas um CD (Compact Disc) contendo as principais ferramentas, diminui o risco de perder alguma informações por algum descuido do profissional no momento de duplicar um disco ou procurar por evidências pois como as ferramentas estão em um CD, não há o perigo de danificar o sistema operacional Linux instalado no computador suspeito, que não é executado nesse processo e sim o sistema operacional do CD.

Uma dessas distribuições forense criado com essa finalidade e muito utilizada é o Helix. É uma distribuição baseada no Ubuntu (tipo de distribuição do Linux) dedicada à investigação ou computação forense que foi modificada para que não alterasse nenhuma informação do sistema operacional do investigado. A vantagem de usar uma distribuição como o Helix é que no momento da etapa de investigação, não importa qual sistema operacional está instalado no computador suspeito pois o sistema utilizado para iniciar os trabalhos é o da própria distribuição. 1

Um projeto de conclusão de curso sobre computação forense, na Itália, originou outra distribuição forense baseada em Linux chamada CAINE. Nessa distribuição, as ferramentas forense estão organizadas por módulos e oferecem muitos programas com designer gráfico, facilitando o uso do programa pelo profissional. Algumas rotinas escritas em uma linguagem de computação estão presentes para facilitar o exame dos dados encontrados, utilizando como interface para o usuário um simples navegador de internet, como o Firefox, por exemplo.2

Também como resultado de um trabalho de conclusão de curso em segurança da informação em uma universidade no Rio Grande do Sul, o FDTK-Ubuntu é um projeto livre com a finalidade de reunir e manter uma distribuição para coleta e análise de dados em perícias forense. O FDTK (Forense Digital Toolkit) pode ser instalado no computador tornando-o uma estação forense. Prática essa adotada por peritos que preferem tornar um notebook um equipamento forense por ser leve, prático e móvel, facilitando o trabalho da investigação forense.3

Outra distribuição criada na Itália é o DEFT-Linux com o objetivo de auxiliar os investigadores e profissionais especializados em realizar uma análise forense em um computador, seja ele baseado em sistema operacional Windows ou Linux. Apesar da distribuição está toda em italiano, em breve surgirá nova versão em outros idiomas.4

Existe uma distribuição Linux que possui algumas ferramentas forense mas não é o objetivo principal da distribuição, o BackTrack5. É conhecido como a distribuição Linux para hackers, denominação dada pela mídia para aqueles indivíduos cujo propósito é meramente invadir sistemas ou equipamentos eletrônicos, burlando as normas impostas. Na realidade, hackers são pessoas com conhecimento aprofundado sobre um determinado assunto que possibilitam modificar software e hardware.6

O BackTrack é na realidade uma distribuição utilizada para realizar testes de penetração nos sistemas e verificar a integridade dos mesmos. Porém, existem algumas ferramentas dentro da distribuição que podem ser utilizadas pelo perito como apagar dos dados de uma mídia de armazenamento de dados de forma segura, criar uma imagem de um disco rígido em outro dispositivos, entre outros.

Contudo, apesar de existirem diversas distribuições com sistema operacional e ferramentas específicas para serem utilizadas nas etapas que envolvem uma investigação forense, o perito pode modificar e agregar valor a uma distribuição específica pois como são distribuições Open Source, cada profissional é livre para modificar e deixar os programas do seu jeito de trabalhar

 

Anúncios

Recuperando Senha do root sem Live-CD

Passei por maus bocados recentemente. Perdi a senha do root do servidor e não me lembrava mais de jeito nenhum da bendita senha. Uma das formas de fazer a recuperação da senha do root, como todos sabem, é utilizando um Live-CD. O problema era que eu não tinha esse bendito Live-CD pra recuperar a senha e eu precisava fazer uma manutenção rápida e o servidor não podia ficar parado por mais tempo (essa é a sina de todo administrador de redes) então tive que fazê-lo sem o CD.

Irei demonstrar pra vocês o passo-a-passo que segui. Acho que poderá ser útil pra quem estiver no mesmo caso que eu.

  1. Você precisa reiniciar a máquina e editar a linha de boot do GRUB. Teclar a tecla “e” para editar as linhas de inicialização do GRUB. Adicione, no final da linha, o seguinte init=/bin/bash e depois tecle “b” para iniciar o sistema. No caso do Lilo, entrar no prompt dele e na hora da inicialização digitar Linux init=/bin/bash.
  2. Irá aparecer o prompt diferente do normal indicando que vc tem acesso de root. Mas sem poder gravar em nenhuma arquivo no / você terá que montar o diretório raiz e seguir os passos:
      # mount -o remount,rw / #Remontar como read-write o /
      # mount -a #Montar tudo em /etc/fstab
      # mount #Mostrar se o / foi remontado como read-write
    

    A partir daqui você poderá editar os arquivos. Como no meu caso as senhas estavam em /etc/shadow tive que editar esse arquivo

      # vi /etc/shadow
    

    Se esse recurso não tiver habilitado altere o /etc/passwd. Apague o conteúdo que estiver no segundo campo depois de root root:$1$fmdlkdjslj¨5$rdgd:14693:0:99999:7::: e deixe assim: root::14693:0:99999:7:::. Salve o arquivo e continue.

      # sync #Escrever o que tiver no buffer em disco
      # umount -a #Desmontar o sistema de arquivos
      # mount -o remount,ro / #Remontar como read-only
      < Ctrl>< Alt>< Del> #Para reiniciar
      login: root # Digite root sem senha
      # passwd #Depois altere a senha do root

Fonte: Dicas-L (http://www.dicas-l.com.br/index.xml)

Comando DEBGLOB

O pacote debglob oferece uma listagem, dentre os pacotes instalados em seu sistema, de todos aqueles que contenham uma determinada string.

Por exemplo:

$ dglob mp3

  libgmp3c2
  libmp3-info-perl
  libgmp3-dev
  libmp3-tag-perl
  libmp3lame0

Fonte: www.dicas-l.com.br

Gerando hash MD5 dos arquivos no linux

Uma forma bastante interessante de se manter um controle sobre os arquivos, principalmente os de sistema, é gerar o hash dos principais arquivos e guardar em uma tabela para futuras pesquisas.

Gerando o hash de um arquivo, se houver qualquer tipo de alteração nele, ao rodar novamente o cálculo do hash MD5, o resultado do hash será diferente do resultado original.

No linux, você pode gerar o hash MD5 de um arquivo digitando o seguinte comando:

md5sum arquivo

Por exemplo, um cálculo de hash em um arquivo ficaria assim o resultado:

md5sum dic.txt

8f1d3d9518b9a09acf68c9db12ef29ac  dic.txt

Vamos alterar esse arquivo, acrescentando uma linha e após salvar, gerando novamente a função hash, teremos um novo resultado:

md5sum dic.txt

49526713e47393a7ffcb532fcff8fe9a  dic.txt

Ou seja, dessa forma, você poderá fazer um hash md5 de seus arquivos e quando precisar, verificar o hash para saber se ocorreu alguma alteração.

Como montar uma pasta compartilhada do windows 2003 no diretório /media no linux

Passei por uma situação que precisei montar uma pasta compartilhada, localizada no servidor Windows 2003, dentro do diretório “/media/srv” no meu linux Ubuntu, para rodar o comando ‘wipe’, por linha de comando.

Para tanto, após várias tentativas frustradas, recorri ao meu network para auxiliar em minha necessidade pontual. Dito e feito. Consegui o resultado esperado, mediante a sugestão de executar o seguinte comando:

sudo mount -t cifs //IPSERVIDOR/PASTACOMPARTILHADA -o username=LOGIN_WINDOWS,password=SENHA /media/srv

Como o servidor é um Windows Server 2003, tinha que montar com o tipo de sistema “cifs”. o Username e Password tem que ser a conta que tenha permissão de acesso a pasta.

Agradeço as sugestões dos amigos Marcos Lisboa e, em especial, do Carlos Renato, que com o comando sugerido acima, consegui montar a pasta compartilhada e permitir a execução do wipe, por linha de comando.

Problema no wireless após atualização do Kernel no Ubuntu 9.04

Eu tive um sério problema no meu notebook, depois que me “aventurei” na atualização do mais novo Kernel para o Ubuntu 9.04, a versão 2.6.28-13-generic.

A primeira consequência, nada agradável, foi a imediata parada no funcionamento da minha wireless. Ao rebootar a máquina, percebi que meu wireless lia os drivers, o Kernel atribuia o Firmware corretamente conforme o módulo do meu Bradcom43, mas não conseguia detectar as redes wireless.

De posse dos logs (syslog e message – ambos em /var/log), verifiquei que quando meu noteboot tentava conectar a rede da minha empresa e em minha casa, ambas configurações eu utilizo WPA2 – PKS, acontecia um erro, conforme listado abaixo:

NetworkManager: nm_setting_802_1x_get_pkcs11_engine_path: assertion `NM_IS_SETTING_802_1X (setting)’ failed

Pesquisando na internet, o problema era em respeito a um bug no NetworkManager sobre o módulo que gerencia as conexões wireless com criptografia WAP.

Solução:

Basta instalar o pacote “linux-backports-modules-jaunty” com o apt-get e depois, reiniciar o computador.  Digite o comando:

sudo apt-get install linux-backports-modules-jaunty


Pronto, minha rede wireless com WPA voltou a funcionar normalmente.

Até a próxima.

Como remover servicos do boot no linux

Estava configurando um servidor proxy no  linux (Squid), com autenticação no AD (Windows Server) através do Winbind. Verificando os serviços que estavam sendo iniciados no servidor linux, observei que um daemon ‘Bluetooth” estava sendo inicializado também no boot de forma desnecessária, porque eu não uso nenhum device (dipositivo) de bluetooth no servidor.

Com isso, tentei alterar as configurações de iniciação desse serviço com o seguinte comando (logado como root):

chkconfig –level 35 bluetooth off

Ou seja, tentei setar para que ao inciar o linux com o boot na opção do init em nivel 3 ou 5, esse daemon estaria desligado (off) e não seria carregado o módulo.

Porém, ao executar esse comando, apresentou a seguinte lista de erros:

insserv: warning: script ‘S01linux-restricted-modules-common’ missing LSB tags and overrides
insserv: warning: script ‘K01gdm’ missing LSB tags and overrides
insserv: warning: script ‘K20acpi-support’ missing LSB tags and overrides
insserv: warning: script ‘S10powernowd.early’ missing LSB tags and overrides
insserv: warning: script ‘S28NetworkManager’ missing LSB tags and overrides
insserv: warning: script ‘S10xserver-xorg-input-wacom’ missing LSB tags and overrides
insserv: warning: script ‘S05vbesave’ missing LSB tags and overrides
insserv: warning: script ‘S10udev’ missing LSB tags and overrides
insserv: warning: script ‘S08loopback’ missing LSB tags and overrides
insserv: warning: script ‘S37udev-finish’ missing LSB tags and overrides
insserv: warning: script ‘vbesave’ missing LSB tags and overrides
insserv: warning: script ‘NetworkManager’ missing LSB tags and overrides
insserv: warning: script ‘udev’ missing LSB tags and overrides
insserv: warning: script ‘acpi-support’ missing LSB tags and overrides
insserv: warning: script ‘udev-finish’ missing LSB tags and overrides
insserv: warning: script ‘xserver-xorg-input-wacom’ missing LSB tags and overrides
insserv: warning: script ‘loopback’ missing LSB tags and overrides
insserv: warning: script ‘powernowd.early’ missing LSB tags and overrides
insserv: warning: script ‘linux-restricted-modules-common’ missing LSB tags and overrides
insserv: warning: script ‘gdm’ missing LSB tags and overrides
insserv: There is a loop between service mountall and checkfs
insserv:  loop involving service checkfs at depth 8
insserv:  loop involving service checkroot at depth 7
insserv: There is a loop between service mountall and checkfs
insserv:  loop involving service mtab at depth 8
insserv: There is a loop between service udev and hwclockfirst
insserv:  loop involving service hwclockfirst at depth 7
insserv:  loop involving service mountdevsubfs at depth 6
insserv:  loop involving service networking at depth 2
insserv:  loop involving service mountall at depth 1
insserv:  loop involving service hwclock at depth 15
insserv:  loop involving service udev at depth 22
insserv: exiting without changing boot order!
/sbin/insserv failed, exit code 1

Resultado, parti para o meio mais radical, e executei o seguinte comando (logado como root):

update-rc.d -f bluetooth remove

Quanta tranquilidade!! Na hora, resolveu o meu problema:

Removing any system startup links for /etc/init.d/bluetooth …
/etc/rc0.d/K74bluetooth
/etc/rc1.d/K74bluetooth
/etc/rc2.d/S25bluetooth
/etc/rc3.d/S25bluetooth
/etc/rc4.d/S25bluetooth
/etc/rc5.d/S25bluetooth
/etc/rc6.d/K74bluetooth

Espero ter ajudado aos desesperados com mais essa solução resolutiva.

Roney Médice

Analista de Sistemas e Bacharel em Direito