masscan 是什么
masscan 是 世界上最快的 TCP 端口扫描器 ,由 Robert Graham 开发,采用无状态 SYN 扫描技术,单机每秒可发送 1000 万个数据包,完整扫描全网理论上仅需 6 分钟。
GitHub 仓库:
https://github.com/robertdavidgraham/masscan
核心特点
- 极速扫描:比 nmap 快 100-1000 倍
- 无状态设计:不维护完整 TCP 状态,资源消耗极低
- TurBo 模式 :通过调整
--rate参数可进一步提升发包速度 - 跨平台:支持 Linux、Windows、macOS
典型使用场景
| 场景 | 说明 |
|---|---|
| 互联网资产普查 | 快速发现大规模网络空间中的开放端口 |
| 渗透测试前期侦查 | 快速定位目标网络边界资产 |
| 红队作战 | 短时间内完成大范围端口和服务识别 |
| 应急响应 | 快速获取目标网络暴露面 |
📖 使用文档
1. GitHub README
包含完整的安装和使用说明:
- 编译安装方法
- 详细参数说明
- 使用示例
- 注意事项
2. 快速安装
# Linux/macOS 编译安装
git clone https://github.com/robertdavidgraham/masscan.git
cd masscan
make
# macOS 用 Homebrew
brew install masscan
# Windows 用 WSL 或直接下载二进制
3. 核心参数速查
# 基础语法
masscan <目标> -p<端口> [选项]
# 常用选项
-p<端口> # 指定端口 (如 -p80,443 或 -p1-1000)
--rate=<数字> # 每秒发包数 (默认100)
-oX <文件> # XML 输出
-oJ <文件> # JSON 输出
-oL <文件> # List 输出
--banners # 获取服务 banner
--source-port # 源端口
--wait=<秒> # 扫描完成后等待时间
--excludefile # 排除 IP 列表文件
典型使用示例
# 扫描单个 IP
masscan -p80,443 192.168.1.1
# 扫描整个网段
masscan -p80,443 192.168.1.0/24 --rate=1000
# 全端口扫描 (65535)
masscan -p1-65535 192.168.1.1 --rate=5000
# 高速全网扫描
masscan -p80,443 0.0.0.0/0 --rate=100000
# 输出到文件
masscan -p22,80,443,3389 10.0.0.0/8 -oJ result.json
# 排除部分 IP
masscan -p80,443 192.168.0.0/16 --excludefile exclude.txt
masscan vs fscan 核心对比
| 维度 | masscan | fscan |
|---|---|---|
| 定位 | 🚀 高速端口扫描器 | 🔪 内网综合扫描工具 |
| 速度 | ⚡⚡⚡⚡⚡ 极快(千万级pps) | ⚡⚡⚡⚡ 较快(万级) |
| 扫描方式 | 无状态 SYN,半连接 | 完整 TCP 连接,全扫描 |
| 服务识别 | ❌ 纯端口发现 | ✅ 识别服务版本 |
| 漏洞检测 | ❌ 无 | ✅ 内置弱口令/MS17-010等 |
| 协议支持 | TCP 为主 | TCP/UDP/RDP/SMB 等 |
| 输出格式 | XML/JSON 格式 | 文本格式,可读性强 |
| 资源消耗 | 极低 | 较低 |
| 适用场景 | 外网、大规模、快速资产发现 | 内网、综合扫描、漏洞检测 |
场景选择建议
| 场景 | 推荐工具 |
|---|---|
| 互联网大范围资产发现 | masscan |
| 内网渗透测试 | fscan |
| 快速端口发现后再精准识别 | masscan → fscan |
一句话总结
- masscan:🚀 速度至上,大规模外网资产快速发现
- fscan:🔪 功能齐全,内网综合扫描开箱即用
两者组合使用效果最佳:masscan 做第一步快速侦察 → fscan 做针对性综合扫描。
⚠️ 重要提示
- 高速扫描可能触发防火墙告警
-
请仅在授权环境下使用
-
以上仅用于学习交流,如未在授权环境下使用,责任自负!