Zmap
Zmap的主要应用是大规模网络扫描,用于安全研究和网络监控,其设计理念在于高效和简洁,通过优化的数据包发送机制,最大限度地提升了扫描速度,同时保持了较低的资源消耗
1.Zmap安装
Zmap的搭建有两种方法,分别是软件库和源码
(1)软件库
sudo apt install zmap
(2)源码
a.下载安装包:
从GitHub下载Zmap的源码包。如果需要IPv6探测功能,建议下载2.1.1版本,因为3.0.0版本不支持IPv6探测。
wget https://github.com/zmap/zmap/archive/v2.1.1.tar.gz
b.安装依赖包:
安装必要的依赖包,包括build-essential
、cmake
、libgmp3-dev
、gengetopt
、libpcap-dev
、flex
、byacc
、libjson-c-dev
、pkg-config
、libunistring-dev
等。
sudo apt-get install build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev
c.编译和安装Zmap:
解压下载的源码包,并进入目录,执行以下命令进行编译和安装:
tar xvf v2.1.1.tar.gzcd zmap-2.1.1mkdir buildcd buildcmake ..makesudo make install
d.检查安装
安装完成后,同样可以通过zmap --version
命令验证安装是否成功
2.Zmap的参数配置
ZMap 的参数选项非常丰富,以下是一些常用的参数选项及其说明:
基本参数
-p, --target-port=port:要扫描的目标 TCP 端口号(例如,443)。
-o, --output-file=name:将结果写入该文件,使用 - 代表输出到标准输出。
-b, --blacklist-file=path:文件中被排除的子网使用 CIDR 表示法(如 192.168.0.0/16),一个一行。建议使用此方法排除 RFC 1918 地址、组播地址、IANA 预留空间等 IANA 专用地址。
-w, --whitelist-file=path:要限制扫描的子网文件,使用 CIDR 表示法(例如,192.168.0.0/16)。 扫描选项
-n, --max-targets=n:限制探测目标的数量。后面跟的可以是一个数字(例如 -n 1000),或可扫描地址空间的百分比(例如,-n 0.1%)。
-N, --max-results=n:收到多少结果后退出。
-t, --max-runtime=secs:限制发送报文的时间。
-r, --rate=pps:设置发包速率,以包/秒为单位。
-B, --bandwidth=bps:以比特/秒设置传输速率(支持使用后缀 G,M 或 K,如 -B 10M 就是速度 10 Mbps)。设置会覆盖 --rate。
-c, --cooldown-time=secs:发送完成后等待多久继续接收回包(默认值= 8)。
-e, --seed=n:地址排序种子。如果要用多个 ZMap 以相同的顺序扫描地址,那么就可以使用这个参数。
--shards=n:将扫描分片/区,使其可多个 ZMap 中执行(默认值= 1)。启用分片时,--seed 参数是必需的。
--shard=n:选择扫描的分片(默认值= 0)。n 的范围在 [0,N),其中 N 为碎片的总数。启用分片时,--seed 参数是必需的。
-T, --sender-threads=n:用于发送数据包的线程数(默认值= 1)。
-P, --probes=n:发送到每个 IP 的探测数(默认值= 1)。
-d, --dryrun:用标准输出打印出每个包,而不是将其发送(用于调试)。
网络选项
-s, --source-port=port|range:发送数据包的源端口。
-S, --source-ip=ip|range:发送数据包的源地址。可以仅仅是一个 IP,也可以是一个范围(如,10.0.0.1-10.0.0.9)。
-G, --gateway-mac=addr:数据包发送到的网关 MAC 地址(用以防止自动检测不工作的情况)。
-i, --interface=name:使用的网络接口。 探测选项
--list-probe-modules:列出可用探测模块(如 tcp_synscan)。
-M, --probe-module=name:选择探测模块(默认值= tcp_synscan)。
--probe-args=args:向模块传递参数。
输出选项
--list-output-modules:列出可用输出模块(如 csv)。
-O, --output-module=name:选择输出模块(默认值为 csv)。
--output-args=args:传递给输出模块的参数。
-f, --output-fields=fields:输出的字段列表,以逗号分割。
--output-filter:指定输出过滤器对探测模块定义字段进行过滤。
附加选项
-C, --config=filename:加载配置文件,可以指定其他路径。
-q, --quiet:不必每秒刷新输出。
-g, --summary:在扫描结束后打印配置和结果汇总信息。
-v, --verbosity=n:日志详细程度(0-5,默认值= 3)。
-h, --help:打印帮助并退出。
-V, --version:打印版本并退出。
zmap扫全网
配置完成后,可以通过以下命令运行Zmap进行扫描:
zmap -p 80 -o /home/kali/Desktop/ip.txt
此命令将扫描所有IPv4地址的80端口,并将结果输出到zmap -p 80 -o /home/kali/Desktop/ip.txt
文件中。
原文始发于微信公众号(泷羽Sec-Z1eaf):一小时扫全网神器-Zmap
- 左青龙
- 微信扫一扫
- 右白虎
- 微信扫一扫
评论