セキュリティ ネットワーク

nmapコマンドのオプションや結果の見方を解説

脆弱性診断やペネトレーションテスター、ネットワーク管理者など、こういった業務に就く人にとってはnmapは日常的に使うことも多いでしょう。今回はnmapの基本的な使い方や利用頻度が高いと思われるオプションについて解説していきます。

nmapの基本的な使い方と結果の見方

基本的な使い方はnmapコマンドの引数にポートスキャンを行う対象(IPアドレス)を記載するだけです。スキャン方法を指定しないデフォルトの状態ではTCP SYNスキャンが行われます。これによってスキャン対象のホストでオープンしているポートが確認できます。

用法

nmap [スキャンタイプ] [オプション] [対象のIPアドレス]

具体例

試しにスキャンタイプやオプションを指定しないデフォルトの状態で自分の管理下の端末にポートスキャンを行ってみましょう。以下の結果を得ることができました。

//ホストが稼働していることが検出された場合
C:\Program Files (x86)\Nmap>nmap 192.168.11.6

Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-08 23:50 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.0032s latency). #1
Not shown: 998 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp #2
22/tcp open  ssh
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 0.55 seconds #3
//仮に架空のIPアドレスを指定した場合当然ポートスキャンは行われない
C:\Program Files (x86)\Nmap>nmap 192.168.11.200

Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-08 23:59 東京 (標準時)
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 1.57 seconds

(#1)診断対象IPに指定したホストが稼働していることの確認がとれれば「Host is up」と表示されポートスキャンが開始します。ホストが稼働していない場合は以下の通り「Host seems down.」と表示されポートスキャンが行われません。(#2)オープンしているポートに関する情報はオプションによって表示内容が変わりますが「ポート番号/プロトコル」、「ポートのステータス」、「サービス名」は特に重要な部分になります。(#3)最後の行ではどれだけのIPアドレスに対してスキャンを行ったのか、また終了までにかかった時間が表示されています。

ポートの「STATE」の分類

ポートの分類はこれが全てではありませんが特に見る機会が多いのは以下の3つでしょう。

openポートでサービスが起動しており接続を受け付けている状態
closed到達可能ではあるが接続受付を行っていない
filteredファイアウォールなどでスキャンリクエストが宛先に到達できない

open

ポートスキャンを行った宛先でサービスが接続の受付を行っている場合は「open」のステータスとなります。

C:\Users\owner>nmap 192.168.11.6
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-10 23:27 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.0032s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 0.60 seconds

closed

宛先ホストが稼働していてもスキャン対象のポートでサービスが接続受付していないとclosedになります。下の例では80のポートを停止した後にスキャンした場合の結果です。

C:\Users\owner>nmap -p80 192.168.11.6
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-10 23:29 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.027s latency).

PORT   STATE  SERVICE
80/tcp closed http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds

C:\Users\owner>

filtered

ファイアウォールなどでリクエストが破棄され、宛先まで到達できない場合にこのステータスが表示されます。上の「closed」の例の状態で宛先ホストにおいて80番ポート宛のパケットをドロップする設定にしたところ、「filtered」のステータスが表示されるようになりました。

//宛先ホスト側のファイアウォール設定で80/tcpにフィルタをかける
kali@ubuntu:~$ sudo firewall-cmd --list-ports
80/tcp
kali@ubuntu:~$ sudo firewall-cmd --remove-port=80/tcp
success
kali@ubuntu:~$ sudo firewall-cmd --list-ports

kali@ubuntu:~$
C:\Users\owner>nmap -p80 192.168.11.6
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-11 00:06 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.071s latency).

PORT   STATE    SERVICE
80/tcp filtered http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 0.31 seconds

nmapの主要なオプションと使用例

nmapのオプションは以下の通りです。ここに載せているのが全てではありませんが現場で脆弱性診断士として働いてみて使用頻度が高いと思われるものを独断と偏見で載せました。出力例と詳細の解説については後述しています。

