端口扫描技术
SYN、连接与 UDP
端口扫描技术 是 CoddyKit 上的免费 Ethical Hacking Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Ethical Hacking Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Ethical Hacking Academy 课程共包含 4 节课。
为什么要扫描端口
开放端口会暴露主机正在运行的服务,这就是您的攻击面地图。端口扫描用于确定哪些 TCP 和 UDP 端口处于开放、关闭或被过滤状态。
Nmap 提供多种扫描技术,每种技术在速度、隐蔽性和所需权限方面各有取舍。
端口状态
Nmap 会将每个端口报告为以下某种状态:
- 开放:某项服务正在主动接受连接。
- 关闭:可以到达,但没有服务在监听。
- 被过滤:防火墙阻止了探测,因此 Nmap 无法确定状态。
- 开放|被过滤和关闭|被过滤:结果存在歧义。
TCP 三次握手
要理解扫描,您需要先了解 TCP 握手:
- 客户端发送 SYN。
- 如果端口开放,服务器回复 SYN-ACK。
- 客户端发送 ACK,完成连接。
关闭的端口会回复 RST。不同扫描类型完成握手的程度不同。
SYN 扫描
SYN 扫描(-sS)是在 root 身份下运行时的默认方式。它发送 SYN,检查 SYN-ACK(开放)或 RST(关闭),随后发送 RST,从而不完成握手。
这种“半开放”扫描速度快且相对隐蔽,因为从未建立完整连接。它需要原始套接字权限。
sudo nmap -sS 192.168.1.10连接扫描
连接扫描(-sT)通过 OS 网络 API 完成完整的三次握手。它不需要特殊权限,因此是无特权用户的备用方式。
由于会完成完整连接,这种扫描声量更大,也更容易被目标上的服务记录。
nmap -sT 192.168.1.10UDP 扫描
UDP 扫描(-sU)用于发现 DNS、SNMP 和 DHCP 等使用 UDP 的服务。UDP 是无连接协议,因此扫描速度慢且较为棘手:
- 没有响应通常意味着开放|被过滤。
- 收到 ICMP 端口不可达消息意味着端口关闭。
UDP 服务经常被忽略,因此可能隐藏有价值的发现结果。
sudo nmap -sU --top-ports 50 192.168.1.10隐蔽扫描
一些扫描会发送不寻常的标志组合,以绕过简单的防火墙并避免 SYN 记录:
- FIN(
-sF):仅设置 FIN 标志。 - NULL(
-sN):不设置任何标志。 - Xmas(
-sX):设置 FIN、PSH 和 URG,像“圣诞树一样点亮”。
这些扫描依赖 RFC 行为,通常只在某些协议栈上有效。
sudo nmap -sX 192.168.1.10选择端口
控制要扫描的端口,在速度和覆盖范围之间取得平衡:
-p 80,443指定端口。-p 1-1000指定范围。-p-扫描全部 65535 个端口。--top-ports 100扫描最常见的端口。-F快速扫描排名前 100 的端口。
nmap -p- 192.168.1.10
nmap --top-ports 100 192.168.1.10速度模板
-T 标志将速度设置为 0(偏执)到 5(疯狂):
- -T0/-T1:速度非常慢,用于躲避 IDS。
- -T3:均衡的默认设置。
- -T4:速度更快,常用于可靠的网络。
- -T5:攻击性强,可能会遗漏结果。
扫描越快,产生的动静越大,结果不准确的风险也越高。
nmap -sS -T4 -p- 192.168.1.10防火墙规避基础
Nmap 提供了用于测试防火墙和 IDS 韧性的选项:
-f将数据包进行分片。-D使用诱饵源地址。--source-port伪造受信任的源端口,例如 53。
只能在获准的测试中使用这些选项,以评估检测能力。
组合成实用扫描
实际扫描通常会组合这些选项。常见的全面 TCP 扫描会选择扫描类型、扫描所有端口、使用更快的速度,并保存结果。
先进行广泛扫描以发现开放端口,然后只对实际开放的端口执行有针对性的后续扫描(版本检测、脚本)。这种两阶段方法比一次完成所有操作更快、更安静。
sudo nmap -sS -p- -T4 -oA tcp_all 192.168.1.10
# Then deep-scan only the open ports found快速检查
将扫描方式与其行为进行匹配。
回顾
您学习了端口扫描技术:
- 端口状态包括开放、关闭、被过滤及其有歧义的变体。
- SYN 扫描(-sS)是隐蔽的默认方式;连接扫描(-sT)不需要权限,但产生的动静更大。
- UDP(-sU)速度慢,但能发现容易被忽略的服务。
- FIN/NULL/Xmas扫描可以绕过简单的防火墙。
- 使用
-p控制端口,使用-T控制速度,并使用 -f/-D 测试规避能力。
下一步:服务和 OS 检测。
用 AI 导师学习 Ethical Hacking Academy — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 31
- 课程
- 111
常见问题解答
「端口扫描技术」课时是免费的吗?
是的 — 「端口扫描技术」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Ethical Hacking Academy 课程的其余内容,请升级到 CoddyKit PRO。 Ethical Hacking Academy 课程共包含 4 节课。
「端口扫描技术」这节课中我会学到什么?
SYN、连接与 UDP 你通过在浏览器中直接运行的动手代码来练习 Ethical Hacking Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Ethical Hacking Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Ethical Hacking Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。
「端口扫描技术」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Ethical Hacking Academy 课中编写并运行代码吗?
能。每节 Ethical Hacking Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。