做网络运维或者安全评估,第一步往往不是上来就测漏洞,而是先把资产摸清楚:网段里有哪些主机是活着的、每台机器开了哪些端口、端口后面跑的是什么服务。这个环节叫资产发现,Nmap和Masscan是这方面最常用的两款工具。前者功能全面、识别精细,后者速度极快、适合大范围撒网,两者配合使用基本能覆盖绝大多数探测需求。

一、资产发现的基本思路
资产发现的逻辑其实很简单,可以拆成三层:第一层是主机发现,也就是确认某个IP地址上有没有活着的主机;第二层是端口扫描,判断目标机器开放了哪些TCP或UDP端口;第三层是服务与版本识别,通过握手交互、特征探测,弄清端口背后运行的具体服务和软件版本。
为什么要分层做?因为直接对全端口做深度探测非常耗时。常见的做法是先用主机发现把存活IP筛出来,再用快速端口扫描定位开放端口,最后只对开放端口做服务识别和脚本探测。这样既能控制扫描量,也能减少对目标业务的干扰。
二、Nmap的安装与常用用法
Nmap在主流Linux发行版中都有安装包,CentOS和Ubuntu下分别可以用yum install nmap或apt install nmap安装,Windows版本可以从官网下载安装包。安装完成后执行nmap --version确认版本即可。
主机存活探测常用参数是-sn,表示只做ping探测不做端口扫描。例如nmap -sn 192.168.1.0/24会通过ICMP、TCP ACK、ARP等组合方式探测整个C段,快速列出存活主机。在内网环境里,ARP探测往往最有效,Nmap会自动针对本地网段启用。
端口扫描方面,-sS是半开放扫描(SYN扫描),速度快且不易留日志;-sT是完整连接扫描,兼容性更好;-sU用于UDP端口。指定端口范围用-p参数,比如-p 1-65535表示全端口扫描。典型的命令是:
nmap -sS -p 80,443,3306,6379,8080 192.168.1.10
服务与版本识别加-sV参数,操作系统识别加-O参数,两者可以组合:nmap -sV -O -p 1-1000 目标IP。如果还想进一步做漏洞线索收集,可以加--script vuln调用内置脚本库,或者用--script=default执行默认脚本组,能拿到不少额外信息,比如HTTP标题、SSL证书、SMB配置等。
三、Masscan的高速扫描玩法
Masscan的定位和Nmap不同,它是目前最快的TCP端口扫描器之一,官方宣称可以在六分钟内扫完整个互联网的某个端口。它的用法也简洁,最经典的命令形式是:
masscan 192.168.1.0/24 -p 80,443 --rate=10000
其中--rate指定发包速率,每秒1万个包在局域网里通常没什么压力,但要注意目标网络设备和主机的承受能力,速率过高可能导致丢包漏报,甚至影响业务。Masscan支持--echo参数把配置导出,也支持用配置文件方式运行,方便重复任务。
Masscan的结果输出格式很灵活,-oX输出XML,-oJ输出JSON,-oL输出列表格式。如果是给其他工具做输入,JSON和列表格式更好处理。另外Masscan默认使用自己的发包引擎,需要root权限运行,Windows下则需要安装WinPcap或npcap。
四、两款工具怎么选、怎么配合
两者的差异可以简单对比一下:
| 对比项 | Nmap | Masscan |
|---|---|---|
| 扫描速度 | 中等 | 极快 |
| 服务识别 | 支持,功能强 | 不擅长 |
| 脚本扩展 | 丰富的NSE脚本 | 基本没有 |
| 适用场景 | 精细探测单机或小网段 | 大网段快速撒网 |
实际工作中比较推荐的工作流是两段式:先用Masscan对大网段做高速端口发现,把开放端口的IP和端口整理成清单;再把清单喂给Nmap,只针对这些端口做-sV服务识别和脚本探测。这样既保证了覆盖速度,又保留了深度识别能力。
举例来说,先用masscan 10.0.0.0/16 -p 22,80,443,3389 --rate=50000 -oL result.txt扫出结果,然后写个简单脚本逐行调用nmap -sV -p 端口 IP做精细化识别,最终输出的资产台账信息会非常完整。
五、扫描前的注意事项
首先也是最重要的:对没有授权的网络进行端口扫描在多数国家和地区属于违法行为,扫描前务必获得书面授权,这是底线。即使是自己公司的内网,也建议提前报备,避免触发安全告警引起误会。
其次要控制扫描强度。对生产环境做全端口高并发扫描,可能压垮老旧设备或影响业务响应。建议先小范围试扫,观察无异常后再扩大范围,速率参数逐步上调。UDP扫描和大量脚本探测尤其要谨慎,某些服务对异常请求很敏感。
最后,扫描结果要妥善保存和定期复扫。网络资产是动态变化的,今天收敛的暴露面明天可能又冒出新的服务,把资产发现做成周期性任务,才是真正有效的资产管理方式。
六、总结
Nmap和Masscan各有分工:Masscan负责快,Nmap负责深。掌握两者的参数细节和组合用法,再配合规范的操作流程,就能搭建起一套高效的资产发现体系。工具本身不难学,难的是坚持定期执行、持续维护资产清单,这部分工作往往比扫描本身更有价值。