はじめに
この実験では、Nmap のスキャン統計を分析する方法を学びます。この実験では、定期的にスキャン統計を表示するための --stats-every オプションの使用方法、 -v オプションを使った詳細度の追加、および統計出力をファイルに保存する方法について説明します。また、タイミング統計を見直し、異なるタイミング テンプレートとの統計を比較し、スキャン期間を分析します。
この実験では、まず統計を有効にしてスキャンを実行し、次に出力に詳細度を追加します。次に、統計をファイルに保存して後で分析する方法を学びます。最後に、さまざまなタイミング テンプレートを調べ、それらがスキャン プロセスにどのような影響を与えるかを理解するためにスキャン期間を分析します。
nmap --stats-every 5s 192.168.1.0/24 を使ってステータス付きでスキャンを実行する
このステップでは、Nmap で --stats-every オプションを使って定期的にスキャン統計を表示する方法を学びます。これは、特に大規模なネットワークをスキャンする際のスキャンの進行状況を監視するのに役立ちます。
まず、基本的な構文を理解しましょう。
nmap --stats-every <time> <target>
--stats-every <time>: Nmap がスキャン統計を表示する間隔 (秒) を指定します。<target>: スキャンしたい対象の IP アドレスまたはネットワーク。
このステップでは、192.168.1.0/24 ネットワークをスキャンし、5 秒ごとに統計情報を表示します。
ターミナルで次のコマンドを実行します。
sudo nmap --stats-every 5s 192.168.1.0/24
Nmap がネットワークのスキャンを開始し、5 秒ごとに統計情報を表示するのが見えます。統計情報には、スキャンされたホスト数、起動しているホスト数、および残りの推定時間などの情報が含まれます。
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
Stats: 0:00:05 elapsed; 0 hosts completed (0 up), 256 hosts total
Stats: 0:00:10 elapsed; 0 hosts completed (0 up), 256 hosts total
Stats: 0:00:15 elapsed; 0 hosts completed (0 up), 256 hosts total
...
注: 出力はネットワーク構成によって異なります。スキャンには時間がかかる場合があります。いつでも Ctrl+C を押すことでスキャンを中止できます。これはデモなので、スキャンが完了するまで待つ必要はありません。
nmap -v --stats-every 5s 127.0.0.1 で冗長性を追加する
このステップでは、-v オプションを使って Nmap の出力の詳細度を増やす方法を学びます。また、--stats-every を使って定期的にスキャン統計を表示します。詳細度は、スキャン プロセスに関するより詳細な情報を提供し、トラブルシューティングや Nmap の動作を理解するのに役立ちます。
-v オプションは詳細度レベルを増やします。さらに詳細な出力を得るには、複数回使用できます (例:-vv)。
ターミナルで次のコマンドを実行して、詳細度を付けてローカルホスト (127.0.0.1) をスキャンし、5 秒ごとに統計情報を表示します。
sudo nmap -v --stats-every 5s 127.0.0.1
Nmap がスキャンを開始し、スキャンの各ステップに関するより詳細な情報とともに、5 秒ごとに統計情報を表示するのが見えます。
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Initiating Ping Scan at 10:05
Scanning 127.0.0.1 [4 ports]
Completed Ping Scan at 10:05, 0.00s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 10:05
Completed Parallel DNS resolution of 1 host. at 10:05, 0.00s elapsed
Initiating Connect Scan at 10:05
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Completed Connect Scan at 10:05, 0.00s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000083s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
Stats: 0:00:05 elapsed; 1 hosts completed (1 up), 1 hosts total
Stats: 0:00:10 elapsed; 1 hosts completed (1 up), 1 hosts total
Stats: 0:00:15 elapsed; 1 hosts completed (1 up), 1 hosts total
...
-v オプションによって提供される追加情報に注目してください。たとえば、さまざまなスキャン フェーズの開始と完了などです。これは、Nmap が何をしているかを理解し、問題の診断に非常に役立ちます。
いつでも Ctrl+C を押すことでスキャンを中止できます。これはデモなので、スキャンが完了するまで待つ必要はありません。
nmap --stats-every 5s -oN stats.txt 192.168.1.1 でステータス出力を保存する
このステップでは、-oN オプションを使って Nmap スキャンの出力 ( --stats-every で表示される統計情報も含む) をファイルに保存する方法を学びます。これにより、後でスキャン結果と統計情報を分析できます。
-oN オプションは、出力を指定されたファイルに「通常」の形式で保存することを指定します。
ターミナルで次のコマンドを実行して、ホスト 192.168.1.1 をスキャンし、5 秒ごとに統計情報を表示し、出力を ~/project ディレクトリ内の stats.txt という名前のファイルに保存します。
sudo nmap --stats-every 5s -oN stats.txt 192.168.1.1
Nmap はスキャンを開始し、ターミナルに統計情報を表示しますが、完全なスキャン出力も stats.txt ファイルに保存します。
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
Stats: 0:00:05 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:10 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:15 elapsed; 0 hosts completed (0 up), 1 hosts total
...
スキャン後 (または Ctrl+C で中断した後)、cat コマンドを使って stats.txt ファイルの内容を表示できます。
cat ~/project/stats.txt
これにより、Nmap スキャン出力が表示され、スキャンレポートとスキャン中に表示された統計情報が含まれます。
## Nmap 7.80 scan initiated Fri Oct 27 10:10:00 2023 as: nmap --stats-every 5s -oN stats.txt 192.168.1.1
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
## Nmap done at Fri Oct 27 10:10:15 2023 -- 1 IP address (1 host up) scanned in 15.00 seconds
注: stats.txt の出力は最終的なスキャンレポートであり、定期的な統計情報の更新ではありません。--stats-every を使用するときには、統計情報はターミナルにのみ表示されます。
Xfce 端末でタイミング統計を確認する
このステップでは、Nmap がスキャン中に表示するタイミング統計をどのように観察し、解釈するかを学びます。Xfce ターミナルで --stats-every オプションを使って、これらの統計を定期的に表示します。
タイミング統計を確認するには、ターミナルで次のコマンドを実行します。
sudo nmap --stats-every 2s 192.168.1.1
このコマンドは、ホスト 192.168.1.1 をスキャンし、2 秒ごとにスキャン統計を表示します。
Xfce ターミナルには次のような出力が表示されます。
Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for 192.168.1.1
Host is up (0.00020s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
22/tcp open ssh
Stats: 0:00:02 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:04 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:06 elapsed; 0 hosts completed (0 up), 1 hosts total
Stats: 0:00:08 elapsed; 0 hosts completed (0 up), 1 hosts total
Nmap done at Fri Oct 27 10:15:10 2023 -- 1 IP address (1 host up) scanned in 10.00 seconds
これらの統計が何を意味するのか解説しましょう。
- **
Starting Nmap ...**:この行は、Nmap のバージョンとスキャン開始時刻を示します。 - **
Nmap scan report for ...**:これは標準的な Nmap スキャンレポートで、開いているポートや対象ホストに関するその他の情報を示します。 - **
Host is up ...**:対象ホストが到達可能であることを示します。 - **
Not shown: 999 closed ports**:既定では、Nmap は閉じているポートを表示しないことで出力を削減します。 - **
Stats: 0:00:02 elapsed; 0 hosts completed (0 up), 1 hosts total**:これがこのステップの重要な部分です。- **
elapsed**:スキャン開始後の経過時間 (時:分:秒の形式) を示します。 - **
hosts completed**:完全にスキャンされたホストの数を示します。 - **
(0 up)**:完了したホストのうち、起動しているホストの数を示します。 - **
hosts total**:スキャン対象のホストの総数を示します。
- **
- **
Nmap done at ...**:この行は、スキャン終了時刻とそれにかかった合計時間を示します。
これらの統計を観察することで、スキャンにどのくらいの時間がかかり、どのくらいの速さで進行しているかを把握することができます。これは、より大規模なスキャンに必要な時間を推定したり、パフォーマンスの問題をトラブルシューティングする際に役立ちます。
いつでも Ctrl+C を押すことで、スキャンを中断することができます。
Xfce 端末で異なるタイミング テンプレートとの統計を比較する
このステップでは、Nmap のタイミング テンプレートがスキャン速度と精度にどのような影響を与えるかを調べます。Nmap は、スキャンの攻撃的さを制御するいくつかのタイミング テンプレートを提供しています。これらのテンプレートは、-T オプションの後に 0 から 5 までの数字を指定することで指定されます。
以下は、タイミング テンプレートの概要です。
-T0(慎重): 検出を避けるために最も遅いテンプレート。-T1(こっそり): 慎重に似ていますが、やや速い。-T2(丁寧): 帯域幅とリソースを節約するためにスキャンを遅くします。-T3(通常): 既定のテンプレートで、速度と精度のバランスをとります。-T4(攻撃的): スキャンをより攻撃的に行うことでスキャンを高速化します。-T5(無謀): 最も速いテンプレートですが、検出されやすく、ネットワークの問題を引き起こす可能性もあります。
異なるタイミング テンプレートの影響を比較するために、127.0.0.1 (localhost) に対して 2 回のスキャンを行います。1 回目は -T2 (丁寧) で、もう 1 回は -T4 (攻撃的) で、統計を観察します。
まず、「丁寧」なテンプレートでスキャンを実行します。
sudo nmap -T2 --stats-every 5s 127.0.0.1
Xfce ターミナルの出力を観察します。経過時間とポートがスキャンされる速度に注目してください。比較的ゆっくりとしたスキャンが進むはずです。
次に、「攻撃的」なテンプレートでスキャンを実行します。
sudo nmap -T4 --stats-every 5s 127.0.0.1
再び、Xfce ターミナルの出力を観察します。前回のスキャンとの経過時間とスキャン速度を比較してください。「攻撃的」なテンプレートでははるかに速くスキャンが進むことに気付くはずです。
これら 2 回のスキャンの統計を比較することで、タイミング テンプレートが Nmap スキャンの速度と攻撃的さにどのような影響を与えるかを確認できます。より攻撃的なテンプレートを使用すると、検出されるリスクが増え、対象のネットワークで問題が発生する可能性があることを忘れないでください。特定のニーズとスキャン対象の環境に応じて適切なテンプレートを選択してください。
いつでも Ctrl+C を押すことで、スキャンを中断することができます。
Xfce 端末で走査期間を分析する
このステップでは、Nmap スキャンの期間をどのように分析するかを学びます。スキャンにどのくらいの時間がかかるかを理解することは、ネットワーク評価の計画立案と最適化にとって重要です。Nmap は、スキャン中とスキャン後に詳細な統計情報を提供します。それには、開始時刻、終了時刻、および合計経過時間が含まれます。
スキャン期間を分析するには、まずスキャンを実行し、その後、関連するタイミング情報を出力から調べます。
まず、--stats-every オプションを使用して 127.0.0.1 (localhost) に対してスキャンを実行し、定期的に統計情報を表示します。
sudo nmap --stats-every 5s 127.0.0.1
スキャンが実行されている間、Xfce ターミナルに 5 秒ごとに印刷される統計情報を観察します。これらの統計情報には、スキャンの進行状況、スキャンされたポートの数、および残りの推定時間に関する情報が含まれています。
スキャンが完了すると、Nmap は結果の概要を印刷します。その中には、合計経過時間も含まれています。「Nmap done」で始まる行を探してください。この行には、スキャンに完了するまでにかかった時間が表示されます。
たとえば:
Nmap done: 1 IP address (1 host up) scanned in 2.54 seconds
この例では、スキャンには 2.54 秒かかりました。
前のステップで示したように、-oN オプションを使用して出力をファイルに保存することで、スキャン期間を分析することもできます。スキャンが完了した後、ファイルを開き、「Nmap done」の行を探して経過時間を見つけることができます。
スキャン期間を分析することで、Nmap スキャンのパフォーマンスを把握し、潜在的なボトルネックを特定することができます。この情報を使って、スキャン設定を最適化し、ネットワーク評価の効率を向上させることができます。
まとめ
この実験では、Nmap の --stats-every オプションを使って定期的にスキャン統計を表示する方法を学びました。これにより、特に大規模なネットワークをスキャンしているときに、スキャンの進行状況をモニターできます。この実験では、5 秒ごとに統計を表示しながらスキャンを実行する方法を示し、スキャンされたホスト、起動しているホスト、および残りの推定時間などの情報を表示しました。
さらに、この実験では、詳細度を高めるための -v オプションを紹介しました。これにより、通常の統計情報の更新とともに、スキャンプロセスに関するより詳細な情報が提供されます。



