ポートの指定とスキャンの順序

Nmapには、これまでに述べたすべてのスキャン手法に加えて、どのポートをスキャンするかや、スキャンの順序をランダムにするか順序通りにするかなどを指定するためのオプションが用意されている。デフォルトでは、Nmapは、1024番(を含む)までの全ポートと、1025番以降のポートはスキャン対象のプロトコルに応じてnmap-servicesファイルに記載されたポートをスキャンする。

-p <port ranges> (指定されたポートのみスキャン)

このオプションで、スキャンしたいポートを指定できる。この指定は、デフォルトより優先される。ポート番号は個別に指定しても、ハイフン区切りの範囲(例:1-1023)で指定してもよい。範囲の先頭や終端の値は省略できる場合があり、この場合は範囲の先頭に1、終端に65535がそれぞれ使われる。したがって、-p-と指定すると、1番から65535番までのポートをスキャンできる。ゼロ番ポートのスキャンは、明示的に指定することで実行できる。IPプロトコルスキャン(-sO)を行うには、このオプションでスキャンしたいプロトコル番号を指定する(0-255)。

TCPポートとUDPポート両方のスキャンを実行する場合は、ポート番号の前にT:U:という限定子を付けることで、特定のプロトコルを指定できる。この限定子は、次に別の限定子が指定されるまで有効になる。例えば、-p U:53,111,137,T:21-25,80,139,8080 という引数を指定すると、UDPポートの53番、111番、137番と、列挙したTCPポートのスキャンが実行される。UDPとTCPポート両方のスキャンを実行するためには、-sUおよび最低1つのTCPスキャンタイプ(-sS-sF-sTなど)を指定する必要があるので注意すること。プロトコル限定子が特に指定されていない場合、指定したこれらのポート番号はすべてのプロトコルリストに追加される。

-F (高速 (限定したポートだけ) スキャン)

Nmapに同梱されているnmap-servicesファイル(-sOでは「protocols」ファイル)に列挙されているポートだけをスキャンするように指定する。こうすることで、ホスト上の全65535ポートをスキャンするよりもはるかに高速になる。このリストには非常に多く(1200以上)のTCPポートが含まれているので、デフォルトのTCPスキャン(約1650ポート)との速度差はそれほど大きくはない。--datadirオプションを使って、自分で独自に作成した小さなnmap-servicesファイルを指定すると、この速度差をかなり大きくすることができる。

-r (ポートの順番を無作為にしない)

デフォルトでは、Nmapはスキャンするポートの順番を無作為に選ぶようになっている(効率化のために特定のよく使われるポートを最初のほうに移動した場合を除く)。このような無作為化は通常であれば望ましいが、代わりに番号順にポートスキャンを行いたい場合はこの-rオプションを指定する。