Nmap で TCP Xmas スキャンを実行する

NmapNmapBeginner
今すぐ練習

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

はじめに

この実験では、Nmap を使って TCP Xmas スキャンを行う方法を学びます。この実験では、Xmas スキャンのさまざまな側面を扱い、対象 IP に対する基本的なスキャンの実行、特定のポートのスキャン、スキャンに詳細度を追加、スキャン結果の保存、FIN スキャンとの比較、および Xfce 端末での結果の分析などが含まれます。TCP ヘッダに FIN、PSH、および URG フラグを設定することで、対象システム上の開いているまたはフィルタリングされたポートを識別することで、Xmas スキャンがどのように機能するかを理解します。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/tcp_connect_scan("Basic TCP Connect Scan") 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/syn_scan("SYN Scan") nmap/NmapGroup -.-> nmap/stealth_scanning("Stealth and Covert Scanning") subgraph Lab Skills nmap/tcp_connect_scan -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/output_formats -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/save_output -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/port_scanning -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/scan_types -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/target_specification -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/verbosity -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/syn_scan -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} nmap/stealth_scanning -.-> lab-547106{{"Nmap で TCP Xmas スキャンを実行する"}} end

nmap を使って Xmas スキャンを実行する -sX 192.168.1.1

このステップでは、Nmap を使って Xmas スキャンを行います。Xmas スキャンは、TCP ヘッダに FIN、PSH、および URG フラグを設定するポートスキャンの一種です。この種のスキャンは、設定されたフラグがクリスマスツリーに似ているため、「Xmas」と呼ばれています。対象システム上の開いているまたはフィルタリングされたポートを識別するのに役立ちます。

始める前に、これらのフラグが何を意味するのかを理解しましょう:

  • FIN (Finish): 接続の終了を示します。
  • PSH (Push): 受信システムに対して、バッファリングされたデータをアプリケーションにプッシュするように指示します。
  • URG (Urgent): 緊急ポインタフィールドが有意であり、緊急に処理する必要のあるデータを指すことを示します。

ホストが Xmas スキャンパケットを受信すると、ポートが閉じている場合、RST(リセット)パケットで応答する必要があります。ポートが開いている場合、ホストはパケットを破棄して応答しません。ただし、一部のシステムは正しく応答しない場合があり、これがオペレーティングシステムやファイアウォールルールを特定するのに役立ちます。

では、対象の IP アドレス 192.168.1.1 に対して Xmas スキャンを実行しましょう。Xfce 端末を開き、次のコマンドを実行します:

sudo nmap -sX 192.168.1.1

このコマンドは、Nmap に対象の IP アドレス 192.168.1.1 に対して Xmas スキャン (-sX) を実行するように指示します。このコマンドを実行するには、sudo 権限が必要です。

スキャンが完了すると、Nmap は結果を表示します。出力には、対象システムからの応答(または応答のない場合)に基づいて、どのポートが開いていると見なされるか、閉じているか、またはフィルタリングされているかが表示されます。

出力の例(実際の出力は対象システムによって異なります):

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
All 1000 scanned ports on 192.168.1.1 are filtered

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

この例では、1000 個のスキャンされたポートすべてがフィルタリングされていると報告されています。これは、対象システムがおそらくスキャンパケットをブロックまたはフィルタリングしているため、Nmap がポートが開いているか閉じているかを判断できなかったことを意味します。

nmap を使って特定のポートをスキャンする -sX -p 22,80 127.0.0.1

このステップでは、特定のポートに焦点を当てて Xmas スキャンを行います。これは、対象マシン上で実行されている特定のサービスの状態を迅速に確認したい場合に役立ち、すべてのポートをスキャンする代わりに使用できます。ローカルホスト(127.0.0.1)のポート 22(SSH)と 80(HTTP)をスキャンします。

Nmap の -p オプションを使用すると、スキャンするポートを指定できます。単一のポート、ポートの範囲(例:1-100)、またはコンマ区切りのポートのリスト(例:22,80,443)を指定できます。

Xmas スキャンを使用してポート 22 と 80 をスキャンするには、Xfce 端末を開き、次のコマンドを実行します:

sudo nmap -sX -p 22,80 127.0.0.1

このコマンドは、Nmap に対象の IP アドレス 127.0.0.1(ローカルホスト)のポート 22 と 80(-p 22,80)に対して Xmas スキャン (-sX) を実行するように指示します。このコマンドを実行するには、sudo 権限が必要です。

