nmap扫描哪些是漏洞
Nmap本身不直接输出“漏洞编号”,扫描它干的漏洞是侦察兵和测绘员的活——把目标机器的端口状态、服务版本、扫描操作系统指纹摸清楚。漏洞真正“报漏洞”的扫描是它的脚本引擎(NSE),一堆藏在--script参数后面的漏洞小工具,能帮你探测出具体的扫描安全弱点。
拿最常用的漏洞--script=vuln来说,它会调取一堆漏洞检测脚本,扫描比如针对MS17-010(永恒之蓝)的漏洞检测。我去年帮朋友排查一台老Windows Server 2008,扫描跑完这条命令,漏洞屏幕上直接跳出“VULNERABLE: MS17-010”的扫描字样,连445端口都标红了。漏洞这算是扫描最直接的“扫描漏洞”体验——但注意,它只是告诉你“可能存在这个漏洞”,不是100%确认,更不是给你一份修复建议书。
除了vuln大类,Nmap还能针对特定服务做深度探测。比如--script=http-title能抓网页标题,--script=ssl-enum-ciphers能枚举SSL/TLS支持的加密套件——如果扫出来一堆RC4或者NULL cipher,那基本等于告诉别人“我的网站还能用老掉牙的弱加密”。这种扫描结果比直接报漏洞ID更实用,因为它暴露的是配置层面的缺陷,攻击者最喜欢挑这种软柿子捏。
有个坑得提醒你:Nmap的漏洞脚本不是万能的。它依赖服务版本指纹匹配,如果目标服务改了默认端口或者加了WAF,脚本可能直接罢工。我遇到过一台跑了Nginx的机器,--script=vuln扫了半天啥也没报,结果手动用curl测了下,发现存在目录遍历漏洞——Nmap的脚本库里压根没针对这个特定版本的检测规则。所以别迷信单一工具,Nmap扫完,最好再用Nikto或者OpenVAS交叉验证一下。
还有一类容易被忽略的“漏洞”,Nmap能帮你扫出来:开放端口本身。比如你扫到一台数据库服务器,3306端口裸奔在外网,防火墙规则形同虚设。这不算CVE漏洞,但比很多CVE都致命。我见过不少小公司,内部测试环境直接映射公网IP,Redis端口没设密码,Nmap一扫一个准。这种“配置漏洞”靠的就是端口扫描发现的,跟漏洞库无关。
说到底,Nmap的价值在于缩小攻击面。它告诉你“哪里可能有洞”,而不是“洞的具体编号”。真要拿它当漏洞扫描器用,记得加-sV拿准版本号,然后配合--script=firewall-bypass绕过常见拦截,最后再手动验证关键结果。别指望一条命令跑完就高枕无忧——黑客手里可不止一把螺丝刀。









