OSフィンガープリント パッシブフィンガープリントによるOS種別の判別方法

Chris Sanders著、「実践パケット解析 Wiresharkを使ったトラブルシューティング」で胸のつかえが一つとれました。

OSフィンガープリント パッシブフィンガープリントの章で、パケットから凡そのOSの見分け方を記載しております。

実際、パケットキャプチャでどのようにOSの判定をしているのか?疑問に思うツールがいくつかあります。

全てがすべてパッシブフィンガープリントを使っている訳ではないと思いますが、知っていて損のない内容です。

例として、パケットからのWindowsの見分け方をご紹介します。

プロトコルヘッダフィールドデフォルト値
IP初期TTL128
IPフラグメント禁止フラグ設定
TCP最大セグメントサイズ1440-1460
TCPウィンドウサイズ自動調整
TCPSackOK設定
表1 windowsのパッシブフィンガープリントの値

この表に合致するパケットであれば、OSはWindowsである可能性が高いです。

もちろん、パラメータを変更すれば全て偽れる値なので100% Windowsというわけではありませんが、指標にはなります。

次に実践パケット解析ではリンクだけの紹介で、説明していないp0fというツールを使ってみました。

ダウンロードは、こちらから。

残念ながら、Windows用のツールではなくLinux環境でビルドする必要があります。

ダウンロード・解凍して、build.shを実行してください。

図1 p0fのビルド

ビルドに成功したら、同フォルダに生成されたp0fを実行します。

インターフェイスに対してもpcapファイルに対しても実行することができますが、今回はインターフェイスに対して実行してみました。

$./p0f -i br0

実行結果は、図2の通りとなりました。

図2 p0f実行結果

結果は以下の通りです。

IPアドレス判定OS
192.168.1.11Windows NT kernel
192.168.1.11Ethernet or modem
192.168.1.254???
192.168.1.254Ethernet or modem
表2 p0fによるOS判定

1.11はWindows 10 x64です。1.254はUbuntu 18.04です。

上記結果をみても本ツールは正確ではなく、あくまで参考レベルの結果であるということが分かりました。

(Visited 1,569 times, 1 visits today)
The following two tabs change content below.
【好きなもの】 インフラ技術が好き。古いものが好き。 【生きてきたフィールド】 システム運用、ソフトウェア開発、ミドルウェア検証、OSSサポート、プリセールスエンジニア、プロジェクトマネジメント 【このサイトでの役割】 サイト管理者。