烟消火灭网

Nmap 本身不是漏洞扫描器。这事得先说清楚,不然后面全乱。 很多人第一次接触 Nmap,是冲着"扫漏洞"去的。装完一跑 nmap -sV 192.168.1.1,看到端口开放、服务版本号,就以为自己

namp漏洞扫描

Nmap 本身不是漏洞漏洞扫描器。这事得先说清楚,扫描不然后面全乱。漏洞

很多人第一次接触 Nmap,扫描是漏洞冲着"扫漏洞"去的。装完一跑 nmap -sV 192.168.1.1,扫描看到端口开放、漏洞服务版本号,扫描就以为自己在做漏洞扫描了。漏洞其实你只是扫描拿到了"这扇门是木头做的"这个信息,门锁有没有坏、漏洞能不能一脚踹开,扫描Nmap 不管。漏洞

Nmap 干的扫描事是资产发现和指纹识别。它告诉你目标主机活着、漏洞开了哪些端口、跑着什么服务、大概是什么系统。这些是漏洞扫描的前置情报,不是漏洞本身。

NSE:Nmap 真正能碰漏洞的部分

Nmap Scripting Engine 是让 Nmap 从"端口扫描器"变成"能摸到一点漏洞边"的关键。NSE 脚本用 Lua 写,官方和社区维护了几百个。跟漏洞相关的脚本集中在 vuln 分类里。

跑一条:

nmap --script vuln 192.168.1.100

它会尝试检测 SMB 的永恒之蓝、HTTP 的一些已知漏洞、SSL 的 Heartbleed 之类。听起来挺猛,但实际用起来你会发现——覆盖面窄,误报和漏报都不少。NSE 的漏洞脚本更像"顺手一查",不是专业漏洞扫描器该有的深度。

我拿它扫过一台没打补丁的 Windows Server 2008,MS17-010 确实报出来了。但同一台机器上其他几个已知漏洞,NSE 完全没反应。所以它能用,但别指望它替 Nessus 或 OpenVAS 干活。

版本探测才是漏洞判断的起点

真正有价值的用法是 -sV 加 --version-intensity。拿到精确的服务版本号之后,你自己去比对 CVE 数据库,或者喂给漏洞扫描器做二次判断。

比如扫出来 Apache httpd 2.4.49,你立刻知道这是 CVE-2021-41773 路径穿越漏洞的受影响版本。vsftpd 2.3.4,那是那个著名的笑脸后门。Nmap 不告诉你这些,但它的输出是你判断的依据。

这中间有个常见坑:-sV 的探测强度默认是 7,有时候版本号识别不准。调到 --version-intensity 9 会准一些,但扫描时间明显拉长。内网扫的时候我一般直接拉到 9,外网就算了,太慢。

实际工作流里怎么摆 Nmap 的位置

我的习惯是三步走。Nmap 做第一步:nmap -sS -sV -O -p- --script vuln -oA scan_result target。全端口、版本、系统指纹、漏洞脚本一次跑完,输出存成三种格式备用。

第二步把结果导进专业漏洞扫描器。Nmap 的 XML 输出可以直接被 Metasploit 的 db_import 吃进去,也可以转成 Nessus 能读的格式。第三步才是人工验证——扫描器报出来的东西,不手动确认一遍不敢信。

单独拿 Nmap 当漏洞扫描器用,就像拿瑞士军刀当菜刀——能切,但切得不痛快。它的强项是快、灵活、脚本可定制。你要真需要系统性漏洞评估,Nessus、OpenVAS、甚至 Nuclei 都比它合适。

不过话说回来,Nmap 的 --script 支持自定义 Lua 脚本这件事,给了它很大的扩展空间。遇到特定环境、特定服务,自己写个脚本去探测,比等商业扫描器更新规则库快得多。这可能才是 Nmap 在漏洞发现这件事上最被低估的能力。

访客,请您发表评论:

© 2026. sitemap