-sSTCP SYNスキャン、デフォルトで利用されるスキャンで、SYNパケットを送信し応答に応じてポートの状態を判定
-sTTCP Connectスキャン、対象のポートとコネクションを確立しポートの状態を判定
-sUUDPスキャン、空のUDPヘッダをスキャン対象のポートに送信して状態を判断
-iL対称のIPアドレスやネットワークをファイルから読み込んでスキャン
--exclude指定したIPアドレスやネットワークを除外しスキャン
-PO,-Pn対称ホストを全てオンラインとみなしてスキャン
-n名前解決を行わない
-p指定したポートのみをスキャン
-sV稼働しているサービスの詳細情報を出力
-Oスキャン対象ホストのOSを検出
-Tスキャン速度を設定
--max-rtt-timeout検査用リクエストを中止或いは再送信するまでのタイムアウト値
-oNスキャン結果をテキストで出力
-oXxml形式で結果を出力
-v進捗の詳細な情報を出力
--append-output指定したファイルに出力結果を上書きではなく追記する

-sSオプション(TCP SYNスキャン)

nmapデフォルトのスキャンタイプです。スキャンタイプを省略したりオプションに「-sS」を指定するとこの方法によるスキャンが実施されます。SYNパケットを送信してその応答によってポートの状態を判断します。

//デフォルトの状態と変わらない
C:\Users\owner>nmap -sS 192.168.11.6
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-11 15:30 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.0038s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds

-sTオプション(TCP Connect()スキャン)

TCP ConnectスキャンではTCP SYNスキャンと異なりコネクションの確立まで行うスキャン方法です。コネクションを張るためネットワークのオーバーヘッドが増加しスキャンに時間がかかります。nmap公式では-sSオプションを選択できない場合の選択肢として-sTオプションを利用することが推奨されていますが、実脆弱性診断の現場をいくつか経験した身としては-sSよりも-sTの方が多く使われている印象があります。理由はわかりませんがコネクションの確立まで行うとログに残るケースが多いので、後々何かあった場合でも遡って調査できることが都合良いのかもしれません。

//出力結果は変わらないが-sSの場合とスキャン時間は大きく異なる
C:\Users\owner>nmap -sT 192.168.11.6
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-11 15:33 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.0054s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 201.17 seconds

//一個前の-sSオプションを指定した事例ではスキャン時間は以下の通り
Nmap done: 1 IP address (1 host up) scanned in 0.51 seconds

-sUオプション(UDPスキャン)

UDPサービスに対するスキャンを実施します。UDPは一方的にデータを送信するという仕様上宛先から応答が返ってくることがほとんどありません。nmapの内部で応答が返って来ずにタイムアウトした場合は再試行が行われるため、スキャンにかなりの時間を要することが多いのが特徴です。UDPスキャンを高速化する方法もありますが長くなってしまうのでそちらは別の機会で触れる予定です。

//スキャンに1556秒もかかってる!
C:\Windows\system32>nmap -sU 192.168.11.6
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-11 15:34 東京 (標準時)
Stats: 0:02:39 elapsed; 0 hosts completed (1 up), 1 undergoing UDP Scan
UDP Scan Timing: About 20.13% done; ETC: 15:47 (0:10:31 remaining)
Nmap scan report for 192.168.11.6
Host is up (0.051s latency).
Not shown: 937 closed udp ports (port-unreach), 62 open|filtered udp ports (no-response)
PORT    STATE SERVICE
123/udp open  ntp
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 1556.10 seconds

-iLオプション

nmapのポートスキャンリストをファイルから読み込むオプションです。脆弱性診断やペネトレーションテストの業務では顧客から対象システムのリストをもらうと思いますが、対象が数十、数百システムありネットワークのセグメントも異なっているものが多くあるといったようなケースでは手動で細かくスキャンの対象を指定するのは中々骨が折れる作業でしょう。そういった場合対象に対して効率よくスキャンを行う方法のひとつとしてファイルから読み込むという方法があります。

//テキストに読み込んだIPアドレスをまとめてスキャンすることができる
C:\Windows\system32>nmap -sT -P0 -iL "C:\Users\owner\Desktop\test.txt"
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-11 16:59 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.0056s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http

