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

 

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

Variante do Conficker cria mofo virtual em MP3

Pesquisadores de universidades norte-americanas revelaram o resultado de um estudo conjunto que confirma a existência de um novo tipo de praga virtual, que não pode ser classificada de vírus nem de cavalo de Troia.

Professores de ciência da computação na Universidade Livre do Oeste da Califórnia batizaram a descoberta de “fungo de computador“, e ela pode estar associada ao vírus Conficker, que deve atacar milhões de computadores nesta quarta-feira (01).

De uma maneira análoga ao que acontecia com os fungos, mofos e bolores que atacavam as fotos em filme e fitas cassete no século passado, o fungo virtual degrada os arquivos de imagem, som e vídeo armazenados no computador. “O problema acontece até mesmo com arquivos de backup que nunca são acessados”, alerta Antonio de Marco, pesquisador adjunto da Universidade Presbiteriana de Michigan, o descobridor da ameaça. “Ninguém pode ficar tranquilo só por ter tudo copiado em DVDs.”

Os cientistas apuraram uma perda média de qualidade de 7% por ano para imagens JPEG, 15% para arquivos TIFF e 4% para áudio MP3. Quanto mais baixo o bitrate do MP3, mais rápida é a deterioração. Outros arquivos atingidos são os vídeos QuickTime MOV, com 14%, seguidos dos AVI em DiVX, com 9%.

Arjun Radhakrishnan, doutor em Ciência da Computação em Stanford, explica que o fungo virtual não tinha sido claramente detectado até agora porque seus efeitos são graduais e insidiosos. “O usuário típico de computador nunca pensou muito sobre esses fenômenos, porque a perda de desempenho do próprio sistema operacional é considerada um fato trivial.” Segundo ele, as pessoas acham normal e compreensível que a música pirateada do Napster em 2000 tenha vocais abafados e percussão indistinta, assim como as imagens pornográficas baixadas da Internet ficam visivelmente menores e mais sujas com o tempo. Arquivos de

Photoshop abrem com as cores inexplicavelmente erradas, escurecem e desbotam. Outros tipos de arquivos perdem seus ícones característicos. Até textos podem se deteriorar, abrindo com os caracteres acentuados trocados. Tudo isso seria uma variedade de sintomas do fungo digital.

O problema pode ser confirmado ao comparar arquivos com cópias salvas em outros computadores há alguns anos, assim como fotos digitais com cópias impressas da época em que elas eram novas, ou gravações de áudio digitais com seus correspondentes em fitas analógicas. “Houve uma degradação notável e progressiva de quase todos esses materiais, e muitos deles poderão não resistir em forma aproveitável até a próxima década”, alerta Bogus McCall, professor de filosofia cibernética da Universidade Cornell.

Ainda não se descobriu uma causa clara para a doença virtual atingir mais alguns computadores e arquivos do que outros, nem o método de transmissão do mal, que parece não ser causado por crackers ou hackers. Aparentemente, existem fatores ambientais.

O que fazer para evitar o fungo eletrônico? Segundo os cientistas, enquanto não surge uma solução comercial em software, a recomendação é fazer pelo menos três cópias diárias de todos seus arquivos e guardá-los em mídias mais antigas e duráveis, como CD-R ou disquete; transcrever todos os vídeos ripados de DVD para a boa e velha fita VHS; enviar todas as suas fotografias para o laboratório para serem copiadas em papel. “É a única maneira garantida de assegurar maior longevidade para os seus dados digitais”, afirma Rockwell.

É, claro, se você leu tudo isso e acreditou, parabéns, você caiu na nossa pegadinha de primeiro de abril.

Roney Médice

Analista de Sistemas e Bacharel em Direito

Apagando o histórico de comandos digitados na shell: bash_history

Quero esclarecer que não estou fazendo apologia para encobrir certas atitudes reprováveis mas, estou indicando uma forma de como apagar os rastros deixados ao digitar comandos na shell (Sistema Linux). Não me pergutem qual seria o motivo para tal ação, apenas estou disponibilizando a informação que, para alguns, podem ter seus motivos para executar tal procedimento.

