【nmap】五种扫描技术实战解析:从原理到防火墙规避

张开发
2026/4/19 18:01:22 15 分钟阅读

分享文章

【nmap】五种扫描技术实战解析:从原理到防火墙规避
1. TCP SYN扫描半开放扫描的王者我第一次用nmap做渗透测试时就栽在了TCP全连接扫描上。当时目标服务器的日志里全是我的IP记录差点触发警报。后来师傅甩给我一句用-sS我才知道原来TCP SYN扫描才是安全人员的首选武器。这种扫描之所以被称为半开放是因为它巧妙地利用了TCP三次握手的特性。想象你敲门时只把门推开一条缝确认屋里有人就立刻撤退——这就是SYN扫描的精髓。具体操作时nmap会向目标端口发送SYN包根据响应分三种情况处理收到SYN/ACK回复端口开放门后有回应收到RST回复端口关闭明确拒绝无响应端口被过滤像黑洞一样吞掉请求实测中最经典的命令组合是这样的nmap -sS -Pn -T4 -p 22,80,443 192.168.1.100这里*-sS指定SYN扫描-Pn跳过主机发现防止触发ICMP屏蔽-T4*是速度档位。有次我扫描某云服务器时发现80端口返回SYN/ACK但443无响应后来才明白对方用ACL过滤了443的入站流量。2. TCP全连接扫描最后的备选方案当SYN扫描不可用时比如没有root权限TCP Connect扫描就成了无奈之选。这种扫描会老老实实走完三次握手就像普通人进门要先握手寒暄一样。我在Windows环境下经常用它因为普通用户权限也能执行完整TCP连接。它的判断逻辑更直接连接成功端口开放连接被拒端口关闭连接超时可能被过滤典型命令很简单nmap -sT -p- 10.0.0.1但要注意三个坑一是速度慢每个端口都要完成握手二是在目标系统留下日志last命令就能看到三是容易被IDS捕获。有次我扫描内网打印机时就因为全连接扫描触发了SIEM告警。3. TCP ACK扫描防火墙探测神器很多新手会忽略ACK扫描的价值其实它是探测防火墙规则的利器。原理很简单发送ACK包观察响应——收到RST说明没有状态防火墙无响应则说明存在流量过滤。我在某次红队行动中就靠这个发现客户防火墙配置漏洞nmap -sA --top-ports 20 203.0.113.5扫描显示53端口返回RST但80端口无响应证明防火墙只放行了Web流量。更妙的是结合SYN扫描结果对比如果SYN扫描显示80开放但ACK扫描无响应说明防火墙可能配置了状态检测。4. 秘密扫描三剑客FIN/Xmas/NULL当需要绕过基础IDS时FIN扫描这类特殊技巧就派上用场了。它们利用非常规TCP标志位组合就像用摩斯密码敲门而不是正常敲门FIN扫描只设置FIN标志Xmas扫描FINURGPSH全开像挂满彩灯的圣诞树NULL扫描所有标志位清零判断逻辑很特别收到RST端口关闭无响应开放或被过滤实战中我常用这个组合nmap -sF -sX -sN -p 21-25 172.16.100.1曾用Xmas扫描成功探测到某老旧Windows服务器的135端口因为它的TCP/IP协议栈不符合RFC规范。但要注意现代Linux系统通常会对这类扫描返回RST。5. UDP扫描耐心与技巧的考验UDP扫描是最让人又爱又恨的技术。爱的是它能发现DNS、NTP这些关键服务恨的是速度慢且结果不确定。原理是通过发送UDP探测包等待ICMP端口不可达响应——没收到错误就认为端口可能开放。我的经验是总要加上版本检测nmap -sUV -T3 -F --version-intensity 2 192.168.0.1-sUV组合表示UDP扫描加版本探测-F扫描常见100个端口。有次在银行测试时发现他们防火墙放行DNS但过滤了UDP 161SNMP就是靠这个方法定位的。6. 防火墙规避实战技巧在真实攻防中单纯用一种扫描方式往往不够。我常用的组合拳是先用ACK扫描探测防火墙规则根据结果选择SYN或FIN扫描对关键服务追加UDP扫描比如这个命令就综合了多种技术nmap -sS -sU -Pn -f --data-length 24 --ttl 32 10.10.10.10-f分片可以绕过简单包过滤--data-length添加垃圾数据干扰IDS--ttl设置较小值避免被路由追踪。有次在医疗行业测试中就是靠分片扫描发现了PACS系统的未授权访问漏洞。

更多文章