Nmap での Window スキャンの実行

NmapNmapBeginner
今すぐ練習

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

はじめに

この実験では、ネットワークセキュリティにおける重要なスキルである Nmap によるウィンドウスキャンの方法を学びます。この実験では、まずターゲット IP アドレスに対して基本的なウィンドウスキャンを実行し、次に特定のポート範囲をスキャンするように進めます。また、スキャンに詳細度を追加し、結果をファイルに保存し、Xfce 端末でスキャンを分析し、ACK スキャンと比較します。この実践的な経験により、Nmap のウィンドウスキャン機能の理解が深まります。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/output_formats("Output Formats") nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/port_scanning("Port Scanning Methods") nmap/NmapGroup -.-> nmap/scan_types("Scan Types and Techniques") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/verbosity("Verbosity Levels") nmap/NmapGroup -.-> nmap/service_detection("Service Detection") subgraph Lab Skills nmap/output_formats -.-> lab-547107{{"Nmap での Window スキャンの実行"}} nmap/save_output -.-> lab-547107{{"Nmap での Window スキャンの実行"}} nmap/port_scanning -.-> lab-547107{{"Nmap での Window スキャンの実行"}} nmap/scan_types -.-> lab-547107{{"Nmap での Window スキャンの実行"}} nmap/target_specification -.-> lab-547107{{"Nmap での Window スキャンの実行"}} nmap/verbosity -.-> lab-547107{{"Nmap での Window スキャンの実行"}} nmap/service_detection -.-> lab-547107{{"Nmap での Window スキャンの実行"}} end

nmap -sW 192.168.1.1 でウィンドウスキャンを実行する

このステップでは、Nmap を使ってウィンドウスキャンを行います。ウィンドウスキャンは、TCP スキャンの一種であり、他のスキャンタイプよりもオープンおよびフィルタリングされたポートに関する情報をより多く明らかにすることができます。ファイアウォールが他の種類のスキャンをブロックする可能性がある場合、これは特に役立ちます。

始める前に、ウィンドウスキャンが何を行うか簡単に説明しましょう。ウィンドウスキャンは、一部の TCP 実装にある不具合を利用しています。SYN フラグが設定された TCP パケットをターゲットホストに送信します。ポートがオープンの場合、ターゲットは SYN/ACK パケットで応答します。その後、Nmap は応答の TCP ウィンドウサイズを調べます。このウィンドウサイズに基づいて、Nmap はポートがオープンかフィルタリングされているかを判断することができます。

では、ウィンドウスキャンを実行しましょう。次のコマンドを使用します。

nmap -sW 192.168.1.1

192.168.1.1 を、スキャンしたいターゲットの実際の IP アドレスに置き換えます。使用する IP アドレスがわからない場合は、自分自身のマシンを指すループバックアドレス 127.0.0.1 を使用できます。

Xfce 端末を開きます。デスクトップやアプリケーションメニューにある端末アイコンを見つけることができます。

端末で、次のコマンドを入力して Enter キーを押します。

nmap -sW 127.0.0.1

このコマンドは、Nmap にループバックアドレス (127.0.0.1) に対してウィンドウスキャン (-sW) を実行するように指示します。

次のような出力が表示されるはずです。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000072s latency).
Other addresses for localhost (alias(es)): localhost

PORT     STATE  SERVICE
135/tcp  closed msrpc
139/tcp  closed netbios-ssn
445/tcp  closed microsoft-ds

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

出力は、ターゲットマシン上のオープン、クローズ、またはフィルタリングされたポートを示しています。この例では、ポート 135、139、および 445 はクローズされています。特定のポートとその状態は、ターゲットシステムによって異なります。

nmap -sW -p 1-100 127.0.0.1 でポート範囲をスキャンする

このステップでは、ポート範囲を指定することでウィンドウスキャンを拡張します。これにより、特定のポートのセットに対してスキャンを集中させることができ、ターゲットマシン上で実行されているサービスを特定する際に役立ちます。

デフォルトでは、Nmap は事前定義された一般的に使用されるポートのセットをスキャンします。ただし、-p オプションを使用することで、特定のポートまたはポート範囲を対象とするようにスキャンをカスタマイズできます。特定のサービスが非標準ポートで実行されているかどうかを確認したい場合や、より小さなポートのセットに焦点を当てることでスキャン時間を制限したい場合には、これが特に役立ちます。

では、ポート範囲を指定したウィンドウスキャンを実行しましょう。次のコマンドを使用します。

nmap -sW -p 1-100 127.0.0.1

このコマンドは、Nmap にループバックアドレス (127.0.0.1) の 1 から 100 番目のポート (-p 1-100) に対してウィンドウスキャン (-sW) を実行するよう指示します。

Xfce 端末を開きます。

端末で、次のコマンドを入力して Enter キーを押します。

