HOME 戻る

 Nmapの調査


<本書は、nmapを調べた時のメモを基に記述したもので、内容はまだ完成されていません。>


Nmapは、有名なポートスキャナー・ソフトで世界中で多くのユーザーに使われています。このソフトは多くの機能を持っているのですが、かえって使い方が分かりにく面もありますので、その機能を調べてみましょう。


調査環境


Nmapの使い方

コマンドラインで Nmap [オプション] [スキャン対象] と入力します。



問題は、オプションの数が多い事と、その使い方の理解が難しいということです。スキャン対象については、その規則を憶えるだけですので難しくありません。オプションの理解のコツは、スキャンの工程を考えることです。スキャンの工程は、@ホスト検出、Aホストの種類の特定、Bホストで利用できるサービスの検出、と進んでいきます。どの工程でどのオプションが必要となるのかを押さえておきます。

とりあえずオプションを何も指定せずに「Nmap 192.168.1.0/24」と対象をネットワークにして起動すると、対象のネットワークからホストを検出し、検出したホストで起動しているサービスの一覧を表示します。これは一般的なスキャナーの動作として、Nmapのデフォルトの動作により検出作業を行っています。通常この動作で終えてしまっても良いのですが、実はこの動作だけでは済まない場合もあります。このデフォルトの状態をアナライザーで追ってみると、ネットワークの各IPアドレスにICMPのEchoリクエストが発行されて、それに反応したIPアドレスに対し、各ポートにSYN付きのTCPパケットを送信しています。この状態ではUDPに対するアプローチをしていない様に見えますので、UDP上のサービスは検出されていません。また、こんなに無意味なSYN付きのTCPパケットが届くとファイアーウォールが対象へのパケットを廃棄してしまうかもしれません。Nmapはその辺のことを考慮して多くのパラメーターにより動作のバリエーションを増やす工夫がなされています。


ホストの検出

Nmapを使用する目的はネットワーク上のホストを見つけ出すことです。既にホストのIPアドレスが分かっている場合はこの工程を省略できますが、分からない場合はどの範囲内のホストを検出するのか考える必要があります。次にその対象の記述方法と検出方法のオプションについてまとめます。


スキャン対象のアドレス記述方法

最初にスキャンする対象の設定の仕方を憶えておきます。スキャン対象は、ホスト名、IPアドレス、ネットワークをCIDRまたはFQDNで指定します。


スキャン対象に関するオプション


DNSに関するオプション

Nmapはデフォルト状態で、ホストを検出するとDNSを逆引きする仕様になっていますが、それらを制御するオプションが用意されています。


ホスト検出に関するオプション

ホスト検出は、ネットワークの中から有効なホストを見つけ出す作業なので、スキャン対象はネットワークを指定します。


ホストの調査

対象ホストが検出したら、次はそのホストの情報を調べる工程に入って行きます。次はその関連のオプションをまとめます。


ホスト調査の中でも最も重要な工程はポートスキャンですが、Nmapはポートスキャンにより、ポートを次の6つの状態に分類します。


ポート指定に関するオプション

Nmapはポートを明示的に指定しない場合、デフォルト動作としてNmap-servicesファイルに登録されているポートをスキャンします。


ポートスキャン関するオプション

Nmapはポートスキャン関して様々なオプションを用意しています。それらを組み合わせて使用することが可能ですが、UDPとTCPのオプションの組み合わせは適切に設定されている必要があります。またrawパケットを使用する場合、権限が与えられている必要があります。


サービスとバージョンの検出


OSの検出


スクリプトエンジン(NSE)に関するオプション

Nmapにはスクリプトエンジンが搭載されています。この機能により、ユーザーはLuaというスクリプト言語を使用してNmapを拡張することができます。


タイミングとパフォーマンスに関するオプション

スキャン対象が少ない場合は特に問題がないが、対象が多くなった場合はその処理速度が問題になります。Nmapは処理速度を改善するために多くのオプションを用意しています。


ファイアウォール/IDS の回避とスプーフィングに関するオプション


出力に関するオプション


参考文献


Copyright © 2012 Layer Co.,Ltd. All rights reserved.