Kali linux系列之 zmap 安装

前言

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

发表评论

邮箱地址不会被公开。 必填项已用*标注