zmap扫描mysql_互联网扫描器 ZMap 完全手册

ZMap是一款快速的互联网扫描工具,设计用于针对IPv4地址空间进行大规模扫描。默认执行TCP SYN扫描,但支持TCP、ICMP和UDP探测。它强调了与网络管理员协作、避免影响网络和合法使用的重要性。用户可通过配置选项调整扫描速率、目标、带宽限制和输出格式。ZMap还提供命令行参数用于调试和最佳实践,如使用黑名单排除特定IP地址空间。
摘要由CSDN通过智能技术生成

初识 ZMap

003713ar4fq4gq4g7zqb4q.png

ZMap被设计用来针对整个IPv4地址空间或其中的大部分实施综合扫描的工具。ZMap是研究者手中的利器,但在运行ZMap时,请注意,您很有 可能正在以每秒140万个包的速度扫描整个IPv4地址空间 。我们建议用户即使在实施小范围扫描之前,也联系一下本地网络的管理员并参考我们列举的最佳扫描体验。

默认情况下,ZMap会对于指定端口实施尽可能大速率的TCP SYN扫描。较为保守的情况下,对10,000个随机的地址的80端口以10Mbps的速度扫描,如下所示:

$ zmap --bandwidth=10M--target-port=80--max-targets=10000--output-file=results.csv

或者更加简洁地写成:

$ zmap -B 10M-p 80-n 10000-o results.csv

ZMap也可用于扫描特定子网或CIDR地址块。例如,仅扫描10.0.0.0/8和192.168.0.0/16的80端口,运行指令如下:

zmap -p 80-o results.csv 10.0.0.0/8192.168.0.0/16

如果扫描进行的顺利,ZMap会每秒输出类似以下内容的状态更新:

0%(1h51mleft);send:28777562Kp/s (560Kp/s avg);recv:1192248p/s (231p/s avg);hits:0.04%

0%(1h51mleft);send:34320554Kp/s (559Kp/s avg);recv:1442249p/s (234p/s avg);hits:0.04%

0%(1h50mleft);send:39676535Kp/s (555Kp/s avg);recv:1663220p/s (232p/s avg);hits:0.04%

0%(1h50mleft);send:45372570Kp/s (557Kp/s avg);recv:1890226p/s (232p/s avg);hits:0.04%

这些更新信息提供了扫描的即时状态并表示成:

完成进度%(剩余时间);send:发出包的数量即时速率(平均发送速率);recv:接收包的数量接收率(平均接收率);hits:命中率

如果您不知道您所在网络能支持的扫描速率,您可能要尝试不同的扫描速率和带宽限制直到扫描效果开始下降,借此找出当前网络能够支持的最快速度。

默认情况下,ZMap会输出不同IP地址的列表(例如,根据SYN ACK数据包的情况),像下面这样。其输出结果还有几种附加的格式(如,JSON和Redis),可以用作生成程序可解析的扫描统计。 同样,可以指定附加的输出字段并使用输出过滤来过滤输出的结果。

115.237.116.119

23.9.117.80

207.118.204.141

217.120.143.111

50.195.22.82

我们强烈建议您使用黑名单文件,以排除预留的/未分配的IP地址空间(如,RFC1918 规定的私有地址、组播地址),以及网络中需要排除在您扫描之外的地址。默认情况下,ZMap将采用位于 /etc/zmap/blacklist.conf的这个简单的黑名单文件中所包含的预留和未分配地址。如果您需要某些特定设置,比如每次运行ZMap时的最大带宽或黑名单文件,您可以在文件/etc/zmap/zmap.conf中指定或使用自定义配置文件。

如果您正试图解决扫描的相关问题,有几个选项可以帮助您调试。首先,您可以通过添加--dryrun实施预扫,以此来分析包可能会发送到网络的何处。此外,还可以通过设置'--verbosity=n`来更改日志详细程度。

最佳扫描体验

我们为针对互联网进行扫描的研究者提供了一些建议,以此来引导养成良好的互联网合作氛围。

密切协同本地的网络管理员,以减少风险和调查

确认扫描不会使本地网络或上游供应商瘫痪

在发起扫描的源地址的网页和DNS条目中申明你的扫描是善意的

明确解释你的扫描中所有连接的目的和范围

提供一个简单的退出扫描的方法并及时响应请求

实施扫描时,不使用比研究对象需求更大的扫描范围或更快的扫描频率

如果可以,将扫描流量分布到不同的时间或源地址上

即使不声明,使用扫描的研究者也应该避免利用漏洞或访问受保护的资源,并遵守其辖区内任何特殊的法律规定。

命令行参数

通用选项

这些选项是实施简单扫描时最常用的选项。我们注意到某些选项取决于所使用的探测模块或输出模块(如,在实施ICMP Echo扫描时是不需要使用目的端口的)。

-p, --target-port=port

要扫描的目标TCP端口号(例如,443)

-o, --output-file=name

将结果写入该文件,使用-代表输出到标准输出。

-b, --blacklist-file=path

文件中被排除的子网使用CIDR表示法(如192.168.0.0/16),一个一行。建议您使用此方法排除RFC 1918地址、组播地址、IANA预留空间等IANA专用地址。在conf/blacklist.example中提供了一个以此为目的示例黑名单文件。

扫描选项

-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

使用的网络接口

探测选项

ZMap允许用户指定并添加自己所需要的探测模块。 探测模块的职责就是生成要发送的探测包,并处理主机回复的响应包。

--list-probe-modules

列出可用探测模块(如tcp_synscan)

-M, --probe-module=name

选择探测模块(默认值= tcp_synscan)

--probe-args=args

向模块传递参数

--list-output-fields

列出可用的输出模块

输出选项

ZMap允许用户指定和编写他们自己的输出模块。输出模块负责处理由探测模块返回的字段,并将它们输出给用户。用户可以指定输出的字段,并过滤相应字段。

--list-output-modules

列出可用输出模块(如tcp_synscan)

-O, --output-module=name

选择输出模块(默认值为csv)

--output-args=args

传递给输出模块的参数

-f, --output-fields=fields

输出的字段列表,以逗号分割

--output-filter

指定输出过滤器对探测模块定义字段进行过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值