Kali Linux 教程:端口扫描工具-Masscan 作者:马育民 • 2026-09-29 09:30 • 阅读:10001 # 介绍 Masscan 是一款**异步高速SYN端口扫描器**,作者 Robert Graham,号称可以在几分钟内扫描整个互联网,理论发包速度最高可达千万包/秒。 - Kali 默认自带;如缺失:`sudo apt install masscan` - 必须**root权限**运行(需要原始套接字发包) - 扫描原理:**自定义TCP协议栈,SYN半开扫描**,不完成三次握手;只发SYN包,收到SYN+ACK就判定端口开放,不回ACK,不建立完整TCP连接 - 核心特点:**大范围资产测绘速度极快**;缺点:精度不如Nmap,高速度下丢包、误报高;**默认不扫描任何端口,必须手动指定 `-p`**,不做DNS解析、不ping主机(相当于固定 `-sS -Pn -n`) # Masscan vs Nmap |项目|Masscan|Nmap| |---|---|---| |定位|大范围快速端口普查|单点/小范围深度探测| |扫描方式|异步发包,随机IP顺序|顺序扫描,可控探测| |能力|仅端口扫描,少量banner抓取|端口、服务版本、OS识别、漏洞脚本| |速度|极快|较慢| |准确度|一般,高速容易丢包|高| |适用场景|内网/资产段快速摸底|拿到开放端口后,深度验证、版本探测| > 实战流程:Masscan快速扫网段拿到开放IP+端口 → 用Nmap对这些IP做精准验证、版本探测。 # 基础语法 ```bash sudo masscan -p<端口> [参数] <目标IP/网段> ``` 目标写法支持: - 单个IP:`192.168.1.10` - CIDR网段:`192.168.1.0/24` - IP范围:`192.168.1.1-192.168.1.100` - 多目标逗号分隔:`10.0.0.0/24,192.168.1.0/24` # 常用核心参数 1. `-p` 端口(**必写**) - `-p80` 单个端口 - `-p22,80,443` 多个端口 - `-p1-1000` 端口范围 - `-p0-65535` 全端口扫描 - UDP端口:`-pU:161` 2. `--rate` 发包速率(单位:包/秒),默认100 - `--rate=1000` 每秒1000包(内网推荐) - 公网不要开极高速率,容易触发防火墙封禁、网络拥塞 3. `--banners` 获取端口banner(HTTP标题、服务标识,支持协议有限,会增加扫描时间) 4. `-e` 指定网卡 `-e eth0` 指定使用eth0网卡发包 5. `--exclude` 排除IP,不扫描 `--exclude=192.168.1.1` 6. `--excludefile` 从文件读取排除IP列表 7. `--retries` 丢包重传次数,默认0;内网可设`--retries=2`提高准确率 8. `--wait` 发包完成后等待多久接收应答包(秒),网段大建议`--wait=10` 9. 输出保存 - `--output-format list --output-filename result.txt` 简单列表 - `--output-format xml --output-filename result.xml` xml(可导入nmap解析工具) - `--output-format json --output-filename result.json` json # 实战常用命令示例 ### 示例1:扫描C段80、443端口,速率1000包/秒 ```bash sudo masscan -p80,443 192.168.1.0/24 --rate=1000 ``` ### 示例2:单台主机全端口扫描 ```bash sudo masscan -p0-65535 192.168.1.10 --rate=5000 ``` ### 示例3:扫描并抓取banner,保存结果到txt ```bash sudo masscan -p80,22,3389 192.168.1.0/24 --rate=1000 --banners --output-format list --output-filename mass_result.txt ``` ### 示例4:排除网关,扫描网段 ```bash sudo masscan -p80 192.168.1.0/24 --exclude=192.168.1.1 --rate=1000 ``` # 输出解读 ``` Discovered open port 80/tcp on 192.168.1.10 ``` 含义:`192.168.1.10` 的TCP80端口开放。 > 注意:Masscan只报开放端口;**不代表服务一定正常**,高速扫描存在误报,必须Nmap复核。 # 常见坑与注意事项 1. **不加 `-p` 直接运行,不会扫描任何端口**,这是新手最常踩坑 2. 不加sudo会报错,必须root 3. 速率太高:丢包严重,漏报大量端口;内网建议1000~5000包/s,公网尽量更低 4. Masscan**不识别主机存活**,不管主机是否在线,都会发包;所以会输出很多目标,但只有收到SYN+ACK的才会显示open 5. 防火墙/IDS很容易识别Masscan高速SYN扫描,直接封禁源IP 6. banner抓取支持协议有限,不像nmap `-sV` 识别版本那么全面 # 推荐实战工作流 1. Masscan快速扫网段,批量找出所有开放IP+端口 ```bash sudo masscan -p22,80,443,3389 192.168.1.0/24 --rate=1000 --output-format list -o mass.txt ``` 2. 提取出存活IP,交给nmap做精准扫描+服务版本识别 ```bash sudo nmap -sV -T4 -p 22,80,443,3389 192.168.1.x ``` 原文出处:/show_1GW48Q8Niudn.html