Reconhecendo um sistema operacional com o ping

Recentemente, li um pequeno texto no site da Dicas-L a respeito de como se pode utilizar o comando ping como uma forma de detectar um sistema operacional remoto. Aliás, sempre que posso, ensino em sala de aula esse recurso.

Resumindo um pouco do que se trata. Para que sistemas operacionais diferentes possam se comunicar normalmente em uma rede, é preciso que todos “falem” a mesma língua. No caso da Internet e na maioria das redes da atualidade, essa língua significa os protocolos que compõem a arquitetura TCP/IP cujas especificações, conhecidas como RFC (Request For Comments) são públicas e podem, portanto, ser consultadas livremente através do site http://www.ietf.org. Em outras palavras, cada fabricante deve consultar essa documentação para implementar em seu sistema operacional os protocolos da arquitetura TCP/IP, seguindo as recomendações que irão garantir a correta interoperabilidade em rede.

Muitos dos aspectos descritos nas RFCs devem ser seguidos à risca pelos desenvolvedores e isso é uma tarefa trabalhosa e que requer bastante experiência. Por outro lado, existem alguns aspectos das especificações que devem ser definidos de acordo com cada fabricante. São essas decisões particulares na implementação da pilha TCP/IP que ajudam no desenvolvimento das ferramentas de “OS fingerprinting”, que visam reconhecer o tipo e a versão de um sistema operacional remotamente. O NMAP talvez seja o melhor exemplo desse tipo de ferramenta.

Em especial, existe um campo no cabeçalho do protocolo IP chamado TTL (Time-To-Live). O objetivo desse campo é evitar que, por exemplo, por problemas de roteamento, um pacote IP fique trafegando indefinidamente de roteador em roteador. Inicialmente, o campo indicava o tempo que um pacote IP poderia ficar “em trânsito” para seu destino. A dificudade técnica logo apareceu uma vez que era difícil para cada roteador controlar quanto tempo exatamente um pacote havia ficado sobre seu controle.

Outras dificuldades técnicas também mostraram que essa forma de controle era inviável. Por conta disso, o entendimento do TTL mudou e passou a ser entendido como a quantidade de “saltos” entre roteadores (do inglês, hops) que um pacote pode dar até alcançar seu destino final. Com isso, cada roteador que recebe um pacote e o repassa adiante decrementa, antes de enviá-lo, em 1 o valor do TTL. Se o pacote não tiver mais “crédito” para continuar trafegando, o roteador que o recebeu e identificou, em primeira mão, a impossibilidade de entregá-lo ao seu destino final, descarta o pacote e encaminha ao originador uma mensagem de TTL Time Exceeded, através do protocolo ICMP.

Pois bem, voltando ao assunto das RFCs, o TTL é um dos campos cujo valor default, utilizado em um pacote assim que ele é criado, fica a cargo de cada sistema operacional. Com isso, os sistemas operacionais mais conhecidos do mercado acabaram adotando valores diferentes. Por exemplo, o Microsoft Windows costuma adotar como valor padrão para o TTL o valor de 128. Já sistemas GNU/Linux costumam utilizar o valor de 64. O Solaris, por sua vez, adota o máximo que o campo permite: 255. É essa particularidade que torna simples a investigação de um sistema operacional, remotamente, apenas pelo resultado do ping.

Diante disso, ao executar o comando ping para uma determinada máquina, basta verificar o valor do TTL apresentado como resultado e identificar de qual padrão ele aproxima-se mais. Por exemplo, no exemplo abaixo o valor de TTL de 57 está mais próximo de 64 do que de 128 (Microsoft Windows) e 255 (Solaris). Nesse caso, pode-se suspeitar que trata-se de um sistema GNU/Linux.

Suspeitar? Isso mesmo. Apesar desse comportamento refletir a realidade na maioria dos casos, é importante tomar cuidado com o fato de que esses valores podem ser alterados, principalmente por sistemas que, como o GNU/Linux, possuem alguns recursos que permitem interagir diretamente com o kernel e, consequentemente, com a pilha TCP/IP do seu sistema operacional.

Por exemplo, para alterar em tempo real o valor do TTL utilizado por seu ambiente GNU/Linux, basta, como root, executar o seguinte comando:

  # echo 1 > /proc/sys/net/ipv4/ip_default_ttl

Depois, para consultar o valor atual, basta utilizar o cat:

  # cat /proc/sys/net/ipv4/ip_default_ttl

