zmap详解,安装+详细使用

Zmap是美国密歇根大学研究者开发出一款工具。在第22届USENIX安全研讨会,以超过nmap 1300倍的扫描速度声名鹊起。相比大名鼎鼎的nmap全网扫描速度是他最大的亮点。在千兆网卡状态下,45分钟内扫描全网络IPv4地址。

安装

更新系统和安装基础依赖

使用包管理工具(如apt-get)更新系统并安装必要的基础依赖。例如,在Ubuntu上,您可以使用以下命令

sudo apt-get update

sudo apt-get install -y build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev

apt install libJudy*

克隆ZMap项⽬仓库

从GitHub克隆ZMap项目的源代码到本地

git clone https://github.com/zmap/zmap.git

cd zmap

编译和安装ZMap

进入ZMap目录后,执行以下命令来编译和安装ZMap

mkdir build

cd build

cmake ..

make

sudo make install

此外,为了验证ZMap是否安装成功,您可以运行以下命令查看ZMap的版本信息

zmap --version

参数

用法:zmap [选项]... [子网]...
这是一个快速的互联网范围扫描器。

基本参数:
-p, --target-port=port 要扫描的端口号(用于TCP和UDP扫描)
-o, --output-file=name 输出文件
-b, --blacklist-file=path 要排除的子网文件,使用CIDR表示法,
例如:192.168.0.0/16
-w, --whitelist-file=path 要限制扫描的子网文件,使用CIDR表示法,
例如:192.168.0.0/16

扫描选项:
-r, --rate=pps 设置每秒发送的数据包速率
-B, --bandwidth=bps 设置每秒发送的比特速率(支持G、M和K后缀)
-n, --max-targets=n 限制要探测的目标数量(作为数字或地址空间的百分比)
-t, --max-runtime=ses 限制发送数据包的时间长度
-N, --max-results=n 限制返回的结果数量
-P, --probes=n 向每个IP发送的探测包数量(默认为1') -c, --cooldown-time=secs 发送最后一个探测包后继续接收的时间长度(默认为8')
-e, --seed=n 用于选择地址排列的种子
--retries=n 如果发送失败,尝试发送数据包的最大次数(默认为10') -d, --dryrun 不实际发送数据包 --shards=N 设置总分片数(默认为1')
--shard=n 设置此扫描的分片编号(从0开始索引)(默认为`0')

网络选项:
-s, --source-port=port|range 扫描数据包的源端口
-S, --source-ip=ip|range 扫描数据包的源地址
-G, --gateway-mac=addr 指定网关MAC地址
--source-mac=addr 源MAC地址
-i, --interface=name 指定要使用的网络接口
-X, --vpn 发送IP数据包而不是以太网数据包(用于VPN)

探测模块:
-M, --probe-module=name 选择探测模块(默认为`tcp_synscan')
--probe-args=args 传递给探测模块的参数
--list-probe-modules 列出可用的探测模块

数据输出:
-f, --output-fields=fields 结果集中应输出的字段
-O, --output-module=name 选择输出模块(默认为`default')
--output-args=args 传递给输出模块的参数
--output-filter=filter 对响应字段指定一个过滤器,以限制发送到输出模块的响应
--list-output-modules 列出可用的输出模块
--list-output-fields 列出选定探测模块可以输出的所有字段

日志和元数据:
-v, --verbosity=n 日志详细程度(0-5)(默认为`3')
-l, --log-file=name 将日志条目写入文件
-L, --log-directory=directory 将日志条目写入此目录中的带时间戳的文件
-m, --metadata-file=name 扫描元数据的输出文件(JSON)
-u, --status-updates-file=name
将扫描进度更新写入CSV文件
-q, --quiet 不打印状态更新
--disable-syslog 禁用向syslog发送日志消息
--notes=notes 将用户指定的注释插入扫描元数据中
--user-metadata=json 将用户指定的JSON元数据插入扫描元数据中

其他选项:
-C, --config=filename 读取配置文件,可以指定这些选项中的任何一个
(默认为/etc/zmap/zmap.conf') --max-sendto-failures=n 在扫描中止之前NIC发送失败的最大次数(默认为-1')
--min-hitrate=n 在扫描中止之前扫描可以达到的最小命中率(默认为0.0') -T, --sender-threads=n 用于发送数据包的线程数(默认为1')
--cores=STRING 要绑定的核心列表,用逗号分隔
--ignore-invalid-hosts 忽略白名单/黑名单文件中的无效主机
-h, --help 打印帮助并退出
-V, --version 打印版本并退出

示例:
zmap -p 80(扫描互联网上的tcp/80端口主机,并将结果输出到stdout)
zmap -N 5 -B 10M -p 80(以10 Mb/s的速度扫描,找到5个HTTP服务器)
zmap -p 80 10.0.0.0/8 192.168.0.0/16 -o(在tcp/80上扫描这两个子网)
zmap -p 80 1.2.3.4 10.0.0.3(在tcp/80上扫描1.2.3.4和10.0.0.3)

探测模块(tcp_synscan)帮助:
发送TCP SYN数据包到特定端口的探测模块。可能的分类是:synack和rst。SYN-ACK数据包被认为是成功,重置数据包被认为是失败的响应。

输出模块(csv)帮助:
默认情况下,ZMap以ASCII形式(例如:192.168.1.5)将唯一的、成功的IP地址(例如,来自TCP SYN扫描的SYN-ACK)输出到stdout或指定的输出文件。这由“csv”输出模块内部处理,等效于运行zmap --output-module=csv --output-fields=saddr --output-filter="success = 1 && repeat = 0"。

全网爬取

zmap -p 80 -o 8_80.txt 8.0.0.0/8

zmap -p 1080 -B 9M -o 1080_1-20.txt 1.0.0.0/8 2.0.0.0/8 3.0.0.0/8 4.0.0.0/8 5.0.0.0/8 6.0.0.0/8 7.0.0.0/8 8.0.0.0/8 9.0.0.0/8 10.0.0.0/8 11.0.0.0/8 12.0.0.0/8 13.0.0.0/8 14.0.0.0/8 15.0.0.0/8 16.0.0.0/8 17.0.0.0/8 18.0.0.0/8 19.0.0.0/8 20.0.0.0/8
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值