游客发表

nmap如何扫描漏洞

发帖时间:2026-10-17 05:09:28

Nmap扫描漏洞这事儿,何扫其实没你想的描漏那么玄乎。它压根儿不是何扫漏洞扫描器,它是描漏个端口扫描器——但恰恰是这点,让它成了漏洞探测里最趁手的何扫家伙。

拿我上周帮朋友排查一台被挂马的描漏服务器举例。那台机器开着80端口,何扫Web服务跑得欢,描漏可日志里全是何扫奇怪的POST请求。我上去先跑了一条命令:nmap -sV -p 80 192.168.1.105。描漏结果出来了,何扫Apache版本是描漏2.4.49。我脑子里的何扫警报立刻响了——这个版本有个路径穿越漏洞,CVE-2021-41773,描漏可以直接读源码甚至执行命令。何扫漏洞不是nmap告诉我的,是它把版本号丢给我,我自己对上的。

这就是nmap的玩法:它不直接告诉你“这里有漏洞”,而是把目标的指纹摸清楚,剩下的活儿靠你的脑子或者脚本库去干。

真正干漏洞探测的活儿,靠的是NSE(Nmap Scripting Engine)。比如你想看目标有没有永恒之蓝的命,直接来一句:nmap --script smb-vuln-ms17-010 -p 445 192.168.1.105。脚本会主动往445端口发探测包,如果目标回了个特定错误,脚本就报“VULNERABLE”。这比你自己拿Metasploit去撞快得多,也安静得多——不触发IDS的情况下,它只是发几个畸形包而已。

有一次我在内网做授权测试,目标是一台老旧的Windows Server 2008。常规端口扫描一切正常,但当我用--script vuln把所有漏洞脚本全跑一遍时,脚本花了将近四十分钟。期间我盯着屏幕,看它一个个试——CVE-2017-0143、CVE-2019-0708、MS08-067……最后它报了个MS08-067。那台机器居然还开着445,而且没打补丁。这种老掉牙的漏洞,放在现在几乎没人信,但真实环境里就是有。nmap的脚本库覆盖了从2003年到2024年的主流漏洞,覆盖面比你想的宽。

不过你得分清楚,nmap的漏洞扫描属于“轻量级侦察”,它和Nessus、OpenVAS那种重武器不一样。Nessus会发几百个探测包,把目标打得满头包;nmap的脚本通常是单发或者双发探测,追求的是“够用就行”。所以你要是拿nmap去扫一个装了WAF的站点,大概率会被拦截,因为WAF能识别出nmap的指纹——User-Agent、TCP窗口大小、包发送间隔,这些细节都出卖了你。

说个实际案例。去年我帮一个客户排查他们内网的打印机——对,打印机。那台HP LaserJet开了9100端口,我用nmap默认脚本扫了一遍,居然发现它开放了SNMP公共字符串,而且固件版本老得掉渣。通过--script snmp-info,我拿到了设备型号和序列号,然后直接在HP官网上找到了该型号的已知远程代码执行漏洞。整个过程没碰任何漏洞库,全靠nmap把信息扒干净。

操作上,你最好用-sV做版本探测,再用-O做操作系统识别,最后根据结果挑脚本。别一上来就--script vuln,那玩意儿跑起来慢不说,还容易误报。先摸清目标是什么系统、什么服务、什么版本,再精准打击。比如你扫到一台Linux跑了OpenSSH 7.2,那就去搜这个版本对应的CVE,然后找专门的脚本去验证。

最后提醒一句:nmap扫描漏洞有个致命弱点——它依赖端口开放。如果目标把端口全关了,或者用防火墙拦了你的IP,那它再牛也白搭。所以真正的高手不会只靠nmap,而是结合其他工具交叉验证。但话说回来,在漏洞探测的第一步,nmap永远是那个最顺手的撬棍——轻、快、直接,而且免费。

    热门排行

    友情链接