查找开放的 UDP 端口

NmapNmapBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在这个挑战中,你将通过扫描服务器上潜在的恶意 UDP 服务来调查一次潜在的安全漏洞。这个挑战包括设置一个监听在 9995 端口的恶意 UDP 服务器,然后使用 Nmap 对 localhost 执行 UDP 扫描,特别针对 9990-10000 端口。Nmap 扫描结果被保存到 ~/project/udp_scan_results.txt

任务是通过将开放的 UDP 端口号打印到控制台来识别和报告指定范围内的开放 UDP 端口号。你将使用 grep 来解析 Nmap 输出,并使用 awksed 来提取端口号。如果没有找到开放的 UDP 端口,你应该打印“No open UDP port found”。这个挑战还包括验证步骤,以确保 Nmap 扫描结果文件存在并包含预期的输出。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL nmap(("Nmap")) -.-> nmap/NmapGroup(["Nmap"]) nmap/NmapGroup -.-> nmap/save_output("Save Output to File") nmap/NmapGroup -.-> nmap/target_specification("Target Specification") nmap/NmapGroup -.-> nmap/udp_scanning("UDP Scanning Techniques") subgraph Lab Skills nmap/save_output -.-> lab-548746{{"查找开放的 UDP 端口"}} nmap/target_specification -.-> lab-548746{{"查找开放的 UDP 端口"}} nmap/udp_scanning -.-> lab-548746{{"查找开放的 UDP 端口"}} end

查找开放的 UDP 端口

通过扫描服务器上潜在的恶意 UDP 服务来调查一次潜在的安全漏洞。

任务

  • 使用 Nmap 对 localhost 执行 UDP 扫描,特别针对 9990-10000 端口,并将结果保存到 ~/project/udp_scan_results.txt
  • 识别指定范围内的开放 UDP 端口号,并将其存储在名为 OPEN_UDP_PORT 的环境变量中。

要求

  1. 使用 nmap 命令执行 UDP 扫描。
  2. 将 Nmap 扫描结果保存到 ~/project 目录中名为 udp_scan_results.txt 的文件中。
  3. Nmap 命令必须扫描 localhost (127.0.0.1) 上的 9990 到 10000 端口。
  4. 使用 grep 解析 udp_scan_results.txt 文件,并识别开放的端口。
  5. 将最小的开放端口号存储在名为 OPEN_UDP_PORT 的环境变量中。如果没有端口是开放的,则将变量设置为 "NONE"。

示例

如果 1234 端口是开放的:

echo $OPEN_UDP_PORT
1234

如果在指定范围内没有 UDP 端口是开放的:

echo $OPEN_UDP_PORT
NONE

提示

  • 记住在运行 Nmap 进行 UDP 扫描时使用 sudo
  • 在 Nmap 中使用 -sU 选项来指定 UDP 扫描。
  • 使用 grep 在 Nmap 输出文件中查找包含 open 的行。
  • 使用 awksedgrep 输出中提取端口号。
  • 使用 export OPEN_UDP_PORT=value 设置环境变量。
✨ 查看解决方案并练习

总结

在这个挑战中,目标是识别 localhost 上 9990-10000 范围内的开放 UDP 端口,模拟对恶意 UDP 服务的安全调查。这包括使用 Python 设置一个恶意 UDP 服务器,使用带有 -sU 选项的 Nmap 执行 UDP 扫描,并将扫描结果保存到文件中。

解决方案需要使用 grep 解析 Nmap 输出文件,以查找指示开放端口的行,然后使用 awksed 提取端口号。最后,将识别出的开放端口号打印到控制台,如果在指定范围内未检测到开放端口,则打印“No open UDP port found”。这个挑战强调了使用 Nmap 进行 UDP 扫描以及使用文本处理工具分析扫描结果。