nmap -sW -p 1-100 127.0.0.1

次のような出力が表示されるはずです。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:05 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http

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

出力は、ターゲットマシン上の指定された範囲 (1-100) 内のオープン、クローズ、またはフィルタリングされたポートを示しています。この例では、ポート 22、25、および 80 はクローズされています。特定のポートとその状態は、ターゲットシステムによって異なります。

nmap -v -sW 192.168.1.1 で詳細表示を追加する

このステップでは、ウィンドウスキャンに詳細表示を追加します。詳細表示は、スキャンプロセスに関するより詳細な情報を提供し、トラブルシューティングや結果の理解に役立ちます。

Nmap の詳細表示オプション (-v) は、スキャン中に表示される情報量を増やします。これには、スキャンフェーズの詳細、送信および受信されるパケット、および Nmap が特定の決定を下す理由などが含まれます。ネットワーク問題を診断しようとしている場合や、Nmap がターゲットからの応答をどのように解釈しているかを理解したい場合には、詳細表示を使用することが特に役立ちます。

では、詳細表示付きでウィンドウスキャンを実行しましょう。次のコマンドを使用します。

nmap -v -sW 192.168.1.1

192.168.1.1 を、スキャンしたいターゲットの実際の IP アドレスに置き換えます。使用する IP アドレスがわからない場合は、自分自身のマシンを指すループバックアドレス 127.0.0.1 を使用できます。

Xfce 端末を開きます。

端末で、次のコマンドを入力して Enter キーを押します。

nmap -v -sW 127.0.0.1

このコマンドは、Nmap にループバックアドレス (127.0.0.1) に対してウィンドウスキャン (-sW) を実行し、詳細表示レベルを増やす (-v) よう指示します。

次のような出力が表示されるはずです(正確な出力は異なります)。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:10 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Window Scan at 10:10
Scanning localhost (127.0.0.1) [1000 ports]
Discovered open port 22/tcp on 127.0.0.1
Discovered open port 80/tcp on 127.0.0.1
Completed Window Scan at 10:10, 0.12s elapsed (1000 total ports)
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000039s latency).
Other addresses for localhost (alias(es)): localhost

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

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

出力には、スキャンプロセスに関するより多くの情報が含まれています。たとえば、開始時刻と終了時刻、スキャンされたポート数、および読み込まれたスクリプトなどです。特定の詳細は、ターゲットシステムと Nmap の設定によって異なります。

nmap -sW -oN window.txt 127.0.0.1 でウィンドウスキャンの結果を保存する

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

Nmap は、さまざまな形式でスキャン結果を保存するためのいくつかのオプションを提供しています。-oN オプションは、「通常の」人が読みやすい形式で結果を保存します。この形式は読みやすく理解しやすいですが、自動解析には適さない場合があります。他のオプションには、XML 形式用の -oX やスクリプトキッディ形式用の -oS があります。

では、ウィンドウスキャンを実行して、~/project ディレクトリに window.txt という名前のファイルに結果を保存しましょう。次のコマンドを使用します。

nmap -sW -oN window.txt 127.0.0.1

このコマンドは、Nmap にループバックアドレス (127.0.0.1) に対してウィンドウスキャン (-sW) を実行し、結果を通常の形式 (-oN) で window.txt ファイルに保存するよう指示します。

Xfce 端末を開きます。

端末で、次のコマンドを入力して Enter キーを押します。

nmap -sW -oN window.txt 127.0.0.1

次のような出力が表示されるはずです。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:15 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http

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

スキャン結果は、現在、~/project ディレクトリの window.txt ファイルに保存されています。

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

cat window.txt

出力に Nmap のスキャンレポートが表示されるはずです。

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http
## Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds

Xfce 端末でウィンドウスキャンを分析する

このステップでは、前のステップで window.txt ファイルに保存したウィンドウスキャンの結果を分析します。Nmap スキャンの出力を理解することは、潜在的な脆弱性やセキュリティリスクを特定するために重要です。

window.txt ファイルには、スキャン結果の人が読みやすいレポートが含まれています。レポートには、ターゲットホストに関する情報、スキャンされたポート、および各ポートの状態が含まれます。

Xfce 端末を開きます。

まず、cat コマンドを使用して window.txt ファイルの内容を表示しましょう。

cat window.txt

次のような出力が表示されるはずです(正確な出力は、ターゲットシステムと使用されたスキャンオプションによって異なります)。

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http
## Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds

この出力の重要な部分を分解してみましょう。

  • Nmap scan report for localhost (127.0.0.1):この行は、ループバックアドレス 127.0.0.1 でスキャンが実行されたことを示しています。
  • Host is up:この行は、ターゲットホストに到達可能であることを確認しています。
  • PORT STATE SERVICE:このセクションは、スキャンされたポートとその対応する状態とサービスをリストしています。
  • 22/tcp closed ssh:この行は、ポート 22(SSH)が閉じていることを示しています。
  • 25/tcp closed smtp:この行は、ポート 25(SMTP)が閉じていることを示しています。
  • 80/tcp closed http:この行は、ポート 80(HTTP)が閉じていることを示しています。