Conhecer bem o comportamento da pilha TCP/IP dos diversos sistemas operacionais é fundamental para exercer a função de administrador de sistemas. A detecção de um sistema operacional por meio do valor do TTL é um recurso importante e ágil, desde que seja considerado em um ambiente de rede controlado onde se pode assumir que apenas os valores padrões do TTL estão sendo utilizados. Por outro lado, caso trata-se de um ambiente não restrito, considere utilizar outras técnicas e ferramentas.

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

Audacity: uma poderosa ferramenta de áudio

Uma ferramenta muito interessante que faz um trabalho sensacional com o áudio no linux é o Audacity. Com esse programa, você poderá criar efeitos sonoros, retirar os ruídos, enfim, uma série de possibilidades que tornarão o seu áudio mais “limpo”.

Através desse software, que também possui versão para windows, você poderá manipular mais de um áudio e criar assim um projeto mais profissional, podendo mesclar entre os áudios e enriquecendo a trilha sonora.

Por exemplo, na criação de um poadcast, o Audacity auxiliará em editar a sua apresentação, acrescentando uma música de introdução, trilha sonora de fundo para acompanhar a apresentação e muito mais.

Para instalar no linux, basta digitar:

sudo apt-get install audacity

E bom trabalho.

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

Comando DPIGS

O programa dpigs lista os pacotes que mais ocupam espaço em seu sistema. A diretiva -n, indica o número de pacotes que você deseja listar:

$ dpigs -n 10

  253284 ubuntu-docs
  206396 sagemath
  88104 linux-image-2.6.31-14-generic
  87256 virtualbox-3.1
  75132 openjdk-6-jre-headless
  71548 linux-headers-2.6.31-14
  65504 r-cran-rgtk2
  59480 coq-theories
  57896 emacs22-common
  47728 google-chrome-beta

Fonte: www.dicas-l.com.br

Palestra Forense Computacional em Linux para Dummies

Colaboração: Rubens Queiroz de Almeida


Uma das palestras de maior repercussão no IV Ensol (Encontro Nordestino de Software Livre), aplaudida entusiasticamente pelos participantes, foi ministrada por Eriberto Mota. A palestra, chamada “Forense Computacional em Linux para Dummies”, é na verdade (na minha opinião) um curso completo de análise forense de computadores com utilitários do sistema GNU/Linux.

O palestrante demonstrou passo a passo o que fazer para analisar um computador e descobrir informações relativas a fraude ou invasão. Foram demonstrados os cuidados que se deve ter para que informações vitais não sejam apagadas por engano e como fazer para preservar ao máximo todos os dados e quais os utilitários que podem ser usados para esta finalidade. Demonstrou-se também como recuperar dados de um pendrive com todos os arquivos apagados. Interessante foi um caso real relatado em que, a partir de um arquivo word apagado, com base em informações contidas nas metadados do arquivo, se conseguiu identificar uma pessoa que até então não estava envolvida nas investigações de um caso de fraude.

Os originais da palestra, que estão disponíveis para download no site do autor, são um ótimo referencial para especialistas em segurança e para interessados no assunto. (cópia local).

Eriberto Mota é também autor do livro Descobrindo o Linux, publicado pela Editora Novatec.

Fonte: http://www.dicas-l.com.br/index.xml

Ubuntu 10.04 – Linux Acessível

Colaboração: Fabiano Garcia Fonseca

Data de Publicação: 17 de maio de 2010

Lançado o DVD personalizado do Ubuntu 10.04!!

Finalmente finalizei a remasterização da nova versão do Ubuntu, incluindo aplicativos, scripts e configurações que deixam o sistema mais fácil para uso de pessoas com deficiência visual.

Principais características

  • Sistema configurado para carregar em português e com o leitor de telas Orca ativo.
  • Scripts para regular o tamanho da fonte, um recurso facilitador para pessoas de baixa visão.
  • Troca do GKSU (programa que solicita a senha para execução de programas administrativos) por uma versão que não trava o Orca.
  • Teclas de atalhos definidas para ajustar se o Orca vai ser carregado automaticamente ou não.
  • Tecla de atalho definida para restaurar o Orca ao default da instalação.
  • Orca configurado para ativar o ampliador de telas na janela de login.
  • Definida tecla de atalho para carregar o Orca com o ampliador ativado. -Instalado o Mozilla firefox 3.5.9 no lugar do Mozilla Firefox 3.6, por este último, apresentar problemas de acessibilidade.

Estas são apenas algumas das modificações feitas, mas existem mais outras que melhoram a usabilidade do ubuntu para deficientes visuais.

Visite http://www.linuxacessivel.org/2010/05/06/dvd-ubuntu-linux-acessivel-10-04 para ver mais detalhes e fazer o download para descobrir mais novidades desta customização.

Fonte: http://www.dicas-l.com.br/index.xml