是一款开源的互联网级端口扫描器,以其极高的扫描速度而闻名。它能在短短几分钟内扫描完整个 IPv4 地址空间的特定端口,被誉为“互联网级的 Nmap”。Masscan 的核心优势在于其异步传输技术,能够每秒发出数百万个数据包,非常适合大规模的网络资产普查。
核心特点与适用场景
-
速度至上:Masscan 的首要目标就是快。它采用自定义的 TCP/IP 协议栈,不依赖操作系统内核,因此能够实现惊人的扫描速度。
-
专注于端口扫描:与 Nmap 不同,Masscan 主要用于快速发现开放端口,它不会进行复杂的服务版本识别或操作系统探测,这正是其速度的保证。
-
高并发异步:Masscan 能够同时处理大量的网络请求,将扫描效率提升到极致。
-
适用场景:
-
大规模资产普查:快速摸清全球或某个大型网络范围内,哪些主机开放了特定的端口,例如扫描所有暴露在公网上的 80 端口。
-
安全研究:用于分析互联网上的服务分布、追踪新出现的网络威胁等。
-
基础使用方法
Masscan 是一款命令行工具,使用起来非常直观,其语法与 Nmap 有些相似。
-
扫描单个 IP 地址的特定端口
masscan 192.168.1.1 -p80
-
扫描 IP 段的特定端口
masscan 192.168.1.0/24 -p80,443,8080
此命令会扫描
192.168.1.0
到192.168.1.255
这个网段中所有主机的 80、443 和 8080 端口。 -
扫描整个 IPv4 地址空间的特定端口
masscan 0.0.0.0/0 -p22 --rate 100000
这条命令会扫描全球所有主机的 22 端口,
--rate
参数用于控制每秒发送的数据包数量,防止对网络造成过大压力。
常用参数
参数 | 描述 |
---|---|
-p |
指定端口,支持单个端口、逗号分隔和端口范围。 |
-h |
指定目标主机,可以是单个 IP、IP 段或包含 IP 列表的文件。 |
--rate |
控制发包速率,单位是数据包/秒。这是 Masscan 最重要的参数之一,可以有效控制扫描对网络的影响。 |
-oL |
输出结果为列表格式。 |
-oX |
输出结果为 XML 格式,方便后续的自动化处理。 |
--exclude |
排除特定 IP 或 IP 段,用于跳过不想扫描的目标。 |
--banners |
抓取服务 Banner,获取一些基本的服务信息。 |
常用命令组合
这个命令组合旨在兼顾扫描速度和结果可用性,非常适合在资产普查时使用。
masscan 192.168.1.0/24 -p80,443,8080,22,3389 --rate 100000 -oL web_ssh_scan.txt
-
命令解析:
-
masscan 192.168.1.0/24
:指定要扫描的目标 IP 段。 -
-p80,443,8080,22,3389
:指定要扫描的端口,包含常见的 Web 服务端口(80、443、8080)以及 SSH 和 RDP 端口(22、3389)。 -
--rate 100000
:控制每秒发送的数据包数量。 -
-oL web_ssh_scan.txt
-