Archive for the ‘Redes’ Category
Identificando o Sistema Operacional usando ping
Hoje pela manhã me perguntaram como descobrir o sistema operacional de um servidor. Segue então uma forma bem tranquila de fazer isso.
Uma forma bem simples de descobrir o Sistema Operacional (SO) de uma máquina na rede (host) é utilizando o ping.
Ping é um comando que testa a conectividade entre equipamentos. Ele utiliza o protocolo ICMP e seu funcionamento é semelhante a um jogo de ping-pong. Ele envia pacotes para um equipamento destino, iniciando o ping, e fica “aguardando” uma resposta. Se o equipamento destino estiver ativo irá responder com outros pacotes fazendo o pong.
Caso você não saiba como executar um ping faça o seguinte:
1. Abra o console de comando. Se for Windows clique em Iniciar-Executar-Digite “cmd”-pressione ENTER;
2. Digite “ping ip_destino”;
O ping irá retornar a resposta do host, os bytes utilizados, tempo de resposta e o TTL. uma breve estatística será mostrada para avaliação.Como nosso objetivo aqui é identificar o servidor, vamos utilizar o valor do TTL.
Muito bem, o que aconteceria se um pacote fica-se perdido na rede por algum motivo e fica-se sem destino? Será que ele ficaria navegando eternamente? O TTO, Time-To-Live, é o tempo que o SO dá para o pacote trafegar na rede até ser descartado. A cada roteador que o pacote passa este número vai decrescer 1 até chegar em zero. Quando isto acontecer o pacote é descartado.
O detalhe simples é que cada SO tem um valor padrão para TTL, podendo variar conforme a versão e através disso conseguimos identificá-lo:
- UNIX: 255
- Linux: 64
- Windows: 128
Basta verificar qual o TTL mais próximo que SO para identificar. E se os pacotes de um servidor Unix navegarem muito e forem diminuindo até chegar a 125? Você vai pensar que é um servidor Windows e na verdade não é, e aí?
Você pode usar o comando tracert. Sua utilização é exatamente igual ao ping, a diferença é que ele verfica o caminho até o endereço ip destino exibindo uma série de roteadores que são utilizados para entregar os pacotes. Caso não seja possível entregar ao destino, o tracert exibirá o último roteador que encaminhou seus pacotes.
Se você estiver com problemas de conectividade, pode utilizar o comando tracert para verificar o caminho até o endereço IP de destino a ser alcançado e gravar os resultados. O comando tracert exibe a série de roteadores IP que são utilizados para entregar pacotes do seu computador no destino e quanto tempo demorou cada salto. Se os pacotes não puderem ser entregues no destino, o comando tracert exibirá o último roteador que encaminhou seus pacoacotes com sucesso.
Assim, você pode usar o ping para pegar o TTL, o tracert para dar uma idéia da quantidade de roteadores que passou. Soma a quantidade de roteadores com o TTL que o ping resultou e você terá um valor bem aproximado do original, identificando assim o SO.
Na maioria dos casos o tracert não se faz necessário.
Um detalhe importante é que o valor o TTL pode ser alterado. No Windows basta alterar a chave de um registro e no linux alterando o /proc/sys/net/ipv4/ip_default_ttl.
Embora esta informação seja importante conhecer, é também importante estar ciente de que se o valor padrão do TTL foi alterado, esta forma de identificação não será mais confiável. Conhecimento nunca é demais..
Abraços e até a próxima.
“Não seja tímido e melindroso em suas ações. Tudo na vida é uma experiência. Quanto mais você experimentar, melhor.” Ralph Waldo Emerson