⛳
pingのTTLとtracerouteによるOSの推定
pingの結果とパケットが経由したノード数を使うと宛先のホストのOSを推定できます。
パケットを返すときのTTLの値はOSごとに初期設定値が存在しています。
OS | TTLの初期値 |
---|---|
Windows95,98 | 32 |
macOS, Linux | 64 |
Windows10 | 128 |
Ciscoのルーター | 255 |
pingの結果のTTLの値は、パケットが経由したノードの数の分だけ減ったものです。
したがって、tracerouteでネットワーク経路上のノードを数えて、その分の数字を足せば、ホストが返すTTLの初期値が得られます。
TTLの初期値 = pingのTTL + tracerouteの結果
たとえば、「www.nap-camp.com」の場合、
% ping www.nap-camp.com
PING www.nap-camp.com (104.26.0.222): 56 data bytes
64 bytes from 104.26.0.222: icmp_seq=0 ttl=57 time=16.373 ms
64 bytes from 104.26.0.222: icmp_seq=1 ttl=57 time=32.292 ms
pingのTTLは57です。
% sudo traceroute -I www.nap-camp.com 2>/dev/null
1 ********** 17.560 ms 11.259 ms 14.197 ms
2 ********** 13.711 ms 14.105 ms 23.191 ms
3 ********** 16.914 ms 12.282 ms 13.168 ms
4 ********** 14.846 ms 15.329 ms 12.712 ms
5 ********** 14.334 ms 14.588 ms 13.955 ms
6 ********** 13.709 ms 26.728 ms 15.511 ms
7 ********** 16.672 ms 14.195 ms 14.341 ms
8 ********** 17.095 ms 13.413 ms 11.246 ms
tracerouteの結果は8ですが、最初に表示されるノードが送信元のホストなので8-1=7が結果になります。
pingの結果とtracerouteの結果を式に当てはめると57+7=64となり、
結果は64なので「おそらくLinuxを使っているのではないか?」と推測できます。
Discussion