Informática Numaboa
Ping identifica SO
Dom 9 Mai 2010 11:40 |
- Detalhes
- Categoria: Dicas Gerais
- Atualização: Domingo, 09 Maio 2010 12:58
- Autor: vovó Vicki
- Acessos: 8220
Através da lista Dicas-L, do Rubens Queiroz de Almeida, recebi uma dica enviada pelo Denis Gabriel Ignacio que achei muito interessante: usar o ping para identificar o sistema operacional da máquina "pingada".
Só para refrescar a memória: o comando ping envia mensagens usando o protocolo ICMP. Quando a máquina destino recebe uma mensagem solicitando eco (echo request), ela devolve uma resposta (echo reply). Estas respostas costumam ser apresentadas da seguinte forma no console:
$ ping 200.195.168.72
PING 200.195.168.72 bytes of data.
64 bytes from 200.195.168.72: icmp_seq=1 ttl=64 time=0.028 ms
64 bytes from 200.195.168.72: icmp_seq=2 ttl=64 time=0.030 ms
64 bytes from 200.195.168.72: icmp_seq=3 ttl=64 time=0.029 ms
Observe as linhas correspondentes a cada resposta recebida. São pacotes de 64 bytes recebidos como resposta de eco da máquina "pingada", cujos TTL são iguais a 64. TTL vem de Time To Live, que significa tempo de vida e indica o tempo que o pacote pode ficar circulando na rede antes de ser descartado por não ter encontrado seu destino. É aí que está o pulo do gato: cada sistema operacional cria pacotes com um TTL padrão:
SO TTL
---------|---------
Unix 255
Linux 64
Windows 128
No exemplo mostrado acima, sabemos que a resposta ao ping foi dada por uma máquina cujo sistema operacional é o Linux. Se o TTL fosse 128, o sistema operacional seria o Windows.
É isso aí, mas tem mais uma coisinha. Caso o pacote de resposta, ao transitar pela rede, tenha passado por algum roteador antes de alcançar a máquina chamadora, então o valor do TTL muda. Isto acontece porque os roteadores são os responsáveis pelo "consumo" do TTL dos pacotes. Se assim não fosse, os pacotes nunca teriam seu TTL esgotado e nunca seriam descartados
Apenas para ilustrar. Se uma das respostas do exemplo acima retornasse com um TTL=62, isto nos abriria três possibilidades sobre o caminho de volta do pacote:
- Pacote Linux que passou por dois roteadores (64 - 2 = 62)
- Pacote Windows que passou por 66 roteadores (128 - 66 = 62)
- Pacote Unix que passou por 193 roteadores (255 - 193 = 62)
A primeira hipótese, naturalmente, é a mais provável. Além disto, o conjunto dos pacotes retornados também serve de ponto de apoio para decidir o que é correto.
Esta dica nos mostra o quanto o ping, dependendo do usuário, pode ser útil ou perigoso. É útil quando estamos trabalhando sério e precisamos de informações para testar nossa rede; é perigoso quando esquecemos de desabilitar o ping das máquinas da nossa rede e entregamos de bandeja informações preciosas para hackers mal intencionados que também conhecem esta dica.
Valeu, pessoal.
Abraço da vó