Nmap 主机发现与端口扫描,教你用受控且保留证据的流程映射在线主机和暴露服务。4 个引导式实验涵盖主机发现、TCP/UDP 扫描机制、性能选择和输出格式;最后的挑战要求你独立映射一个模拟黑盒子网。
引导实验扫描 localhost 预置服务,挑战则提供包含 Web、Redis 和 DNS 主机的隔离 Docker 网络。你会区分主机在线与服务暴露,先控制范围再追求速度,并生成可供人工和命令行工具复核的扫描产物。
你将学到什么
- 使用
-sn、ARP 和 ICMP probe 在不扫描端口的情况下发现在线主机 - 比较完整 TCP Connect、半开放 SYN 和无连接 UDP 扫描行为
- 解读 open、closed、filtered 和
open|filtered,而不把暴露等同于漏洞 - 用 timing template、top ports、明确端口和窄范围限制扫描
- 以 Normal、Grepable 和 XML 格式保存 Nmap 结果
- 用 Shell 工具解析 Grepable 输出,提取开放服务的主机
- 检查连接的子网,从主机列表扫描并汇总 TCP/UDP 发现
本课程适合谁
本课程适合希望学习 Nmap 实操基础的初级渗透测试人员、网络防御人员、系统管理员和安全学习者。课程聚焦发现与服务枚举,不包含漏洞利用或服务指纹识别。
前置要求: 会使用基本 Linux Shell,理解 IPv4 子网、TCP/UDP 端口、ICMP 和客户端—服务器网络,并理解安全评估的授权范围。
学习环境: 5 个在 Ubuntu 22.04 浏览器虚拟机中独立运行的活动,包括 4 个引导式实验和 1 个挑战。本地 Python 服务支持实验,专用 172.18.0.0/24 Docker 网络提供模拟 Nginx、Redis 和 DNS 目标。
常见问题
练习会扫描公网或第三方系统吗?
不会。引导实验只扫描 localhost,挑战使用训练虚拟机内创建的私有 Docker 子网。在其他环境中只能扫描自己拥有或明确获准评估的系统。
SYN 扫描会让我对防御人员完全不可见吗?
不会。它不完成 TCP 握手,可能减少应用层日志,但网络传感器、防火墙和抓包仍能检测。“隐蔽”描述扫描机制,不保证不可见。
为什么 SYN、ARP 和 UDP 扫描需要 sudo?
它们需要原始数据包或底层网络访问。TCP Connect 可使用操作系统普通 socket API,因此通常无需这些权限,这也是课程比较不同方法的原因。
开放端口能证明主机存在漏洞吗?
不能。它只表示可访问的服务边界。判断服务、版本、配置与实际弱点需要本课程之外的进一步授权分析。





