Nmap
ポートスキャンの定番とも言えるNmapについて説明します。
Nmapの概要
Nmapはポートスキャンを行うだけでなく、様々なセキュリティチェックが出来るソフトウェアです。
Nmapのポートスキャン機能を使うとサーバーまで通信可能かポート単位で調査が出来ます。このため、ルーターやファイアウォール、サーバー等でフィルタリングしている時の調査に便利です。
GPLというライセンスを採用していて、自由にダウンロードして無料で利用出来ます。
Nmapのダウンロード
Nmapは以下のサイトの左サイドバーで「Download」をクリックし、「Microsoft Windows binaries」の段落にある「nmap-x.xx-setup.exe」をクリックしてインストールするパソコンにダウンロードします。
Nmapのインストール
ダウンロードしたファイルをダブルクリックして実行します。ユーザーアカウント制御の画面が出たら「はい」をクリックすると以下の画面になります。
ライセンス同意画面のため「I Agree」をクリックすると以下の画面になります。
「Next>」をクリックすると以下の画面になります。
インストール先を変更する場合は「Browse...」をクリックして変更してから、変更しない場合はそのまま「Install」をクリックします。ファイルをコピーする画面が出た後、以下の画面になります。尚、インストール時にWinPcap等も同時にインストールする場合で既にインストールされている場合はその旨を知らせるメッセージが出力されますが、「OK」をクリックすると次に進みます。新規でインストールする場合は「Wireshark」をご参照下さい。
「Next>」をクリックすると以下の画面になります。
「Start Menu Folder」はタスクバーの一番左のWindowsマークから選択出来るようになるため通常はチェックしたままにします。
「Desktop Icon」はデスクトップに表示するかどうかなので、表示したい人はチェックしたままにします。
「Next>」をクリックすると以下の画面になります。
「Finish」をクリックするとインストールは完了です。
Nmapの使い方
Nmapはコマンドプロンプトからnmap [オプション] 相手IPアドレス又はFQDN等で実行出来ます。
ポートスキャン時によく使うオプションは以下の通りです。
オプション | 意味 | 指定例 |
---|---|---|
-sS | TCPでスキャンする。(デフォルト) | -sS |
-sU | UDPでスキャンする。 | -sU |
-p ポート番号 | ポート番号を指定する | 80等、79-80と範囲、79,80と複数指定も可能 |
-p T:ポート番号 | TCPポート番号を指定する | 80等、79-80と範囲、79,80と複数指定も可能 |
-p U:ポート番号 | UDPポート番号を指定する | 80等、79-80と範囲、79,80と複数指定も可能 |
以下は192.168.1.1に対してTCPポート番号79-80をスキャンした場合の例です。
コマンドプロンプト |
---|
C:\>nmap -p 79-80 192.168.1.1 Starting Nmap x.xx ( http://xxxx ) at 20xx-xx-xx xx:xx XX (標準時) Nmap scan report for test (192.168.1.1) Host is up (0.0023s latency). PORT STATE SERVICE 79/tcp closed finger 80/tcp open http MAC Address: 11:11:11:11:11:11 (test company) Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds |
79番ポートはクローズしていて80番ポートはオープンしている事が分かります。
次に192.168.1.1に対してUDPポート番号52,53をスキャンした場合の例です。
コマンドプロンプト |
---|
C:\>nmap -sU -p 52,53 192.168.1.1 Starting Nmap x.xx ( http://xxxx ) at 20xx-xx-xx xx:xx XX (標準時) Nmap scan report for test (192.168.1.1) Host is up (0.010s latency). PORT STATE SERVICE 52/udp closed xns-time 53/udp open domain MAC Address: 11:11:11:11:11:11 (test company) Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds |
52番ポートはクローズしていて53番ポートはオープンしている事が分かります。
TCP、UDP両方を一度にスキャンする場合は以下のように指定します。
コマンドプロンプト |
---|
C:\>nmap -sU -sS -p 79-80 192.168.1.1 Starting Nmap x.xx ( http://xxxx ) at 20xx-xx-xx xx:xx XX (標準時) Nmap scan report for test (192.168.1.1) Host is up (0.00s latency). PORT STATE SERVICE 79/tcp closed finger 80/tcp open http 79/udp closed finger 80/udp closed http MAC Address: 11:11:11:11:11:11 (test company) Nmap done: 1 IP address (1 host up) scanned in 0.15 seconds |
TCP、UDPそれぞれで異なるポート番号を一度にスキャンする場合は以下のように指定します。
コマンドプロンプト |
---|
C:\>nmap -sU -sS -p T:79-80,U:52,53,54 192.168.1.1 Starting Nmap x.xx ( http://xxxx ) at 20xx-xx-xx xx:xx XX (標準時) Nmap scan report for test (192.168.1.1) Host is up (0.0028s latency). PORT STATE SERVICE 79/tcp closed finger 80/tcp open http 52/udp closed xns-time 53/udp open domain 54/udp closed xns-ch MAC Address: 11:11:11:11:11:11 (test company) Nmap done: 1 IP address (1 host up) scanned in 0.17 seconds |
インストール時にZenmapのチェックを外していない場合、ZenmapによりNmapをGUIで利用出来ます。
Zenmapはタスクバーの一番左のWindowsマークからNmapフォルダを選択し、「Nmap - Zenmap GUI」を選択して起動します。
赤枠部分にコマンドを入力してエンターキーを押すと実行され、結果が青枠部分に表示されます。コマンドはコマンドプロンプトと同じです。
「Posts/Hosts」等タブを切り替える事で結果に対するそれぞれの項目についてGUIで情報が参照出来ます。例えば「Posts/Hosts」タグでは以下のようにポートのopen、closeをGUIで確認出来ます。
Nmapによりポートスキャンを行う場合は、自分の管理しているネットワーク、且つ管理しているサーバーに対して調査する場合に行って下さい。
インターネットにある管理外のサーバーに対して行うと相手側のIPS等で防御されて通信自体が出来なくなる可能性があります。又、悪意がある場合は法的処罰を受ける可能性があります。
- 応用編「ポート番号」