Nmap でネットワーク環境をシミュレートする

NmapNmapBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、Nmap を使ってさまざまなネットワーク状況をシミュレートする方法を学びます。これには、チェックサムが不正なパケットを送信するための nmap --badsum 192.168.1.1、特定の MTU を設定するための nmap --mtu 1400 127.0.0.1 などのコマンドや、それらの組み合わせを調べます。また、詳細度を追加するための -v や結果をファイルに保存するための -oN を学びます。最後に、Xfce 端末でこれらのシミュレーションの影響を分析します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/basic_syntax("Basic Command Syntax") nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/scan_types("Scan Types and Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/timing_performance("Timing and Performance") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/syn_scan("SYN Scan") subgraph Lab Skills nmap/basic_syntax -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} nmap/output_formats -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} nmap/save_output -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} nmap/scan_types -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} nmap/target_specification -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} nmap/timing_performance -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} nmap/verbosity -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} nmap/syn_scan -.-> lab-547113{{"Nmap でネットワーク環境をシミュレートする"}} end

nmap --badsum 192.168.1.1 を使ってチェックサムの不正をシミュレートする

このステップでは、Nmap を使ってチェックサムの不正をシミュレートする方法を調べます。チェックサムは、ネットワークを介して送信されるデータの整合性を検証するために使用されます。チェックサムが不正であることは、データが送信中に破損したことを示しています。チェックサムの不正をシミュレートすることは、システムが破損したパケットをどのように処理するかをテストする際に役立ちます。

まず、コマンドの基本構文を理解しましょう。

nmap --badsum <target_ip>

ここで、--badsum は、Nmap に対して不正なチェックサムを持つパケットを生成するように指示するオプションです。<target_ip> は、スキャンしたい対象の IP アドレスです。

コマンドを実行する前に、不正なチェックサムを持つパケットを送信することは、一部のネットワークデバイスやセキュリティシステムによって悪意のある活動として解釈される可能性があることを理解することが重要です。したがって、テストネットワーク上でこのオプションを使用するか、明示的な許可を得た対象に対して使用するのが最善です。

さて、コマンドを実行しましょう。IP アドレス 192.168.1.1 を対象にします。必要な許可があり、この IP をスキャンすることが許可されていることを確認してください。

Xfce 端末を開き、次のコマンドを実行します。

sudo nmap --badsum 192.168.1.1

おそらく、Nmap が不正なチェックサムを持つパケットを送信していることを示す出力が表示されます。正確な出力は、対象のシステムとネットワーク構成によって異なります。

出力の例(異なる場合があります):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds

注:出力は、すべてのポートがフィルタリングされていることを示しています。これはただの例であり、実際の結果は対象によって異なります。重要な部分は、Nmap が --badsum オプションでスキャンを実行したことです。

このコマンドは、意図的に破損したチェックサムを持つパケットを 192.168.1.1 に送信します。これは、システムが無効なパケットをどのように処理するかをテストするために使用できます。

nmap --mtu 1400 127.0.0.1 を使って MTU を設定する

このステップでは、Nmap を使って最大送信単位(MTU)サイズを設定する方法を学びます。MTU は、ネットワークインターフェイスが送信できる最大のパケットサイズ(バイト)です。デフォルトでは、Nmap は自動的にネットワークの MTU を検出します。ただし、テスト目的で MTU 値を手動で設定することもできます。

使用するコマンドは次のとおりです。

nmap --mtu <mtu_value> <target_ip>

ここで、--mtu はスキャンに使用する MTU 値を指定し、<target_ip> は対象の IP アドレスです。

この特定のケースでは、MTU を 1400 に設定し、ループバックアドレス 127.0.0.1 を対象にします。ループバックアドレスは、常にローカルマシンを指す特別な IP アドレスです。これにより、ネットワークを介してパケットを送信せずに Nmap の MTU 設定をテストすることができます。

Xfce 端末を開き、次のコマンドを実行します。

sudo nmap --mtu 1400 127.0.0.1

Nmap からの出力が表示され、ループバックアドレスをスキャンしていることがわかります。出力には、MTU が 1400 に設定されていることも表示されます。

出力の例(異なる場合があります):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds

このコマンドは、パケットを 127.0.0.1 に送信する際に Nmap に MTU を 1400 に使用させるように指示します。これは、特定のサイズのパケットをシステムがどのように処理するかをテストする際に役立ちます。

nmap -sS --mtu 1000 192.168.1.1 を使って MTU とスキャンを組み合わせる

このステップでは、MTU 設定と特定のスキャンタイプを組み合わせます。SYN スキャン(-sS)と --mtu オプションを使って、指定された MTU サイズでスキャンを実行します。

SYN スキャン(-sS)は、ターゲットに対して SYN パケットのみを送信するステルススキャンです。完全な TCP 接続スキャンよりも高速で検出されにくいです。

使用するコマンドは次のとおりです。

nmap -sS --mtu <mtu_value> <target_ip>

ここで、-sS は SYN スキャンタイプを指定し、--mtu は MTU 値を設定し、<target_ip> は対象の IP アドレスです。

この特定のケースでは、MTU を 1000 に設定し、IP アドレス 192.168.1.1 を対象にします。必要な許可があり、この IP をスキャンすることが許可されていることを確認してください。

Xfce 端末を開き、次のコマンドを実行します。

sudo nmap -sS --mtu 1000 192.168.1.1

Nmap からの出力が表示され、MTU が 1000 の SYN スキャンを実行していることがわかります。正確な出力は、対象のシステムとネットワーク構成によって異なります。

出力の例(異なる場合があります):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds

注:出力は、すべてのポートがフィルタリングされていることを示しています。これはただの例であり、実際の結果は対象によって異なります。重要な部分は、Nmap が --mtu オプションで SYN スキャンを実行したことです。

このコマンドは、特定の MTU サイズの SYN スキャンを組み合わせています。これは、スキャン中にシステムが異なるパケットサイズにどのように応答するかをテストする際に役立ちます。

nmap -v --badsum 127.0.0.1 で冗長性を追加する

このステップでは、Nmap コマンドに冗長性を追加します。冗長性を増やすことで、スキャン中に表示される情報量が増え、デバッグや Nmap が何をしているかを理解するのに役立ちます。

-v オプションは冗長性レベルを上げます。さらに詳細な出力を得るには、複数回使用できます(例えば、-vv)。

最初のステップで使用した --badsum オプションと冗長性オプションを組み合わせて、ループバックアドレス 127.0.0.1 を対象にします。

Xfce 端末を開き、次のコマンドを実行します。

sudo nmap -v --badsum 127.0.0.1

以前のコマンドと比較して、Nmap からより詳細な出力が表示されます。出力には、送信されるパケット、受信される応答、およびスキャンの進捗に関する情報が含まれます。

出力の例(異なる場合があります):

Starting Nmap 7.80 ( https://nmap.org )
NSE: Loaded 0 scripts for scanning.
Initiating Ping Scan at 15:00
Scanning localhost (127.0.0.1) [4 ports]
Completed Ping Scan at 15:00, 0.00s elapsed (1 total hosts)
Host localhost (127.0.0.1) appears to be up ... good.
Initiating Connect Scan at 15:00
Scanning localhost (127.0.0.1) [1000 ports]
Connect Scan Timing: About 0.00% done; ETC: 15:00 (0:00:00 remaining)
Completed Connect Scan at 15:00, 0.01s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.0000090s latency).
All 1000 scanned ports on localhost (127.0.0.1) are closed

Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.02 seconds

-v オプションは、スキャンプロセスに関する詳細な情報を提供し、Nmap が何をしているかを理解しやすく、問題のトラブルシューティングを容易にします。

nmap --mtu 1200 -oN sim.txt 192.168.1.1 で結果を保存する

このステップでは、Nmap のスキャン結果をファイルに保存します。これは、後で分析するためや他の人と結果を共有するために便利です。

-oN オプションは、出力を通常の形式で指定されたファイルに保存することを指定します。

使用するコマンドは次のとおりです。

nmap --mtu <mtu_value> -oN <output_file> <target_ip>

ここで、--mtu は MTU 値を設定し、-oN は通常の形式の出力ファイルを指定し、<output_file> は結果を保存するファイルの名前で、<target_ip> は対象の IP アドレスです。

この特定のケースでは、MTU を 1200 に設定し、出力を ~/project ディレクトリ内の sim.txt という名前のファイルに保存し、IP アドレス 192.168.1.1 を対象にします。必要な許可があり、この IP をスキャンすることが許可されていることを確認してください。

Xfce 端末を開き、次のコマンドを実行します。

sudo nmap --mtu 1200 -oN sim.txt 192.168.1.1

スキャンが完了すると、~/project ディレクトリ内に sim.txt という名前のファイルが作成されます。このファイルには、人が読みやすい形式で Nmap のスキャン結果が含まれています。

ファイルが作成され、スキャン結果が含まれていることを確認するには、cat コマンドを使ってファイルの内容を表示できます。

cat sim.txt

端末に Nmap のスキャン結果が表示されるはずです。

出力の例(異なる場合があります):

## Nmap 7.80 scan initiated Mon Oct 26 15:05:05 2020
Nmap scan report for 192.168.1.1
Host is up (0.00043s latency).
All 1000 scanned ports on 192.168.1.1 are filtered
## Nmap done: 1 IP address (1 host up) scanned in 4.63 seconds

このコマンドは Nmap のスキャン結果をファイルに保存し、後で結果を確認し分析することができます。

Xfce 端末でシミュレーションの影響を分析する

このステップでは、Nmap を使用して実行したシミュレーションの影響を分析します。前のステップの出力を調べて、--badsum--mtu オプションがスキャン結果にどのように影響したかを理解します。

まず、前のステップで作成した sim.txt ファイルを見直しましょう。Xfce 端末を開き、cat コマンドを使ってファイルの内容を表示します。

cat sim.txt

出力を調べます。対象の IP アドレス、スキャンされたポート、およびそれらのポートの状態(例えば、オープン、クローズ、フィルタリング済み)に注目します。

次に、--badsum オプションを考えてみましょう。このオプションは意図的に Nmap パケットのチェックサムを破損させます。実際のシチュエーションでは、これによりパケットがネットワークや対象ホストによって破棄される可能性があります。ただし、破損したパケットでも Nmap はいくらかの情報を提供することができます。

--badsum を使用したコマンドを思い出してください。

sudo nmap --badsum 192.168.1.1

このコマンドの出力(ファイルに保存しなかった場合)は、チェックサムエラーがあるにもかかわらず Nmap がどのように対象をスキャンしようとしたかを示していました。

次に、--mtu オプションを考えてみましょう。このオプションは Nmap パケットの最大送信単位(MTU)を設定します。MTU は、ネットワークを介して送信できる最大のパケットサイズです。MTU が設定されすぎている場合、パケットが断片化される可能性があり、これがスキャン結果に影響を与える可能性があります。MTU が設定されすぎて低い場合、スキャンは遅くなる可能性があります。

--mtu を使用したコマンドを思い出してください。

sudo nmap --mtu 1200 -oN sim.txt 192.168.1.1

MTU を 1200 に設定することで、対象ホストが Nmap パケットを受信して処理する方法に潜在的に影響を与えました。sim.txt ファイルにはこのスキャンの結果が含まれており、--mtu オプションを使用しないスキャン結果と比較することで、違いを確認できます。

さらに影響を分析するために、異なる MTU 値で Nmap スキャンを実行して結果を比較してみることができます。たとえば、デフォルト(通常は 1500)より小さい MTU 値と大きい MTU 値を試してみましょう。

要約すると、--badsum--mtu オプションを使用することで、Nmap スキャンに影響を与える可能性のあるネットワーク状況をシミュレートしました。これらのシミュレーションの結果を分析することで、Nmap が異なる状況下でどのように動作するか、およびそれに応じてスキャン結果をどのように解釈するかを理解することができます。

このステップは主に、前のコマンドの影響を理解することに関係しています。このステップでは、前のステップの出力を見直す以外に実行する特定のコマンドはありません。

まとめ

この実験では、Nmap を使ってネットワーク状況をシミュレートする方法を検討しました。具体的には、--badsum オプションを使って、チェックサムが無効なパケットを対象の IP アドレスに送信する方法を学び、システムが破損したデータをどのように処理するかをテストすることができました。また、--mtu オプションを使って最大送信単位(MTU)サイズを設定し、スキャン中に送信するパケットのサイズを制御する方法を練習しました。

さらに、--mtu オプションをスキャンタイプと組み合わせ、より詳細な出力を得るために -v フラグを使って冗長性を追加することも検討しました。最後に、-oN オプションを使ってスキャン結果をファイルに保存し、後で分析する方法を学び、Xfce 端末でこれらのシミュレーションの影響を分析するよう指示されました。