为什么漏扫工具用nat之后漏洞会变少
拿我自己的漏扫漏洞一台测试服务器做实验,效果立竿见影。工具内网直接扫,漏扫漏洞Nessus报出四十多个漏洞,工具其中高危七八个。漏扫漏洞把同一台机器映射到公网,工具用NAT后的漏扫漏洞IP再扫一遍,漏洞数直接掉到十几个,工具高危只剩两个。漏扫漏洞差距就是工具这么明显。
原因其实不复杂。漏扫漏洞NAT(网络地址转换)在中间扮演了一个“翻译官”的工具角色,把内网的漏扫漏洞真实IP藏了起来,对外只暴露一个公网IP。工具漏扫工具扫的漏扫漏洞是这个公网IP,它看到的是一扇关着的门——门后面有多少房间、房间里摆着什么家具,它根本看不见。内网扫描则像是拿到了整栋楼的图纸,每个房间都能进去翻箱倒柜。
具体到技术层面,NAT设备默认会过滤掉很多入站流量。比如内网一台机器开了3389远程桌面端口,内网扫描直接能探测到Windows版本、补丁级别,甚至尝试弱口令。但经过NAT映射后,除非你明确配置了端口转发,否则公网IP上的3389端口是关闭状态。漏扫工具连端口都连不上,自然也就没法进一步探测服务版本、收集 banners,漏洞数量自然骤降。
还有个细节容易被忽略——NAT设备本身会改写数据包。某些漏洞扫描依赖发送特定构造的探测包,比如畸形包或分片包,NAT在转发过程中可能直接丢弃这些包,或者修改了包头信息,导致扫描工具收到的是“无响应”或“响应异常”的结果,从而误判服务不可达。我见过一台内网机器开了SSH服务,但经过NAT后,扫描器居然报告“SSH服务未开启”,原因就是NAT对TCP握手过程中的某些选项做了处理,扫描器误以为服务不存在。
另外,漏扫工具本身也有局限性。它依赖的漏洞匹配规则,很多是基于服务版本号和已知CVE的对应关系。内网扫描时,它能直接读取服务返回的版本字符串,比如“OpenSSH_7.4p1”,精确匹配漏洞库。但经过NAT后,有些服务会隐藏版本信息,或者NAT设备做了协议伪装,扫描器拿到的只是一个模糊的响应,匹配不上具体漏洞,只能报个“未知服务”了事。这就像你去药店买药,内网扫描是直接看药瓶上的成分表,NAT之后你只能看到外包装盒,连生产日期都被遮住了。
但话说回来,漏洞变少不代表真的安全。NAT只是让攻击面变窄了,不是把漏洞消掉了。内网机器如果被攻破一台,横向移动时NAT根本拦不住。而且现在很多攻击者会先打NAT设备本身,或者利用内网钓鱼获取跳板,再从内部发起扫描。我见过不少企业觉得“反正有NAT,外网扫不到漏洞”,结果内网一台打印机被利用,直接横向渗透到核心数据库。NAT相当于给房子加了个门卫,但窗户没关严,小偷照样能进来。
所以,用NAT后漏洞变少,是扫描工具的视野变窄了,不是系统真的变安全了。真正要做的,是定期做内网扫描,别只盯着公网IP看。你要是只拿NAT后的结果去应付合规检查,那没问题,但要是真信了“漏洞少=安全”,迟早要出事。
(责任编辑:休闲)













