如何快速扫描全网端口
字数 1116 2025-08-10 00:24:04

全网端口快速扫描技术详解:Zmap与Masscan使用指南

概述

本文档详细介绍了两种业界知名的快速端口扫描工具:Zmap和Masscan。这两种工具通过创新的扫描技术,能够以远超传统工具(如nmap)的速度完成全网端口扫描任务。

技术原理

传统端口扫描方式在验证端口开放时,发送数据包后需要等待目标返回响应,这种同步等待机制在网络环境差时会导致显著延迟。Zmap和Masscan采用以下创新技术:

  1. 异步扫描架构:将发送数据包和接收数据包分成两个独立阶段
  2. 消除等待时间:发包程序专注于发送,收包程序独立记录结果
  3. 高速发包能力:Masscan可达每秒1亿数据包,Zmap在千兆网卡下45分钟可扫描全IPv4地址空间

Zmap详解

安装与配置

系统要求:具有公网IP的服务器,扫描速度取决于带宽大小

CentOS 8安装步骤

  1. 安装依赖环境:
yum install cmake gmp-devel gengetopt libpcap-devel flex byacc json-c-devel libunistring-devel
  1. 手动安装缺失组件:
# install gengetopt 
rpm -vi https://forensics.cert.org/centos/cert/8/x86_64/gengetopt-2.23-1.el8.x86_64.rpm

# install libpcap-devel
rpm -vi http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/libpcap-devel-1.9.1-4.el8.x86_64.rpm

# install json-c-devel 
rpm -vi http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/json-c-devel-0.13.1-0.2.el8.x86_64.rpm

# install libunistring-devel
rpm -vi http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/libunistring-devel-0.9.9-3.el8.x86_64.rpm
  1. 编译安装Zmap:
git clone https://github.com/zmap/zmap/
cd zmap
cmake .
make -j4
make install

使用场景

  1. 扫描全网80端口(1M带宽,随机扫描1000个IP):
zmap --bandwidth=1M --target-port=80 --max-targets=1000 --output-file=results.csv
# 或简写
zmap -B 1M -p 80 -n 1000 -o results.csv
  1. 扫描指定网段的53端口
zmap -p 53 8.8.8.0/24
  1. 敏感目标排除扫描
    编辑/etc/zmap/blacklist.conf文件添加需要排除的IP或网段

相关工具

  1. ZGrab:获取端口banner信息,支持多种协议(HTTP, HTTPS, SSH等)
  2. ZDNS:收集存在域传送漏洞的DNS服务器记录,支持多种记录类型

Masscan详解

安装与配置

CentOS 8安装步骤

git clone https://github.com/robertdavidgraham/masscan
cd masscan
make
make install

使用场景

  1. 基本端口扫描
masscan -p53 8.8.8.0/24
  1. 获取端口banner信息
masscan -p80 47.94.225.0/24 --banners
  1. 全网扫描
masscan 0.0.0.0/0 -p0-65535
  1. 排除特定网段
masscan 0.0.0.0/0 -p0-65535 --excludefile exclude.txt
  1. 保存扫描结果(XML格式)
masscan 0.0.0.0/0 -p0-65535 -oX scan.xml
  1. 调整扫描速率
masscan 0.0.0.0/0 -p0-65535 --max-rate 100000
  1. 兼容nmap参数
masscan -sS -Pn 47.94.225.0/24 -p 80

性能对比

工具 扫描速度 特点
Zmap 千兆网卡下45分钟扫描全IPv4 专注于快速发现开放端口
Masscan 5分钟扫描全互联网,每秒1亿数据包 更高速度,兼容部分nmap参数

应用场景

  1. 资产监控:及时发现不应对外开放的端口和服务
  2. 安全评估:识别临时开放的高风险服务
  3. 威胁情报:收集全网服务分布情况

注意事项

  1. 扫描前确保获得合法授权
  2. 避免对敏感目标进行扫描
  3. 合理设置扫描速率,避免对网络造成过大负担
  4. 遵守当地法律法规

资源链接

  • Zmap官网:https://zmap.io
  • Zmap开源项目:https://github.com/zmap/zmap/
  • Masscan项目:https://github.com/robertdavidgraham/masscan
  • 开放数据下载:https://opendata.rapid7.com
全网端口快速扫描技术详解:Zmap与Masscan使用指南 概述 本文档详细介绍了两种业界知名的快速端口扫描工具:Zmap和Masscan。这两种工具通过创新的扫描技术,能够以远超传统工具(如nmap)的速度完成全网端口扫描任务。 技术原理 传统端口扫描方式在验证端口开放时,发送数据包后需要等待目标返回响应,这种同步等待机制在网络环境差时会导致显著延迟。Zmap和Masscan采用以下创新技术: 异步扫描架构 :将发送数据包和接收数据包分成两个独立阶段 消除等待时间 :发包程序专注于发送,收包程序独立记录结果 高速发包能力 :Masscan可达每秒1亿数据包,Zmap在千兆网卡下45分钟可扫描全IPv4地址空间 Zmap详解 安装与配置 系统要求 :具有公网IP的服务器,扫描速度取决于带宽大小 CentOS 8安装步骤 : 安装依赖环境: 手动安装缺失组件: 编译安装Zmap: 使用场景 扫描全网80端口 (1M带宽,随机扫描1000个IP): 扫描指定网段的53端口 : 敏感目标排除扫描 : 编辑 /etc/zmap/blacklist.conf 文件添加需要排除的IP或网段 相关工具 ZGrab :获取端口banner信息,支持多种协议(HTTP, HTTPS, SSH等) ZDNS :收集存在域传送漏洞的DNS服务器记录,支持多种记录类型 Masscan详解 安装与配置 CentOS 8安装步骤 : 使用场景 基本端口扫描 : 获取端口banner信息 : 全网扫描 : 排除特定网段 : 保存扫描结果(XML格式) : 调整扫描速率 : 兼容nmap参数 : 性能对比 | 工具 | 扫描速度 | 特点 | |------|---------|------| | Zmap | 千兆网卡下45分钟扫描全IPv4 | 专注于快速发现开放端口 | | Masscan | 5分钟扫描全互联网,每秒1亿数据包 | 更高速度,兼容部分nmap参数 | 应用场景 资产监控 :及时发现不应对外开放的端口和服务 安全评估 :识别临时开放的高风险服务 威胁情报 :收集全网服务分布情况 注意事项 扫描前确保获得合法授权 避免对敏感目标进行扫描 合理设置扫描速率,避免对网络造成过大负担 遵守当地法律法规 资源链接 Zmap官网:https://zmap.io Zmap开源项目:https://github.com/zmap/zmap/ Masscan项目:https://github.com/robertdavidgraham/masscan 开放数据下载:https://opendata.rapid7.com