前言
Zmap是美国密歇根大学研究者开发出一款工具。在第22届USENIX安全研讨会,以超过nmap 1300倍的扫描速度声名鹊起。
相比大名鼎鼎的nmap全网扫描速度是他最大的亮点。在千兆网卡状态下,45分钟内扫描全网络IPv4地址。
官方文档地址:https://zmap.io/
准备:保证有比较顺畅的更新源,可以更新系统,下载安装包。
zmap 安装
第一步:sudo apt-get install build-essential cmake libgmp3-dev libpcap-dev gengetopt byacc flex git dwarfdump
正在读取软件包列表... 完成 正在分析软件包的依赖关系树 正在读取状态信息... 完成 下列软件包是自动安装的并且现在不需要了: baobab caribou caribou-antler dnsmasq-base empathy empathy-common fonts-cantarell gcalctool gdm3 gnome-backgrounds gnome-dictionary gnome-disk-utility gnome-font-viewer gnome-icon-theme-extras gnome-packagekit gnome-packagekit-data gnome-screenshot gnome-system-log gucharmap libavahi-gobject0 libavahi-ui-gtk3-0 libcaribou-gtk-module libcaribou-gtk3-module libchamplain-0.12-0 libchamplain-gtk-0.12-0 libgdict-1.0-6 libgdict-common libgdu-gtk0 libgeocode-glib0 libjim0debian2 libmozjs22d libmozjs24d libnl-route-3-200 libtelepathy-farstream2 libunique-3.0-0 libwireshark2 libwiretap2 libwsutil2 mobile-broadband-provider-info modemmanager nautilus-sendto-empathy network-manager network-manager-gnome sound-theme-freedesktop telepathy-gabble telepathy-logger telepathy-salut usb-modeswitch usb-modeswitch-data vino wpasupplicant xulrunner-22.0 xulrunner-24.0 Use 'apt-get autoremove' to remove them. 将会安装下列额外的软件包: libgmp-dev libgmpxx4ldbl libpcap0.8-dev 建议安装的软件包: libgmp10-doc libmpfr-dev 下列【新】软件包将被安装: gengetopt libgmp-dev libgmp3-dev libgmpxx4ldbl libpcap-dev libpcap0.8-dev 升级了 0 个软件包,新安装了 6 个软件包,要卸载 0 个软件包,有 15 个软件包未被升级。 需要下载 1,253 kB 的软件包。 解压缩后会消耗掉 3,444 kB 的额外空间。 您希望继续执行吗?[Y/n]Y
第二步:git clone git://github.com/zmap/zmap.git
root@kali:~# git clone git://github.com/zmap/zmap.git 正克隆到 'zmap'... remote: Counting objects: 2935, done. remote: Compressing objects: 100% (29/29), done. remote: Total 2935 (delta 13), reused 0 (delta 0) Receiving objects: 100% (2935/2935), 868.00 KiB | 141 KiB/s, done. Resolving deltas: 100% (1934/1934), done.
第三步:cd zmap/
root@kali:~# cd zmap/ root@kali:~/zmap# ls 10gigE.md CHANGELOG conf INSTALL LICENSE src AUTHORS CMakeLists.txt examples lib README test
第四步:cmake -DENABLE_HARDENING=ON
root@kali:~/zmap# cmake -DENABLE_HARDENING=ON -- The C compiler identification is GNU 4.7.2 -- Check for working C compiler: /usr/bin/gcc -- Check for working C compiler: /usr/bin/gcc -- works -- Detecting C compiler ABI info -- Detecting C compiler ABI info - done -- Configuring done -- Generating done CMake Warning: Manually-specified variables were not used by the project: ENABLE_HARDENING -- Build files have been written to: /root/zmap
这里本人出现了问题。找不到libjosn模块,
解决方法:
#安装libjson
git clone https://github.com/json-c/json-c.git cd json-c/ sh autogen.sh ./configure make && make install
#libjsonc安装完成
安装libjson时候可能会提示
# 依赖库, 否则可能提示autoreconf找不到 sudo apt-get install autoconf automake libtool sudo apt-get install libffi-dev
返回zmap目录:cmake -DENABLE_DEVELOPMENT=OFF
结果还是缺少了东西。
后面我直接干脆apt-get install zmap完事。直接就可以用了。
ZMAP语法
完全手册:https://www.cnblogs.com/swordxia/p/4666231.html
默认情况下,ZMap会对于指定端口实施尽可能大速率的TCP SYN扫描。较为保守的情况下,对10,000个随机的地址的80端口以10Mbps的速度扫描,如下所示:
$ zmap --bandwidth=10M --target-port=80 --max-targets=10000 --output-file=results.txt
简写:
$ zmap -B 10M -p 80 -n 10000 -o results.txt
-B 是指的是带宽 -p 端口 -n 扫描多少个目标 -o 输出结果
整句表示利用10M带宽扫描100000IP地址的端口,并将结果输出到results.txt中。
常用参数
-p, –target-port=port
指定扫描的目标端口
-o, –output-file=name
把结果写入指定文件 -o result.txt
-b, –blacklist-file=path
zmap -p 443 -G "00:00:00:00:00:00" -b conf/blacklist.conf
IP地址黑名单,例如192.168.0.0/16 表示 192.168.x.x将不被扫描,默认提供一份 RFC 1918保留和内网地址供参考,存放位置在conf/blacklist.conf
-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 的选项。(`*udp_send_msg = “GET / HTTP/1.1
“; // Must be null-terminated`)源码里不可直接更改 (1.0.3版本加入UDP Data Probes可进行自定义)
-O, –output-module=name
设置结果输出模块,参数simple_file(默认),extended_file。
Simple_file 模式如下
115.237.116.119
23.9.117.80
207.118.204.141
217.120.143.111
Extended File模式如下
response, saddr, daddr, sport, dport, seq, ack, in_cooldown, is_repeat, timestamp
synack, 159.174.153.144, 10.0.0.9, 80, 40555, 3050964427, 3515084203, 0, 0,2013-08-15 18:55:47.681
扫描模块和输出模块都提供了API ,可自己根据需要添加功能。
–quiet
安静状态下运行,不把进度信息打印到屏幕上
–summary
输出结果汇总,对研究人员来说 非常有帮助。
参考其中的源码和相对规范的API接口,编写一些模块可以玩出很多花样。
LINK:
https://zmap.io/documentation.html
https://github.com/zmap/
出处
http://www.cnblogs.com/xuanhun/ https://blog.csdn.net/blakegao/article/details/11025351