Nmap scan report for 192.168.11.11
Host is up (0.000057s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT   STATE SERVICE
21/tcp open  ftp

Nmap done: 2 IP addresses (2 hosts up) scanned in 85.86 seconds

--excludeオプション

ネットワークのセグメントなど広範囲に対してスキャンをかける場合などで、特定のホストをスキャン対象から除外したいケースがあります。これは--excludeオプションを利用することで実現可能です。今私のネットワーク内では以下の通り4つの端末が稼働していますが、excludeオプションに指定された端末はスキップされています。

//--excludeで除外しなかった場合セグメント内の端末が全てスキャンされる
C:\Windows\system32>nmap 192.168.11.0/24
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 15:42 東京 (標準時)
Nmap scan report for buffalo.setup (192.168.11.1)
Host is up (0.0012s latency).
Not shown: 995 closed tcp ports (reset)
PORT     STATE    SERVICE
53/tcp   open     domain
80/tcp   open     http
443/tcp  open     https
444/tcp  filtered snpp
3517/tcp open     802-11-iapp
MAC Address: 90:96:F3:52:F8:C0 (Buffalo.inc)

Nmap scan report for 192.168.11.4
Host is up (0.0035s latency).
Not shown: 999 closed tcp ports (reset)
PORT     STATE    SERVICE
1322/tcp filtered novation
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap scan report for 192.168.11.6
Host is up (0.012s latency).
Not shown: 975 filtered tcp ports (no-response), 24 filtered tcp ports (admin-prohibited)
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap scan report for 192.168.11.2
Host is up (0.00024s latency).
Not shown: 994 closed tcp ports (reset)
PORT    STATE SERVICE
80/tcp  open  http
135/tcp open  msrpc
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
902/tcp open  iss-realsecure
912/tcp open  apex-mesh

Nmap done: 256 IP addresses (4 hosts up) scanned in 31.62 seconds
//除外した場合
C:\Windows\system32>nmap 192.168.11.0/24 --exclude 192.168.11.1-5
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 15:45 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.026s latency).
Not shown: 982 filtered tcp ports (no-response), 17 filtered tcp ports (admin-prohibited)
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 251 IP addresses (1 host up) scanned in 15.49 seconds

//こんな感じの複数指定もできるよ
C:\Windows\system32>nmap 192.168.11.0/24 --exclude 192.168.11.1,192.168.11.2,192.168.11.4
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 15:46 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.021s latency).
Not shown: 988 filtered tcp ports (no-response), 11 filtered tcp ports (admin-prohibited)
PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 253 IP addresses (1 host up) scanned in 8.28 seconds

-P0(0は数字のゼロ),-Pnオプション

nmapではポートスキャン前にICMPや検出用のリクエストを投げるなどしてホストを検出する過程がありますが、それに対して想定通りの結果が得られない場合ホストはダウンしているもとみなされポートスキャンが行われません。ただ実際はICMPの応答を制御しているだけ等といった理由でホストは稼働していることがありますので、そういった場合はこのオプションを使うことでポートスキャンが可能です。

//デフォルトではポートスキャンが行われない
C:\Users\owner>nmap -sT 192.168.11.10
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 16:08 東京 (標準時)
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 1.57 seconds

//-P0オプションを指定するとポートスキャンを行うことができる
C:\Users\owner>nmap -sT -P0 192.168.11.10
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 16:08 東京 (標準時)
Nmap scan report for 192.168.11.10
Host is up (0.00031s latency).
Not shown: 998 filtered tcp ports (no-response)
PORT   STATE SERVICE
21/tcp open  ftp
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 43.36 seconds

-nオプション

Nmapでは検出したホストに対して内部で名前解決を行いますが、その分処理に時間を要します。時間が限られている場合は「-n」オプションを設定することで名前解決を省略し処理時間の短縮を行うことができます。以下は単一の対象に対してスキャンを実行してるので処理時間の恩恵をあまり受けませんが積算されるとかなりの違いが出ます。

//1個目の例では名前解決が行われるが2個目は行われない
C:\Users\owner>nmap 192.168.11.1
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-15 00:02 東京 (標準時)
Nmap scan report for buffalo.setup (192.168.11.1)
Host is up (0.0019s latency).
Not shown: 995 closed tcp ports (reset)
PORT     STATE    SERVICE
53/tcp   open     domain
80/tcp   open     http
443/tcp  open     https
444/tcp  filtered snpp
3517/tcp open     802-11-iapp
MAC Address: 90:96:F3:52:F8:C0 (Buffalo.inc)

