Identificar o sistema operacional usando ping

Publicado por Denis Gabriel Ignacio em 05/05/2010

[ Hits: 70.504 ]

 


Identificar o sistema operacional usando ping



Com o comando ping podemos identificar o sistema operacional utilizado.

O ping trabalha com o protocolo ICMP enviando mensagens, quando uma máquina 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), ele vai dizer quanto tempo o pacote vai ficar circulando antes de ser descartado.

Cada sistema operacional trabalha com um TTL padrão, por isso podemos identificar o sistema através dele.

Exemplo 1:

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

Exemplo 2:

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

Segue o TTL padrão de alguns sistemas operacionais:
  • UNIX: 255
  • Linux: 64
  • Windows: 128

Com estes números já podemos determinar o sistema operacional dos exemplos acima. No caso do exemplo 1, o ttl=64 nos diz que o sistema utilizado é Linux e no exemplo 2 podemos dizer que o sistema usado é Windows.

Os roteadores estão programados para decrementar o TTL a cada pacote que passa por ele, ou seja, se uma máquina Windows for "pingada" e o valor TTL for 126, significa que antes de chegar ao destino existem 2 roteadores.

É isso, fica a dica.

Outras dicas deste autor

Instalar pacotes RPM no Ubuntu

Alterando senha inicial do PostgreSQL [Ubuntu]

Leitura recomendada

Declarando "netbios name" no Samba

Substituindo ocorrências de palavras dentro de um arquivo

Como remover os pacotes rpm

Comando CHMOD (Change Mode) no Modo Octal

Ajustando horário no Slackware

  

Comentários
[1] Comentário enviado por smmusashi em 05/05/2010 - 08:31h

Bom dia Denis, só complementando sua informação, não podemos confiar muito no valor do TTL pois é possível alterá-lo, nos meus servidores linux por exemplo eu deixo o ttl padrão como 128, isso é feito facilmente alterando o /proc.

Nos servidores windows ou maquinas windows é possível alterar o valor do TTL através do regedit. Com Unix não tenho experiência, mas creio que também seja possível realizar esta tarefa.

[2] Comentário enviado por denisignacio em 05/05/2010 - 08:47h

Olá smmusashi, creio que no UNIX tambem é possivel fazer esta alteração. esta dica é apenas uma informação que achei interessante e resolvi repasar.

Um abraço.

[3] Comentário enviado por intelitec em 05/05/2010 - 09:13h

Nos sistemas microsoft também é possivel fazer a alteração do TTL através de chaves de registro de do utilitario netsh...

[4] Comentário enviado por cenoura em 05/05/2010 - 09:33h

Não é muito confiável utilizar este método para detectar o SO pois, além de ser possível mudar o TTL (conforme já dito acima), muitas redes bloqueiam tráfego ICMP no firewall, impedindo o uso do ping.

[5] Comentário enviado por removido em 05/05/2010 - 10:06h

É confiável até ser utilizado este comando


sysctl -w net.ipv4.ip_default_ttl=128

Pronto. Linux com ttl de windows.

[6] Comentário enviado por leovailati em 05/05/2010 - 13:48h

Muito boa a dica, cara. Já fiz testes aqui, funciona inclusive para diferenciar equipamentos de rede.

Valeu mesmo.

[7] Comentário enviado por murderb13 em 05/05/2010 - 14:20h

muito boa a sua dica.

mesmo q seja possivel alterar o valor é uma excelente dica..
valeu.!

[8] Comentário enviado por edisonsousa em 06/05/2010 - 11:53h

Boa essa dica, podemos utiliza-la quando trabalhamos com uma grande rede e temos uma diversificação gigantesca, onde sabemos que nenhum engraçadinho vai ficar mudando o ttl, de resto não é muito confiável, mais valeu mesmo.

[9] Comentário enviado por aramisoliveira em 15/11/2010 - 03:34h

Meus parabénss



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts