スタックフィンガープリンティング
スタックフィンガープリンティングについて
スタックフィンガープリンティング(stack fingerprinting)とは
スタックフィンガープリンティングとは、ターゲットとなるサーバのOSを特定する手法です。
OSを特定することで、有効となる攻撃方法を決定することができます。
(フィンガープリンティングとは「指紋」という意味です。)
各種OSでTCP/IPという標準化されたプロトコルが実装されているが、実際にはTCP/IPの実装に微妙な差異があります。
この差異からOSの種類を識別する手法を「TCP/IPスタックフィンガープリンティング」といいます。
スタックフィンガープリンティングの方法
Windowsポートによる識別
Windows系OSでは、NetBIOSポートとしてTCP/139がオープンしている。
Windows2000では、ダイレクトホストのポートとしてTCP/445がオープンしている。
TTLによる識別
pingコマンドを打った時のTTLでOSの種類を判断する。
UNIX系OSでは、デフォルトで「255」。Windows系OSでは「128」となっている。
nmapコマンドによるOSの検出
nmapコマンドを用いて、OSを検出します。
$ sudo nmap -O localhost
(snip)
OS details: Linux 2.6.19 - 2.6.31
その他
- FINプローブ
- 偽フラグプローブ
- ISN(Initial Sequece Number)サンプリング
- フラグメント処理
- 非フラグメントビット処理
- TCP初期ウィンドウサイズ
- ICMPエラーメッセージ抑制
- ICMPメッセージ引用
- ICMPエラーメッセージエコーインテグリティ
- TOS
- TCPオプション
バナー取得
バナーとは、アプリケーションに接続する時に表示されるアプリケージョン名やバージョンなどの情報です。
OS種別やAP種類・バージョンを特定することにより具体的な脆弱性を明確にすることができる。
エラー画面からもAP情報は判別できる。