PingによるOSの種類判別

先日、IT Proさんで以下のような記事が公開されていた。

内容としては、OSを確認したいホストにPingを打ち、その応答から対象ホストのOSが何なのかをある程度推測出来るというもの。

そんな事ができるのか…
実際に、自宅にあるサーバに対してPingを打って見ることにした。

今現在で使用できるOSは以下。

  1. Mac OS X Mountain Lion
  2. CentOS 6.5
  3. Ubuntu 14.10
  4. Debian Linux 7.2
  5. Solaris 11
  6. HP-UX 11i v3
  7. VMware ESXi 5.5
  8. Windows XP
  9. Windows 7

これらのOSに対して、実際にPingを打ってみる。
PingはWindows 7から対象の機器に設定しているIPアドレスに対して打つ。実際に稼働している機器なので、IPアドレスはモザイクを入れておくことにした。

 1.Mac OS X Mountain Lion

まずはMac OSから。

TTLの値は「64」。

2.CentOS 6.5

次はCentOS。Redhat Enterprise Linuxのクローンなので、こちらも同様の値であろう。

TTLの値は「64」。

3.Ubuntu 14.10

Ubuntu 14.10での値。

TTLの値は「64」。まぁ、同じLinuxだしね。

4.Debian Linux 7.2

次はDebian。Ubuntuの元になっているディストリビューションだし、Linuxなので上の2つと変わらないと思われるが…

TTLの値は「64」。

5.Solaris 11

次はSolaris 11。業務では使った事は無いが、商用UNIXでは一番元気なOSだと思うので、個人的にインストールして放置していたやつだ。 さて、こいつのTTLは…

TTLの値は「255」。確かにLinuxやMacとは違う値が表示されている。

6.HP-UX 11i v3

次はHP-UX 11i v3。最近仕事で使っているOSなので、ちょうど環境があって良かった…。

こちらの値も同じく「255」。

7.VMware ESXi 5.5

次はVMware ESXi 5.5に対してPingを打ってみる。

TTLの値は「64」。ESXiの前に使われていたESXがLinuxベースだからかな?

8.Windows XP

もはやサポートも切れたWindows XP。10年近くお世話になったOSだが、さてさて…

TTLの値は「128」。

9.Windows 7

最後はWindows 7。

こちらも同様に「128」。

上記9個のOSに対してPingを打ってみた。確かに、TTLの値からOSの種類をある程度読み取る事ができた。
セキュリティの事を考えたら、一応TTLの値を変更した方がいいのかな?

その他のOSについては、こちらのページに一覧でまとめてある。