STATE 列は特に重要です。ウィンドウスキャンでは、一般的な状態は openclosed、または filtered です。

  • open:ポートが接続を待ち受けていることを示します。
  • closed:ポートが接続を待ち受けていないが、ホストに到達可能であることを示します。
  • filtered:ネットワークフィルタリングが Nmap がポートに到達するのを防いでいるため、Nmap がポートが開いているか閉じているかを判断できないことを示します。

この例では、すべてのスキャンされたポートは closed と報告されています。これは、ターゲットホストに到達可能であるが、これらのポートで接続を受け付けていないことを意味します。

この情報を使用して、潜在的な脆弱性やセキュリティリスクを特定することができます。たとえば、予期せぬポートが open である場合、そのポートで脆弱なサービスが実行されている可能性があります。

では、grep コマンドを使用して window.txt ファイルの開いているポートを検索しましょう。

grep "open" window.txt

開いているポートがない場合、コマンドは出力を返しません。この例では、出力は空です。

Xfce 端末で ACK スキャンと比較する

このステップでは、ACK スキャンを実行し、その結果を先ほど行ったウィンドウスキャンの結果と比較します。この比較により、これら 2 つのスキャンタイプの違いと、ターゲットシステムに関するさまざまな種類の情報を収集するためにどのように使用できるかを理解することができます。

ACK スキャン (-sA) は、ターゲットホストに TCP ACK パケットを送信します。SYN スキャンとは異なり、ACK スキャンは接続を確立しようとしません。代わりに、ファイアウォールが存在するかどうかと、不請求の ACK パケットをどのように処理するかを判断するために使用されます。

ファイアウォールが存在し、不請求の ACK パケットをブロックするように構成されている場合、ACK スキャンはすべてのポートを filtered と報告します。ファイアウォールが存在しないか、または不請求の ACK パケットを許可するように構成されている場合、ACK スキャンはポートを unfiltered または closed と報告します。

では、ループバックアドレス (127.0.0.1) に対して ACK スキャンを実行し、結果を ack.txt という名前のファイルに保存しましょう。

Xfce 端末を開きます。

端末で、次のコマンドを入力して Enter キーを押します。

nmap -sA -oN ack.txt 127.0.0.1

次のような出力が表示されるはずです。

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:20 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE      SERVICE
22/tcp  unfiltered ssh
25/tcp  unfiltered smtp
80/tcp  unfiltered http

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

では、ACK スキャンの結果とウィンドウスキャンの結果を比較しましょう。

ウィンドウスキャンの出力(window.txt から)を思い出してください。

## Nmap 7.80 scan initiated Fri Oct 27 10:15:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE  SERVICE
22/tcp  closed ssh
25/tcp  closed smtp
80/tcp  closed http
## Nmap done: 1 IP address (1 host up) scanned in 2.35 seconds

ウィンドウスキャンでは、ポートは closed と報告されました。ACK スキャンでは、ポートは unfiltered と報告されています。この違いは、これら 2 つのスキャンタイプの動作方法によるものです。ウィンドウスキャンは接続を確立しようとしますが、ACK スキャンは ACK パケットのみを送信します。

ACK スキャンにおける unfiltered 状態は、ACK パケットがフィルタリングされていないため、Nmap がポートが開いているか閉じているかを判断できないことを意味します。これは、ファイアウォールが存在しないこと、またはファイアウォールが不請求の ACK パケットを許可するように構成されていることを示す可能性があります。

また、cat コマンドを使用して ack.txt ファイルの内容を表示することもできます。

cat ack.txt

出力に Nmap のスキャンレポートが表示されるはずです。

## Nmap 7.80 scan initiated Fri Oct 27 10:20:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000070s latency).
Other addresses for localhost (alias(es)): localhost

PORT    STATE      SERVICE
22/tcp  unfiltered ssh
25/tcp  unfiltered smtp
80/tcp  unfiltered http

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

まとめ

この実験では、参加者は Nmap でウィンドウスキャンを実行する方法を学びます。まず、コマンド nmap -sW に続けて IP アドレスを使用して基本的なウィンドウスキャンを実行し、TCP 実装の特徴をどのように利用してポート状態を明らかにするかを理解します。次に、nmap -sW -p 1-100 を使用して特定のポート範囲をスキャンし、-v を使用してスキャンに詳細度を追加し、-oN を使用してスキャン結果をファイルに保存します。最後に、ウィンドウスキャンを分析し、Xfce 端末で ACK スキャンと比較します。