はじめに
このチャレンジでは、サーバー上の不正な UDP サービスをスキャンすることで、潜在的なセキュリティ侵害を調査します。具体的には、ポート 9995 で待機している不正な UDP サーバーをセットアップし、Nmap を使用して localhost に対して 9990-10000 の範囲の UDP スキャンを実行します。スキャン結果は ~/project/udp_scan_results.txt に保存されます。
あなたのタスクは、指定された範囲内で開いている UDP ポート番号を特定し、コンソールに出力することです。grep を使用して Nmap の出力を解析し、awk や sed を使ってポート番号を抽出します。オープンな UDP ポートが見つからない場合は、"No open UDP port found" と出力してください。また、このチャレンジには、Nmap のスキャン結果ファイルが存在し、期待される出力が含まれていることを確認する検証ステップも含まれています。
オープン UDP ポートの特定
サーバー上の不正な UDP サービスをスキャンして、潜在的なセキュリティ侵害を調査してください。
タスク
- Nmap を使用して localhost の 9990-10000 ポートを対象に UDP スキャンを実行し、結果を
~/project/udp_scan_results.txtに保存します。 - 指定された範囲内で開いている UDP ポート番号を特定し、それを
OPEN_UDP_PORTという名前の環境変数に格納します。
要件
- UDP スキャンの実行には
nmapコマンドを使用すること。 - Nmap のスキャン結果を
~/projectディレクトリ内のudp_scan_results.txtという名前のファイルに保存すること。 - Nmap コマンドは localhost (127.0.0.1) の 9990 から 10000 までのポートをスキャンすること。
grepを使用してudp_scan_results.txtファイルを解析し、オープンポートを特定すること。- 見つかった最小のオープン(open)ポート番号を環境変数
OPEN_UDP_PORTに格納すること。ポートが開いていない場合は、変数に "NONE" を設定すること。
例
ポート 1234 が開いている場合:
echo $OPEN_UDP_PORT
1234
指定された範囲内にオープンな UDP ポートがない場合:
echo $OPEN_UDP_PORT
NONE
ヒント
- UDP スキャンのために Nmap を実行する際は、
sudoを使用することを忘れないでください。 - UDP スキャンを指定するには、Nmap の
-sUオプションを使用します。 - Nmap の出力ファイルから
openを含む行を見つけるにはgrepを使用します。 grepの出力からポート番号を抽出するにはawkやsedを使用します。- 環境変数を設定するには
export OPEN_UDP_PORT=valueを使用します。
まとめ
このチャレンジの目的は、不正な UDP サービスのセキュリティ調査をシミュレートし、localhost の 9990-10000 の範囲内で開いている UDP ポートを特定することでした。これには、Python を使用した不正な UDP サーバーのセットアップ、Nmap の -sU オプションを用いた UDP スキャンの実行、およびスキャン結果のファイル保存が含まれます。
解決には、grep を使用して Nmap の出力ファイルからオープンポートを示す行を探し、awk や sed を使用してポート番号を抽出するスキルが必要となります。最終的に、特定されたポート番号をコンソールに出力するか、範囲内にポートが見つからない場合は "No open UDP port found" と表示します。このチャレンジでは、UDP スキャンのための Nmap の活用と、スキャン結果を分析するためのテキスト処理ツールの使用に重点を置いています。