スキャンが完了すると、Nmap は指定されたポートの結果を表示します。出力には、ポートが開いているか、閉じているか、またはフィルタリングされているかが示されます。

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

Starting Nmap 7.80 ( https://nmap.org )
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000029s latency).

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

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

この例では、ポート 22 と 80 の両方がフィルタリングされていると報告されています。これは、おそらくローカルホスト上のファイアウォールルールやその他のネットワーク構成のため、Nmap がこれらのポートが開いているか閉じているかを判断できなかったことを意味します。

nmap を使って冗長性を追加する -v -sX 192.168.1.1

このステップでは、Xmas スキャンに冗長性を追加します。Nmap における冗長性とは、スキャン中に表示される情報量を増やすことを意味します。これは、Nmap が何をしているのかを理解するのに役立ち、発生する可能性のある問題のトラブルシューティングにも役立ちます。

Nmap の -v オプションは、冗長性レベルを上げます。通常の冗長性には -v を使用し、さらに詳細な出力には -vv を使用します。

冗長性付きで Xmas スキャンを実行するには、Xfce 端末を開き、次のコマンドを実行します:

sudo nmap -v -sX 192.168.1.1

このコマンドは、Nmap に対象の IP アドレス 192.168.1.1 に対して冗長性を有効にして (-v) Xmas スキャン (-sX) を実行するように指示します。このコマンドを実行するには、sudo 権限が必要です。

出力には、スキャンプロセスに関するより多くの情報が含まれるようになります。たとえば、スキャンされているポート、送信されているパケット、および受信された応答などです。

出力の例(実際の出力は対象システムとネットワーク構成によって異なります):

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:00 UTC
NSE: Loaded 0 scripts for scanning.
Initiating Xmas Scan at 10:00
Scanning 192.168.1.1 [1000 ports]
Completed Xmas Scan at 10:00, 0.00s elapsed (1000 total ports)
Nmap scan report for 192.168.1.1
Host is up (0.0012s latency).
All 1000 scanned ports on 192.168.1.1 are filtered

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

冗長な出力は、スキャンの進行状況に関する詳細な情報を提供します。開始時刻と終了時刻、スキャンされたポートの数、および遭遇したエラーや警告などが含まれます。

nmap を使って Xmas スキャン結果を保存する -sX -oN xmas.txt 127.0.0.1

このステップでは、Xmas スキャンの結果をファイルに保存する方法を学びます。これは、後での分析や調査結果の文書化に役立ちます。Nmap は、スキャン結果をさまざまな形式で保存するためのいくつかのオプションを提供しています。-oN オプションは、結果を「通常の」人間が読みやすい形式で保存します。

Xmas スキャンの結果を xmas.txt という名前のファイルに保存するには、Xfce 端末を開き、次のコマンドを実行します:

sudo nmap -sX -oN xmas.txt 127.0.0.1

このコマンドは、Nmap に対象の IP アドレス 127.0.0.1(ローカルホスト)に対して Xmas スキャン (-sX) を実行し、結果を通常の形式 (-oN) で xmas.txt ファイルに保存するように指示します。ファイルは、現在のディレクトリ(~/project)に作成されます。このコマンドを実行するには、sudo 権限が必要です。

スキャンが完了すると、cat コマンドや nano のようなテキストエディタを使って xmas.txt ファイルの内容を表示できます。

cat xmas.txt

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

## Nmap 7.80 scan initiated Tue Oct 27 10:00:00 2023
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000029s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

## Nmap done at Tue Oct 27 10:00:00 2023 -- 1 IP address (1 host up) scanned in 0.12 seconds

または、nano を使ってファイルを開いて表示することもできます:

nano xmas.txt

これにより、nano テキストエディタで xmas.txt ファイルが開き、スキャン結果を調べることができます。Ctrl+X を押してから、保存を確認するために Y を押し、最後に Enter を押して nano を保存して終了してください。

Xfce 端末で Xmas スキャンと FIN スキャンを比較する

このステップでは、Xmas スキャンの結果と FIN スキャンの結果を比較します。Xmas スキャンと FIN スキャンは、どちらもターゲットシステム上の開いているポートを識別するために使用できるステルススキャンの種類です。これらは、ターゲットに特別に作成された TCP パケットを送信し、応答を分析することによって機能します。

まず、ローカルホスト(127.0.0.1)で FIN スキャンを実行しましょう:

sudo nmap -sF 127.0.0.1

