基本的な Nmap UDP スキャンの実行
このステップでは、前のステップでセットアップした UDP サーバーを Nmap でスキャンします。このプロセスは、Nmap が開いている UDP ポートとそれらのポートで動作しているサービスをどのように識別するかを理解するのに役立つため、非常に重要です。このステップの終了時には、サイバーセキュリティの分野で不可欠なスキルである、Nmap を使用した UDP スキャンの方法をより深く理解することができます。
Nmap UDP スキャンの理解
Network Mapper の略称である Nmap は、ネットワーク探索とセキュリティ監査に使用される有名な無料のオープンソースツールです。UDP ポートのスキャンに関しては、Nmap は TCP ポートスキャンとは異なる動作をします。
UDP (User Datagram Protocol) は接続指向ではないプロトコルです。データ転送前に接続を確立する TCP とは異なり、UDP は最初に接続を設定せずにデータを送信します。これは、TCP ポートに使用される従来の接続ベースのスキャン方法が UDP には機能しないことを意味します。
Nmap が UDP ポートをスキャンするとき、空の UDP パケットをターゲットポートに送信し、応答を待ちます。ポートが閉じている場合、ターゲットシステムは通常、ICMP の「ポート到達不能」メッセージを返します。ただし、ポートが開いている場合、事情は少し複雑になります。応答がまったくないこともあり、ポートが本当に開いているかどうかを判断するのが難しくなります。また、ポートで動作している UDP サービスがパケット形式を認識した場合、応答を送信することもあります。
UDP スキャンは一般的に TCP スキャンよりも低速で信頼性が低いことに注意することが重要です。これは、UDP には TCP のようなエラーチェックと再送の組み込みメカニズムがないためです。
UDP スキャンの実行
-
まず、新しいターミナルウィンドウを開きます。UDP サーバーが実行されている前のターミナルを開いたままにしておくことを確認してください。これは、現在そのターミナルでアクティブな UDP サーバーをスキャンするため、重要です。
-
次に、プロジェクトディレクトリに移動する必要があります。新しいターミナルで、次のコマンドを実行します。
cd /home/labex/project
このコマンドは、現在の作業ディレクトリを、関連するすべてのファイルと設定が格納されているプロジェクトディレクトリに変更します。
- 次に、Nmap UDP スキャンを実行します。ローカルホスト (127.0.0.1) のポート 9999 をターゲットにスキャンします。次のコマンドを実行します。
sudo nmap -sU -p 9999 127.0.0.1 > /home/labex/project/udp_scan_results.txt
このコマンドを分解して、各部分が何をするかを理解しましょう。
sudo
: これは、コマンドを管理者権限で実行するために使用されます。UDP スキャンは、低レベルのネットワーク層でパケットを送信するため、これらの管理者権限が必要です。
nmap
: これは、私たちが使用しているスキャンツールです。ネットワーク探索とセキュリティ監査のための操作の核心です。
-sU
: このオプションは、Nmap に UDP スキャンを実行するように指示します。
-p 9999
: このオプションは、ポート 9999 のみをスキャンすることを指定します。
127.0.0.1
: これはターゲットの IP アドレスです。この場合、ローカルホストであり、つまり自分自身のマシンをスキャンしています。
> /home/labex/project/udp_scan_results.txt
: この部分は、Nmap スキャンの出力をプロジェクトディレクトリ内の udp_scan_results.txt
という名前のファイルにリダイレクトします。これにより、後で結果を確認することができます。
- スキャンが完了したら、結果を表示することができます。次のコマンドを実行します。
cat /home/labex/project/udp_scan_results.txt
次のような出力が表示されるはずです。
Starting Nmap 7.80 ( https://nmap.org ) at 2023-09-15 12:00 UTC
Nmap scan report for localhost (127.0.0.1)
Host is up (0.000054s latency).
PORT STATE SERVICE
9999/udp open|filtered unknown
Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds
結果の理解
スキャン結果を詳しく見て、それらが何を意味するかを理解しましょう。
open|filtered
状態は、Nmap が ICMP の「ポート到達不能」メッセージを受信しなかったことを示しています。これにはいくつかの可能な説明があります。
- ポートが開いており、UDP サービスが期待通りに動作しています。
- ポートがファイアウォールによってフィルタリングされている可能性があります。ファイアウォールが ICMP の「ポート到達不能」メッセージまたは UDP トラフィック自体をブロックしている可能性があります。
- 何らかの理由で、ターゲットシステムが ICMP の「ポート到達不能」メッセージを送信していない可能性があります。
私たちの場合、自分たちで UDP サーバーをセットアップしたので、ポートが開いていることがわかっています。unknown
サービスラベルは、Nmap がサービスのフィンガープリントに基づいてそのポートで動作しているサービスを判断できなかったことを意味します。
前述のように、UDP スキャンは TCP スキャンよりも確定的ではありません。そのため、Nmap は UDP ポートに対してしばしば open|filtered
状態を表示し、UDP ポートの状態を正確に判断するのが少し難しくなります。