Identificar o sistema operacional usando ping

Publicado por Denis Gabriel Ignacio em 05/05/2010

[ Hits: 50.997 ]

 


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

rm - remover vários arquivos excetuando alguns

type - Determinar o tipo de um comando

Combinando os comandos head e tail

Trabalhando com módulos no FreeBSD

Bloquear tela no Cinnamon via terminal

  

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
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts