nmap扫描漏洞
半夜两点,扫描我盯着终端里滚动的漏洞绿色字符,心跳加速。扫描那台服务器开着22端口,漏洞SSH版本是扫描OpenSSH 4.3——2006年的老古董,CVE-2008-0166的漏洞随机数生成器漏洞,理论上能直接拿到root。扫描nmap只用了一条命令就告诉我这些,漏洞而对方管理员可能还蒙在鼓里。扫描
nmap不是漏洞扫描器,是扫描侦察兵。它不直接“扫描漏洞”,漏洞而是扫描通过指纹识别、端口状态和服务版本探测,漏洞拼凑出一张攻击面地图。扫描真正找漏洞的是配套脚本引擎NSE,但前提是nmap先把门牌号摸清。拿脆弱性检测来说,`--script vuln`会调取CVE数据库比对版本号,但这依赖端口开放和服务识别准确——如果目标把SSH藏到非标准端口,默认扫描大概率扑空。
有一次实战,客户的内网段有台打印机开了9100端口。nmap识别出是HP LaserJet,然后`--script http-vuln-cve2017-1000351`跑了一遍,居然真弹回个JetDirect的未授权访问漏洞。打印机成了跳板,横向渗透直接打穿财务网段。你看,漏洞不在“高危系统”上,而在那些被忽略的边缘设备里——nmap的价值就是把这些角落翻出来晒晒太阳。
但别指望nmap像Metasploit那样直接给你shell。它给的是“可能性清单”,是线索,不是结论。比如`-sV`版本探测可能误报,尤其面对那些改了banner伪装的服务。我见过一个运维把SSH伪装成Apache响应头,nmap被耍得团团转,愣是没识别出来。这种时候得靠`-sS`半开扫描加`--version-intensity 9`强行深挖,或者配合`-O`做操作系统猜测交叉验证。
日常巡检我习惯这么干:先`nmap -sS -sV -O -p- -T4 <目标>`全端口摸一遍,耗时看网段大小,通常几分钟到半小时。拿到结果后,把高危端口(22、445、3389、8080)的服务版本丢进漏洞库比对,再针对特定服务跑NSE脚本。比如`samba-vuln-ms17-010`查永恒之蓝,`ssl-enum-ciphers`看TLS配置弱不弱。这套流程下来,八成已知漏洞都无处遁形。
有个反直觉的细节:nmap扫漏洞,扫的是“版本”,不是“漏洞本身”。它默认只探测端口开放情况,`-sV`才去识别服务版本,然后你拿版本号去查CVE。这意味着如果目标打了补丁但版本号没变(有些厂商懒),nmap会误报。反过来,如果版本号虚高但实际没修,nmap也会漏报——所以别全信,得结合人工验证。我曾扫出一台nginx 1.18.0报CVE-2021-23017,但实际人家编译时手动patch了,纯属虚惊。
跑扫描前记得加`--open`只看开放端口,省得被过滤状态刷屏。`-Pn`跳过主机发现,直接当目标存活——尤其对付防火墙禁ping的机器。还有`-T4`是激进时序,公网慎用,容易被封IP;内网倒是可以上`-T5`,但别在业务高峰期搞,带宽挤爆了运维会找你喝茶。
最后说句掏心窝的:nmap是工具,不是银弹。它能帮你五分钟找到入口,但真正决定安全的是后续的漏洞分析、利用验证和修复跟进。扫描报告打出来几十页,真正要命的可能就藏在某个不起眼的低危端口里——你得有耐心翻完,别只盯着红字看。毕竟,漏洞这东西,藏得越深,往往咬得越狠。

喜欢
讨厌