Nmap done: 1 IP address (1 host up) scanned in 1.54 seconds

C:\Users\owner>nmap -n 192.168.11.1
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-15 00:02 東京 (標準時)
Nmap scan report for 192.168.11.1
Host is up (0.0014s latency).
Not shown: 995 closed tcp ports (reset)
PORT     STATE    SERVICE
53/tcp   open     domain
80/tcp   open     http
443/tcp  open     https
444/tcp  filtered snpp
3517/tcp open     802-11-iapp
MAC Address: 90:96:F3:52:F8:C0 (Buffalo.inc)

Nmap done: 1 IP address (1 host up) scanned in 1.48 seconds

-pオプション

ポートを指定してスキャンしたい場合に利用します。

$ nmap -p22 192.168.11.6
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-12 20:06 JST
Nmap scan report for 192.168.11.6
Host is up (0.068s latency).

PORT   STATE SERVICE
22/tcp open  ssh

Nmap done: 1 IP address (1 host up) scanned in 13.21 seconds

//範囲指定や複数指定なんかもできる
$ nmap -p21-22,80 192.168.11.6
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-12 20:07 JST
Nmap scan report for 192.168.11.6
Host is up (0.067s latency).

PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http

Nmap done: 1 IP address (1 host up) scanned in 13.19 seconds

-sVオプション

稼働しているサービス名やバージョン情報を取得します。