このコマンドは、Nmap に対象の IP アドレス 127.0.0.1 に対して FIN スキャン (-sF) を実行するように指示します。このコマンドを実行するには、sudo 権限が必要です。

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

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.000029s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

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

次に、この出力と先ほど実行した Xmas スキャンの出力を比較しましょう。端末履歴を巻き戻して以前の Xmas スキャン出力を見つけるか、または Xmas スキャンを再実行することができます:

sudo nmap -sX 127.0.0.1

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

Starting Nmap 7.80 ( https://nmap.org ) at 2023-10-27 10:01 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000029s latency).
All 1000 scanned ports on localhost (127.0.0.1) are filtered

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

両方のスキャン結果の類似点と相違点を観察しましょう。多くの場合、結果は同じで、すべてのポートがフィルタリングされていることが示されます。これは、多くの現代のファイアウォールやオペレーティングシステムがこれらの種類のパケットをドロップまたは無視するように構成されているためです。

さらに比較するために、FIN スキャン結果をファイルに保存することができます。これは、Xmas スキャンで行ったことと同じです:

sudo nmap -sF -oN fin.txt 127.0.0.1

その後、diff コマンドを使って 2 つのファイルを比較することができます:

diff xmas.txt fin.txt

このコマンドは、xmas.txtfin.txt ファイルの間の違いを表示します。スキャンが同じ結果を生成した場合、diff コマンドは何も出力しません。

Xfce 端末で結果を分析する

このステップでは、実行した Nmap スキャンの結果を分析します。Nmap スキャンの出力を理解することは、潜在的な脆弱性やセキュリティリスクを特定するために重要です。

まず、Xmas スキャンの結果が含まれる xmas.txt ファイルを調べましょう。このファイルの内容を表示するには、cat コマンドまたは nano のようなテキストエディタを使用できます:

cat xmas.txt

または

nano xmas.txt

出力には通常、次の情報が含まれます:

  • Nmap のバージョン:スキャンに使用された Nmap のバージョン。
  • スキャン開始時刻:スキャンが開始された日付と時刻。
  • ターゲット情報:ターゲットシステムの IP アドレスまたはホスト名。
  • ホストの状態:ターゲットホストが起動しているかどうか。
  • ポートの状態:各スキャンされたポートの状態(例:オープン、クローズ、フィルタリング済み)。
  • スキャン完了時刻:スキャンが完了した日付と時刻。

Xmas スキャンと FIN スキャンの場合、多くの場合、すべてのポートが「フィルタリング済み」と報告されます。これは、ターゲットシステムが Nmap が確定的な判断を下すのに十分な方法でスキャンパケットに応答しなかったため、Nmap がポートがオープンかクローズかを判断できなかったことを意味します。これは、ファイアウォールや侵入検知システム(IDS)で保護されたシステムをスキャンする際の一般的な結果です。

ポートが「オープン」または「クローズ」と報告されている場合、ターゲットシステムが予測可能な方法でスキャンパケットに応答したことを示しています。ただし、Xmas スキャンと FIN スキャンは信頼性が低く、結果が必ずしも正確であるとは限らないことに注意する必要があります。

ターゲットシステムのオープンポートのより正確な画像を得るには、TCP コネクトスキャン (-sT) や SYN スキャン (-sS) など、他の種類の Nmap スキャンを使用する必要がある場合があります。これらのスキャンはより信頼性が高いですが、ファイアウォールや IDS によって検出されやすくなる場合もあります。

要約すると、Nmap スキャン結果の分析には、出力を注意深く調べて潜在的な脆弱性やセキュリティリスクを特定することが含まれます。Nmap のさまざまな種類のスキャンと、各スキャンタイプの制限を理解することが重要です。さまざまなスキャン技術を組み合わせ、結果を注意深く分析することで、ターゲットシステムのセキュリティ状況をより完全に理解することができます。

まとめ

この実験では、参加者は Nmap を使って TCP Xmas スキャンを行う方法を学びます。まず、nmap -sX コマンドを使ってターゲット IP (192.168.1.1) に対して基本的な Xmas スキャンを実行し、TCP ヘッダに FIN、PSH、および URG フラグを設定してオープンまたはフィルタリングされたポートを識別することを理解します。また、特定のポートをスキャンし、スキャンに冗長性を追加し、結果をファイルに保存する方法も学びます。さらに、Xmas スキャンと FIN スキャンを比較し、Xfce 端末で結果を分析します。