免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章阅读。 #陇羽sec#
ZMap是什么?
ZMap是一款网络扫描工具,由密歇根大学的研究团队开发。它的主要特点是能够在极短的时间内对整个互联网进行扫描。具体来说,ZMap可以在44分钟内扫描完所有的IPv4地址,这是由于其高效的架构和无状态的设计,使得它能够以非常高的速度发送和接收数据包,而不需要保留未获回复请求的清单。
主要功能和特点
-
高速扫描:ZMap能够在45分钟内完成整个公共IPv4地址空间的单一端口扫描。在配备10Gbps以太网接口以及netmap或PF_RING的环境下,这个时间甚至可以缩短到5分钟以内。
-
无状态设计:ZMap不会保留未获回复请求的清单,而是在传出的数据包中对识别信息进行编码,从而能够快速鉴别回复。这种方法使得ZMap的扫描速度比传统的工具(如Nmap)快出1000倍以上。
-
多种协议支持:ZMap支持多种协议的探测,包括TCPSYN扫描、ICMP查询、DNS请求等。此外,它还支持通过自定义的负载进行UDP探测。
-
模块化设计:ZMap的设计允许用户指定和编写自己的探测模块,并且可以选择输出的字段,方便用户根据需求进行定制化的扫描。
-
网络研究工具:ZMap被广泛用于网络研究,例如监测HTTPS的普及情况、评估网络中断的影响(如自然灾害导致的网络服务中断),以及发现网络中的漏洞等。
使用场景
- 网络安全:可以用于发现网络中的漏洞和潜在的安全威胁。
- 网络研究:用于分析互联网的结构和变化趋势,例如HTTPS的普及率。
- 应急响应:在自然灾害或其他紧急情况下,快速评估网络受损情况。
一、如何优化ZMap的扫描速度
调整发包速率:ZMap允许用户指定发包速率。通过设置较高的发包速率,可以加快扫描速度。然而,需要注意的是,过高的发包速率可能会导致网络拥塞或触发网络设备的安全机制,因此需要根据实际情况进行调整。
使用多线程或分布式扫描:如果硬件资源允许,可以考虑使用多线程或分布式扫描来进一步提高扫描速度。多线程扫描可以利用多核CPU的性能,而分布式扫描则可以将扫描任务分散到多台机器上,以充分利用计算资源。
优化网络环境:确保扫描任务所在的网络环境稳定且带宽充足。如果网络环境不稳定或带宽受限,可能会导致扫描速度下降。此外,尽量避免在高峰时段进行大规模扫描,以免影响其他网络活动。
调整扫描范围和选项:根据实际需求,适当缩小扫描范围或减少扫描选项,可以有效提高扫描速度。例如,如果只需要扫描特定端口或特定类型的设备,可以使用相应的选项来过滤掉不必要的扫描对象。
使用合适的硬件设备:选择高性能的网络设备和计算机硬件,可以显著提高ZMap的扫描速度。例如,使用高速网络接口卡(NIC)和大容量内存的计算机,可以更好地处理大量并发数据包。
定期更新软件:确保使用最新版本的ZMap软件,因为新版本可能包含了性能优化和错误修复,这些都可以帮助提高扫描速度。
二、ZMap 基本使用命令
主要参数
-p, --target-port=port:指定扫描的目标端口
-o, --output-file=name:把结果写入指定文件
-b, --blacklist-file=path :IP地址黑名单
-n, --max-targets=n
最大扫描IP地址数量,-n 100 表示总归扫描100个ip地址。也可指定 –n 0.1%形式,表示扫描除去黑名单列表里面全网段的0.1%数量的IP地址。-N, --max-results=n:最大扫描到结果的IP数量,-N 100 表示扫描到100个存在的结果就停止。
-t, --max-runtime=secs:最大扫描时间,-t 10 表示程序运行10s结束。
-r, --rate=pps:设置每秒发送包的数量 –r 10000 表示每秒发送10k个包。
-B, --bandwidth=bps:设置每秒发送包的大小,-B 10M 表示每秒发送10Mbps 支持单位(GMK)。
-c, --cooldown-time=secs:设置数据包发送完之后多长时间开始接受数据(response),默认8s,TCP连接异步接受。
-e, --seed=n:设置扫描随机地址的顺序,C语言中的伪随机种子,指定 定值每次随机扫描的IP地址顺序是一样。
-T, --sender-threads=n:设置扫描线程。默认是1,经测试单线程基本是把网络带宽充分利用。
-P, --probes=n:设置往每个IP发送包的数量,默认为1。(DDOS的参数之一)。
-d, --dryrun:打印出每个包的内容,非常实用的功能。
-s, --source-port=port|range:设置扫描的源端口,可指定范围 –s 30000-50000。(DDOS的参数之一)。
-S, --source-ip=ip|range:设置扫描的源IP地址,可指定范围-S 100.100.0.1-200.200.200.200(DDOS的参数之一)。
-G, --gateway-mac=addr:设置网关的mac地址,可伪造。(DDOS的参数之一)
-M, --probe-module=name
设置扫描模式,参数tcp_synscan(默认),icmp_echoscan(ping扫描),udp(测试速度要逊于前两个),这里可自定义自己的模块,ZMAP作者后续会增加例如自定义UDP payload 的选项。-O, --output-module=name:设置结果输出模块,参数simple_file(默认),extended_file。
--quiet:安静状态下运行,不把进度信息打印到屏幕上
--summary:输出结果汇总,对研究人员来说 非常有帮助。
三、ZMap多线程扫描配置方法
要在ZMap中配置多线程扫描,可以使用
-T
或--sender-threads
选项来指定发包的线程数。以下是具体的配置方法:1、基本配置
假设你想使用4个线程来进行扫描,可以使用以下命令:
zmap -T 4 -p 80 -o results.csv
在这个命令中:
-T 4
:指定使用4个线程进行扫描。-p 80
:指定扫描的目标端口为80。-o results.csv
:将扫描结果输出到results.csv
文件。2、高级配置
如果你需要更高级的配置,可以结合其他选项来优化扫描过程。例如,你可以设置带宽限制、目标IP范围等。以下是一个更复杂的例子:
zmap -T 4 --bandwidth=10M --target-port=80 --max-targets=10000 --output-file=results.csv
在这个命令中:
-T 4
:指定使用4个线程进行扫描。--bandwidth=10M
:设置带宽限制为10 Mbps。--target-port=80
:指定扫描的目标端口为80。--max-targets=10000
:设置最大扫描目标数为10000。--output-file=results.csv
:将扫描结果输出到results.csv
文件。注意事项
- 硬件资源:多线程扫描会消耗更多的CPU和内存资源,确保你的硬件能够支持多线程操作。
- 网络带宽:多线程扫描会增加网络流量,确保你的网络带宽足够,以避免网络拥塞。
- 权限:在某些操作系统中,使用多线程扫描可能需要管理员权限。
四、如何监控ZMap扫描性能
监控ZMap扫描性能是确保扫描任务高效运行的重要步骤。以下是一些方法和工具,可以帮助你监控ZMap的扫描性能:
- 系统监控工具:
- htop:这是一个交互式的实时进程查看器,可以显示CPU、内存和网络的使用情况。你可以通过它来监控ZMap进程的资源消耗。
- vmstat:这个命令行工具可以报告关于CPU、内存和I/O的统计数据,适合用于监控系统的整体性能。
- iostat:这个工具可以显示CPU和I/O设备的活动情况,有助于了解磁盘I/O的性能。
- 网络监控工具:
- iftop:这个工具可以实时显示网络接口上的带宽使用情况,帮助你监控ZMap扫描过程中网络流量的变化。
- nload:另一个实时网络流量监控工具,可以显示入站和出站流量的图表。
- 日志分析:
- ZMap生成的日志文件包含了详细的扫描信息,包括扫描进度、发送和接收的数据包数量、命中率等。通过分析这些日志,你可以了解扫描任务的效率和潜在问题。
- 自定义脚本:
- 你可以编写自定义的脚本来监控ZMap的性能。例如,可以使用Python或其他编程语言编写脚本,定期读取系统资源使用情况和ZMap的输出日志,并将结果记录到文件或数据库中,以便后续分析。
- 使用专业监控软件:
- Prometheus + Grafana:这是一个强大的监控和可视化组合,可以收集各种系统和应用的指标,并通过Grafana创建自定义的仪表盘来展示这些数据。
- Nagios:一个广泛使用的网络和系统监控工具,可以监控服务器、网络设备和其他基础设施的健康状况。
- 内置监控功能:
- ZMap本身也提供了一些内置的监控功能,例如实时显示扫描进度和统计数据。你可以通过命令行参数来启用这些功能,例如
--verbose
可以增加输出的详细程度。通过结合使用以上方法和工具,你可以全面监控ZMap的扫描性能,及时发现和解决潜在的问题,确保扫描任务的高效运行。
五、ZMap的下载安装
注意注意注意!!!!
直接就下载安装,不要想那么多!!!!
1、kali先换源
把之前kali默认的源先用# 注释掉,下面是中科大的源,直接复制就可以用
┌──(root㉿kali)-[~/Desktop] └─# vim /etc/apt/sources.list # See https://www.kali.org/docs/general-use/kali-linux-sources-list-repositories/ #deb http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib deb-src http://mirrors.ustc.edu.cn/kali kali-rolling main non-free non-free-firmware contrib # Additional line for source packages # deb-src http://http.kali.org/kali kali-rolling main contrib non-free non-free-firmware
2、kali 进行更新
┌──(root㉿kali)-[~/Desktop]
└─# apt-get update
3、ZMap安装必要的编译环境
┌──(root㉿kali)-[~/Desktop]
└─# apt-get install -y build-essential cmake libgmp3-dev gengetopt libpcap-dev flex byacc libjson-c-dev pkg-config libunistring-dev
4、kali直接下载zmap
┌──(root㉿kali)-[~/Desktop]
└─# apt install zmap -y
5、下载zmap而没有带 -y
怎么办???按照提示,把zmap先卸载就行
┌──(root㉿kali)-[~/Desktop]
└─# apt autoremove zmap
6、验证是否安装成功
┌──(root㉿kali)-[~/Desktop]
└─# zmap --version
zmap 2.1.1
7、使用zmap
┌──(root㉿kali)-[~/Desktop]
└─# zmap -p 80 -o ip.txt
未完待续~~~!!!! 将zmap 爬取的IP进行验活
标签:ZMap,SRC,--,Zmap,扫描,kali,红蓝,多线程,zmap From: https://blog.csdn.net/m0_62828084/article/details/143897456