//赤字の部分の情報が追加で表示される
$ nmap -sV 192.168.11.6
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-12 20:10 JST
Nmap scan report for 192.168.11.6
Host is up (0.0043s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
21/tcp open  ftp     vsftpd 3.0.5
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3 (Ubuntu Linux; protocol 2.0)
80/tcp open  http    Apache httpd 2.4.52 ((Ubuntu))
Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 20.11 seconds

-Oオプション

宛先のOSに関する情報を取得します

$ sudo nmap -O 192.168.11.6
[sudo] kali のパスワード:
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-12 20:15 JST
Nmap scan report for 192.168.11.6
Host is up (0.0044s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.6
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.99 seconds

-Tオプション

ポートスキャンの速度を指定します。nmapでは様々なオプションを利用してスキャンの速度や精度を調整できますが使い慣れていない人がその調整をするのは難しいため、そういった内容をまとめて設定するテンプレートである「-T」オプションが用意されています。指定できるのは以下の6種類です。

テンプレート速度
paranoid (0)最も遅い
sneaky (1)非常に遅い
polite (2)遅い
normal (3)デフォルト
aggressive (4)速い(※推奨)
insane (5)非常に速い

paranoid(0)、sneaky(1)、polite(2)を使用することはほぼありません。時間が掛かりすぎて実際の脆弱性診断の業務などでは支障をきたすためです。nmapの公式で最近のネットワーク環境でのスキャンでは「aggessive(-T4)」が推奨と記載されてますが、実際の現場でもこの「aggessive(-T4)」を利用してスキャンすることが多いです。ネットワーク環境が悪い、或いはネットワークに負荷をかけないように言われてるなど、そういった場合はT3オプションの利用を検討します。

--max-rtt-timeoutオプション

検査用リクエストに対する応答を待機する時間を指定します。全てのホストがローカルネットワーク上で且つポートスキャンを高速化したい場合100msを指定するか、或いはpingなどを送信して得られたRTTタイムの3~4倍を指定するのが公式マニュアルでは推奨されています。実際の業務では対象システムによって応答の速さにバラつきがあり、応答が遅い対象を真面目にスキャンしていると作業が時間内に終わりませんので、--max-rtt-timeoutを設定するなどしてスキャン速度や精度を調整します。当然--max-rtt-timeoutを低く設定するとスキャンは早くなる一方精度は落ちますが、速度と精度の塩梅は診断会社が提供しているサービスの思想や顧客が作業時間をどれだけ確保可能かなど、複数の要因を元に調整を行います。

//ローカル環境ではネットワークの信頼性が高くあまり--max-rtt-timeoutの恩恵は受けない
C:\Users\owner>ping -n 10 192.168.11.6

192.168.11.6 に ping を送信しています 32 バイトのデータ:
192.168.11.6 からの応答: バイト数 =32 時間 =70ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =89ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =5ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =31ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =51ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =74ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =95ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =4ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =36ms TTL=64
192.168.11.6 からの応答: バイト数 =32 時間 =58ms TTL=64

192.168.11.6 の ping 統計:
    パケット数: 送信 = 10、受信 = 10、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 4ms、最大 = 95ms、平均 = 51ms

C:\Users\owner>nmap -v -sT --max-rtt-timeout 100ms 192.168.11.6
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-13 23:50 東京 (標準時)
Initiating ARP Ping Scan at 23:50
Scanning 192.168.11.6 [1 port]
Completed ARP Ping Scan at 23:50, 0.07s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 23:50
Completed Parallel DNS resolution of 1 host. at 23:50, 0.06s elapsed
Initiating Connect Scan at 23:50
Scanning 192.168.11.6 [1000 ports]
Discovered open port 21/tcp on 192.168.11.6
Discovered open port 80/tcp on 192.168.11.6
Discovered open port 22/tcp on 192.168.11.6
Completed Connect Scan at 23:50, 41.44s elapsed (1000 total ports)
Nmap scan report for 192.168.11.6
Host is up (0.0070s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Read data files from: C:\Program Files (x86)\Nmap
Nmap done: 1 IP address (1 host up) scanned in 41.71 seconds
           Raw packets sent: 1 (28B) | Rcvd: 1 (28B)

//timeoutを指定せず実行すると以下の通り、これと比べると若干早い?
Nmap done: 1 IP address (1 host up) scanned in 58.50 seconds

//本当は良くないがアグレッシブに50msまで落としたらさすがに目に見えて早くなった
C:\Users\owner>nmap -v -sT --max-rtt-timeout 50ms 192.168.11.6
……
……
……
Read data files from: C:\Program Files (x86)\Nmap
Nmap done: 1 IP address (1 host up) scanned in 23.56 seconds

-oNオプション

テキスト形式でポートスキャンの結果を出力します。ちなみに同じファイルに出力すると追記ではなく上書きされてしまうので注意しましょう。実際の業務ではログが上書きされると困るので、上書きではなく追記する--append-outputオプションと同時に利用されることが多いです。

C:\Users\owner>nmap 192.168.11.6 -oN "C:\Users\owner\Desktop\portscan.txt"
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 20:46 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.0036s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 0.61 seconds
//出力先を同じにしたまま間違ったスキャンを実施してしまうと上書きされる
C:\Users\owner>nmap 192.168.11.250 -oN "C:\Users\owner\Desktop\portscan.txt"
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 21:06 東京 (標準時)
Note: Host seems down. If it is really up, but blocking our ping probes, try -Pn
Nmap done: 1 IP address (0 hosts up) scanned in 1.57 seconds

-oXオプション

xml形式でポートスキャンの結果を出力します。-oNオプションと同じで追記ではなく上書きなので注意しましょう。

C:\Users\owner>nmap 192.168.11.6 -oX "C:\Users\owner\Desktop\portscan.xml"
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 21:18 東京 (標準時)
Nmap scan report for 192.168.11.6
Host is up (0.0036s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

Nmap done: 1 IP address (1 host up) scanned in 0.55 seconds

-vオプション

デフォルトの状態ではスキャンが一通り終わったタイミングで結果が表示されますが、このオプションを指定するとポートのオープンが検出された時点で表示されます。またポートスキャンがどれくらい終わったのかパーセンテージで随時表示してくれます。オープンされたポートに対して別途作業する場合は、このオプションを指定して検出があった時点で並行作業することにより効率的に作業を進められます。

C:\Users\owner>nmap -v -sT -T2 -P0 192.168.11.10
Host discovery disabled (-Pn). All addresses will be marked 'up' and scan times may be slower.
Warning: The -P0 option is deprecated. Please use -Pn
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-12 21:28 東京 (標準時)
Initiating Parallel DNS resolution of 1 host. at 21:28
Completed Parallel DNS resolution of 1 host. at 21:28, 0.05s elapsed
Initiating Connect Scan at 21:28
Scanning 192.168.11.10 [1000 ports]
Discovered open port 21/tcp on 192.168.11.10
Discovered open port 22/tcp on 192.168.11.10
Discovered open port 80/tcp on 192.168.11.10
Connect Scan Timing: About 2.55% done; ETC: 21:48 (0:19:45 remaining)
Connect Scan Timing: About 5.95% done; ETC: 21:45 (0:16:04 remaining)
Connect Scan Timing: About 9.35% done; ETC: 21:44 (0:14:42 remaining)
Connect Scan Timing: About 12.75% done; ETC: 21:44 (0:13:48 remaining)
Connect Scan Timing: About 16.50% done; ETC: 21:44 (0:12:59 remaining)
Connect Scan Timing: About 20.60% done; ETC: 21:43 (0:12:12 remaining)
Connect Scan Timing: About 25.30% done; ETC: 21:43 (0:11:25 remaining)
Connect Scan Timing: About 30.10% done; ETC: 21:43 (0:10:36 remaining)
Connect Scan Timing: About 35.20% done; ETC: 21:43 (0:09:47 remaining)
Connect Scan Timing: About 40.30% done; ETC: 21:43 (0:08:59 remaining)
Connect Scan Timing: About 45.40% done; ETC: 21:43 (0:08:12 remaining)
Connect Scan Timing: About 50.50% done; ETC: 21:43 (0:07:25 remaining)
Connect Scan Timing: About 55.60% done; ETC: 21:43 (0:06:38 remaining)
Connect Scan Timing: About 60.75% done; ETC: 21:43 (0:05:51 remaining)
Connect Scan Timing: About 65.80% done; ETC: 21:43 (0:05:06 remaining)
Connect Scan Timing: About 70.90% done; ETC: 21:43 (0:04:20 remaining)
Connect Scan Timing: About 76.00% done; ETC: 21:43 (0:03:34 remaining)
Connect Scan Timing: About 81.10% done; ETC: 21:43 (0:02:49 remaining)
Connect Scan Timing: About 86.25% done; ETC: 21:43 (0:02:03 remaining)
Connect Scan Timing: About 91.30% done; ETC: 21:43 (0:01:18 remaining)
Connect Scan Timing: About 96.40% done; ETC: 21:43 (0:00:32 remaining)
Completed Connect Scan at 21:43, 889.90s elapsed (1000 total ports)
Nmap scan report for 192.168.11.10
Host is up (0.00019s latency).
Not shown: 997 filtered tcp ports (no-response)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http

Read data files from: C:\Program Files (x86)\Nmap
Nmap done: 1 IP address (1 host up) scanned in 890.03 seconds

--append-outputオプション

-oNオプションや-oXオプションを使うとポートスキャンの結果がファイルに出力されますが、複数回同じファイルに出力すると上書きされてしまいます。実際の業務では何を実施したか証跡が残った方が好ましいケースが多いので、ファイル出力する場合はこのオプションも指定し追記することが多いです。

//同じファイルに連続して出力
# Nmap 7.93 scan initiated Sun Mar 12 22:18:08 2023 as: nmap --append-output -oN C:\\Users\\owner\\Desktop\\portscan.txt 192.168.11.6
Nmap scan report for 192.168.11.6
Host is up (0.0046s latency).
Not shown: 997 closed tcp ports (reset)
PORT   STATE SERVICE
21/tcp open  ftp
22/tcp open  ssh
80/tcp open  http
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

# Nmap done at Sun Mar 12 22:18:08 2023 -- 1 IP address (1 host up) scanned in 0.60 seconds
# Nmap 7.93 scan initiated Sun Mar 12 22:18:45 2023 as: nmap -p21 --append-output -oN C:\\Users\\owner\\Desktop\\portscan.txt 192.168.11.6
Nmap scan report for 192.168.11.6
Host is up (0.096s latency).

PORT   STATE SERVICE
21/tcp open  ftp
MAC Address: 18:3E:EF:DD:1D:30 (Apple)

# Nmap done at Sun Mar 12 22:18:46 2023 -- 1 IP address (1 host up) scanned in 0.37 seconds

-セキュリティ, ネットワーク