CommentsTweetPocketLinuxやUNIXでよく利用するポートスキャン(ネットワークスキャン)コマンドといえば、nmapコマンドだ。今回は、そんなnmapコマンドの覚えておきたい使い方について紹介する。ファイアーウォールで保護されているか確認する7.パケットの送信元を偽装する8.詳細情報を出力させる9.現在動作しているマシンの一覧を取得する10.高速にスキャンを行う11.対象ポートのプロトコルのバージョンを確認する1.基本的な使い方nmapコマンドは、基本的に以下のように実行する事で、対象ホストのポートスキャンを行う。secondstest@test-vm-ubuntu:~$たとえば、「192.168.0.208」に対しnmapを実行すると、開いているポート番号の一覧を取得することが出来る。オプション無しで確認できるのはTCPプロトコルのみだ。UDPの確認方法については後述する。2.複数のホストをスキャンする複数のホストを同時にスキャンする場合は、以下のようにそのまま複数記述して実行すればいい。...連続したIPアドレスの場合は、以下のように指定する事も出来る。192.168.0.100-110別途、対象ホストを記述したリストファイルを利用してスキャンを行う事も出来る。リストファイルPATHその他、ネットワークアドレスを指定してスキャンすることも可能だ。192.168.0.100/243.スキャンするプロトコル・ポートを指定するnmapでは、オプションでスキャンをするプロトコル(TCP/UDP/IP)やポート番号を指定することができる。●TCPプロトコルを指定する(デフォルト)スキャンを行うプロトコルとしてTCPを明示的に指定する場合は、「-sT」オプションを付与する。IPアドレス)ポートも一緒に指定する場合は、「-p」で指定する。IPアドレス)なお、TCPに関してはプロトコルの指定方法も細かく分類されている。FIN/PSH/URGフラグを立てたパケットを送って調べる(Xmasスキャン)●UTPプロトコルを指定するスキャンを行うプロトコルとしてUTPを指定する場合は、「-sU」オプションを付与する。IPアドレス)ポートも一緒に指定する場合は、「-p」で指定する。IPアドレス)●IPプロトコルを指定するスキャンを行うプロトコルとしてIPを明示的に指定する場合は、「-sO」オプションを付与する。IPアドレス)4.OSとそのバージョンを検知するnmapでは、「-O」オプションでOSの種類を、「-A」オプションでOSの種類とそのバージョンを検知する事が出来る。IPアドレス)5.事前のping送信をせずにスキャンを行うnmapでは、スキャンの前にpingでの疎通確認を行っている。これを行わせないようにするには、「-Pn」オプションを付与する。保護されているかどうかは、「-sA」オプションを利用することで確認出来る。(filteredというのが出力されたら保護されている。これはOS上でファイアーウォールが動作していても同様。Spoofing)してパケットの送信を行うことが出来る。パケット元を偽装する場合は「-e」オプションでインターフェイス(eth0など)を指定する必要があるので注意。IPアドレス)対象ホストのログにこちらのIPアドレスを完全に残したくない場合は、「-sI」オプションでIdleScanを利用し、踏み台経由でのスキャンを行うと良いだろう。細かい内容については、こちらが詳しい。IPアドレス)こちらは通常はあまり利用しないと思うが、「-D」オプションを付与することで、囮の送信元IPアドレスを指定して、複数の送信元から同時にスキャンを行っているように装う事も出来る。IPアドレス)「–source-port」オプションで、送信元ポートを偽装することも出来る。MACアドレスの偽装を行う事も出来る。MACアドレスの指定方法は、直接指定の他にベンダー名(Apple,Ciscoなど)やランダムでの生成(0)などがある。IPアドレス)8.詳細情報を出力させる「-v」オプションを付与することで、詳細なスキャン情報を取得することが出来る。IPアドレス)9.現在動作しているマシンの一覧を取得する以前こちらでも紹介した内容だが、「-sP」オプションを実行することで、pingを利用してそのネットワークで現在動作しているマシンの一覧を取得する事が出来る。対象ホストのネットワーク(192.168.0.0/24など。範囲を普通に指定するだけでも可能)10.高速にスキャンを行う高速にスキャンを行いたい場合、「-F」オプションを付与することで、よく利用されるポートのみに絞ってスキャンを行う事で時間を短縮することが出来る。IPアドレス)11.対象ポートのプロトコルのバージョンを確認する「-sV」オプションを指定することで、対象のポートで動作しているソフトやプロトコル(sshなど)のバージョンを取得することが出来る。ポートを指定せずに実行するとすごい時間がかかるので、基本的にポート指定とセットで実行すると良いだろう。IPアドレス)とりあえず、以上11個の使い方を挙げてみた。nmapには他にも色々な使い方があるので、随時追加していきたいと思う。blacknonインフラエンジニア(...のつもり)。仕事で使うならクライアントはWindowsよりはUNIXの方が好き。Commentコメントをキャンセルメールアドレスが公開されることはありません。