15 junho 2010

Identificar o Sistema Operacional usando ping

Com o comando ping podemos identificar o Sistema Operacional utilizado.

O comando ping trabalha com o protocolo ICMP enviando mensagens. Quando uma maquina de destino recebe um Echo Request ela retorna um Echo Reply.

Para descobrir qual Sistema Operacional está sendo utilizado vamos usar o TTL (Time to Live). Este valor indica quanto tempo o pacote vai ficar circulando antes de ser descartado.

Cada Sistema Operacional trabalha com um TTL padrão e desta forma podemos identificar o tipo de sistema.

Exemplo1.

  $ ping 127.0.0.1
PING 127.0.0.1 bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.028 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.030 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=64 time=0.029 ms



Exemplo2.




  $ ping 127.0.0.1
PING 127.0.0.1 bytes of data.
64 bytes from 127.0.0.1: icmp_seq=1 ttl=128 time=0.176 ms
64 bytes from 127.0.0.1: icmp_seq=2 ttl=128 time=0.183 ms
64 bytes from 127.0.0.1: icmp_seq=3 ttl=128 time=0.189 ms



Representamos na tabela abaixo o valor padrão do TTL para alguns sistemas operacionais:




SISTEMA       TTL



UNIX             255



LINUX            64



WINDOWS      128




Com estes números já podemos determinar o Sistema Operacional dos exemplos acima. No caso do Exemplo1 o ttl=64 nos diz que o sistema utilizado é Linux, e para o Exemplo2 podemos dizer que o sistema usado é Windows.



Os roteadores estão programados para decrementar o TTL a cada pacote que passa por ele. Se uma maquina Windows for "pingada" e o valor TTL for 126 significa que antes de chegar ao destino existem 2 roteadores.





Fonte: Denis Gabriel IgnacioRevista PNP

Postar um comentário