网络扫描工具Nmap、Zmap、Masscan之简述
《网络扫描工具Nmap、Zmap、Masscan之简述》要点: 网络扫描是信息收集的重要手段.通过扫描可以发现存活主机、开放端口,进而发现其运行的服务、操作系统等信息,为下一步的工作奠定基础.扫描工具的选取尤为重要.目前,有不少扫描工具可供选择,且各有特色.其中,Nmap以其强大而丰富的功能被绝大部分人所使用.除此之外,号称“45分钟扫描全网”的Zmap以及“6分钟扫描全网”的Masscan也有着较高的使用率.接下来,本文将对Nmap、Zmap、Masscan这三种扫描工具进行一些比较. 一、使用环境Nmap可以在Linux、Windows、Mac OS下运行,并且有图形化界面Zenmap; Zmap、Masscan可以在Linux、Mac OS下运行,同时也可以在Windows下使用,不过要借助Cygwin等工具. 二、功能ZmapZmap采用了无状态的扫描技术,没有进行完整的TCP三次握手,因此扫描速度极大提升.Zmap的基本功能是扫描发现主机的开放端口. l? 一次扫描支持单端口,不支持在命令里设置目标IP. l? 设置黑白名单,由于Zmap设计为在全网范围内寻找主机,若想对特定网段进行扫描,可以利用白名单的方式; l? 设置扫描数量和扫描时间; l? 设置扫描速率,由于Zmap会以网络适配器支持的最快速率进行扫描,不会根据上游流量提供商自动调整发送速率,需要手动调整,来减少丢包和不正确的结果.可以通过设置每秒发包数量或带宽进行调整; l? 设置扫描源端口、源IP,伪造网关MAC地址进行伪装. l? 结果输出默认csv格式,经过额外的配置可输出redis和JSON;用户也可以用官方提供的API自己编写输出模块. l? 扫描模式,支持TCPSYN、ICMP echo、UDP三种扫描模式,用户也可以用官方提供的API自己编写探测模块. l? Banner获取,Zmap并不直接提供Banner获取功能,需要编写扩展模块,不过开发者已经为我们提供了一个样本.详情见后文. MasscanMasscan与Zmap类似,同样采用了无状态的扫描技术. l? 允许自定义任意的地址范围和端口范围; l? 设置黑白名单; l? 设置扫描速率; l? 指定发包的源IP地址、源端口和源MAC地址进行伪装. l? 结果输出支持xml、binary、JSON、list等多种格式. l? 为了配合用户的各种扫描需求,Masscan提供了重试次数、UA字段值、发出数据包的TTL值、发包后的等待时间等扫描设置. l? Banner获取直接在扫描命令里使用—banners即可. NmapNmap的功能非常强大,而且作为一个广泛使用的开源工具,全球的开发者都为其功能的丰富贡献了力量.因此,本文仅对其功能进行简单的描述. 基本功能:主机发现,开放端口扫描,支持多端口、多网段,可对目标域名进行扫描; 识别功能:识别端口服务类型及版本、操作系统、设备类型等; 扫描模式:TCP SYN scan、TCP connectscan、UDP scan、No Ping scan等; 规避检测:分片、IP伪装、MAC伪装. 三、扩展性ZmapZmap的扩展模块需使用C语言编写,官方提供了两个扩展模块用于获取Banner. 1.??????banner-grab-tcp 原理是向扫描发现的IP进行二次发包抓取Banner,二次发包的内容需要自定义. 2.??????forge-socket 功能与前者一样,但需要先安装驱动.该模块以底层驱动方式,效率更高. 除了以上两个扩展模块,用户也可以结合需求自行编写. NmapNmap有强大的脚本引擎框架,用户可以使用Lua语言编写扩展.目前官方提供了400多个扩展脚本,用于增强基础功能和扩展更多功能,如漏洞检测、口令爆破等.在扫描命令中使用—script=scriptname调用即可. 四、速度和效率三种扫描工具在功能上各有长短,本文针对其最基本的端口扫描、主机发现功能进行了实验对比. 实验环境操作系统:CentOS 6.5 实验过程本文分别编写了三个Python脚本,执行扫描命令.选取来自美欧中非的几个网段,在一次扫描中,针对相同网段和15个常用端口进行扫描,并将结果最后转存到数据库中,对比Zmap、Masscan、Nmap三种工具在相同环境下执行扫描的速度和结果数量. 实验结果时间方面,Zmap和Masscan扫描耗时与到扫描目标数量成正比,Zmap由于每次只能针对一个端口进行扫描,对于15个端口的情况需要在脚本中发起15次扫描,因此耗时高于Masscan;Nmap的耗时情况并不稳定,怀疑与目标网段网络环境有关. 结果数量方面,在对一个C段进行扫描的时候,三种工具的主机发现数量差距不大;而在对两个C段进行扫描的实验中,Masscan出现了明显的遗漏. 五、延伸工具Masscan
Nmap
六、总结以上三种扫描工具各有利弊,工具的选取应该结合具体情况决定.Zmap和Masscan采用了无状态的扫描技术,扫描速度非常可观.在信息收集的初级阶段,可以使用Zmap或Masscan进行目标的情势了解,扫描单一端口的情况考虑使用Zmap,而多端口的情况下Masscan则更为快速.在做完初步了解之后,则应该使用功能更加丰富的Nmap进行进一步的详细扫描. 七、参考文献https://github.com/robertdavidgraham/masscan https://zmap.io/documentation.html https://nmap.org/ https://www.offensive-security.com/offsec/masscan-web-interface/ http://www.freebuf.com/sectool/115782.html http://www.freebuf.com/sectool/117092.html http://www.freebuf.com/sectool/114701.html http://www.freebuf.com/sectool/29436.html 文章来自微信公众号:DevOps (编辑:ASP站长网) |