Toda vez que entramos na shell do linux (console) para executarmos comandos, o linux vai gravando um histórico dentro do arquivo ~/bash.history, funcionamento esse idêntico ao antigo Doskey (Sistema Windows). Isso visa facilitar aos administadores de sistemas, a otimizar o tempo e buscar no histórico, os comandos que são mais executados e evitar perda de tempo para redigitá-los.

Assim, nesse momento, você deve ter em seu arquivo bash_history, todos os comandos que você executou nos ultimos tempos, lógico que depende do tamanho de buffer que esse arquivo irá suportar e armazenar os comandos digitados. Mas vamos ao propósito do artigo.

Para visualizar o conteúdo do history, você pode salvar em arquivo com o comando “cat ~/bash_history > log” (não digite com as aspas) e depois visualize o conteúdo do arquivo log  “cat log” (sem as aspas).

Agora, para apagar o histórico dos comandos, digite “rm ~/bash_history” (sem as aspas) e pronto.  Uma dica para os administradores de sistemas: rode no cron, um script para que de tempo em tempo, seja armazenado o conteúdo do arquivo bash_history em um  arquivo de log para futuras auditorias.

Roney Médice

Analista de Sistemas e Bacharel em Direito.

DNS Reverso no Bind 9.x

Recentemente, tive um problema de configuração de DNS Reverso que me impossibilitou o envio de e-mails para determinados clientes, pois o servidor de SMTP (Simple Mail Transfer Protocol) do destinatário requisitava dns reverso para que a comunicação entre os servidores de SMTP fosse estabelecida.

Com isso, achei por bem solidifcar esse conteúdo que pode ser insignificante a primeira vista, mas com certeza algum dia, o adminstrador de rede irá se deparar com essa situação. A configuração no BIND 9.x, não é difícil, basta seguir um roteiro e pronto, ligar para a operadora da banda larga e solicitar um teste de transferência de zonas do master para o slave, que iremos tratar abaixo.

Primeiramente, no arquivo named.conf (/etc/named.conf) da distribuição Suse, edite o arquivo incluindo a zona reversa, respeitando a seguinte lógica para as zonas conforme o bloco de endereçamento de ip:

Observe na tabela abaixo o formato da zona que deve ser configurada, dependendo do bloco associado.

      Bloco                                          Zona

XXX.YYY.ZZZ.0/24              ZZZ.YYY.XXX.in-addr.arpa

XXX.YYY.ZZZ.0/26         0-63.ZZZ.YYY.XXX.in-addr.arpa

XXX.YYY.ZZZ.64/2       64-127.ZZZ.YYY.XXX.in-addr.arpa

XXX.YYY.ZZZ.128/26    128-191.ZZZ.YYY.XXX.in-addr.arpa

XXX.YYY.ZZZ.192/26    192-255.ZZZ.YYY.XXX.in-addr.arpa

 

Atenção na inversão dos octetos onde, XXX.YYY.ZZZ no bloco se transformam em ZZZ.YYY.XXX na zona.

Então, no named.conf, adicione a seguinte linha:

zone “<zona reversa>”  {

           type master;

           file “ZZZ.YYY.XXX.in-addr.arpa.zone”; (exempo para o bloco XXX.YYY.ZZZ.0/24 )

           allow-transfer { ip do provedor autorizado para receber as zonas; };

};

Na distribuição Suse, dentro de /var/lib/named, crie o arquivo ZZZ.YYY.XXX.in-addr.arpa.zone e adicione as informações pertinentes a um arquivo de zone, como SOA, NS, PTR e etc. Não esqueça de colocar o ip reverso, como por exemplo:

5    IN     PTR    exemplo.dominio.com.br.

Salve o arquivo e reinicie o named (service named restart) e teste as configurações com o comando host:

host XXX.YYY.ZZZ.5

A resposta deverá ser XXX.YYY.ZZZ.5 pointer to exemplo.dominio.com.br

 

Roney Médice

Analista de Sistemas e Bacharel em Direito