zmap使用笔记

zmap, 一个网络端口开放性的快速扫描工具。至于这个工具的特色,配置参数,和比的工具的对比,不做介绍。只记录一下近期使用过程中,遇到的问题。软件版本:2.1.1


传言与现实

  1. 传言:一小时之内扫描完整过互联网

    传言的基础条件:

    1. 1000Mbps的网络
    2. 网络运营商或者云供应商不将此机器判定为DDOS攻击者(大量对外发送TCP syn包)
  2. 传言:扫描结果误差率2%

    使用结论:无法显示传言中如此低的误差率。使用了三个机房,不同网络供应商在同时启动扫描点情况下对一个A类网络地址段的扫描,三个机房得到的结果中,开放同一端口的IP数据重复率约为 80%,误差率其实非常高。


需要注意的点:

  1. 配置参数中的数据包速率与带宽限定。在使用的2.1.1版本zmap,配置参数中的 --rate(-r)--bandwidth(-B) 两项,当配置了后者,也就是带宽限制之后,数据包发送项会被覆盖。例如:zmap -B 10Mbps -r 2000 -p 8080 这样的参数,实际上发送数据的速率是 15000p/s,而非 2000p/s

  2. 默认的黑名单。在使用 yum 安装的 zmap 中,默认的配置文件 /etc/zmap/zmap.conf 中指定了默认的黑名单文件/etc/zmap/blacklist.conf,默认屏蔽掉的是内网网络地址段。做内网扫描的朋友需要注意以下。

  3. zmap 设置了带宽限制之后,实际对于出口带宽的利用率为 70% 左右。例如 zmap --bandwidth=100Mbps,此时实际出口带宽的使用量在 70Mbps左右。

  4. 官方文档中的错误配置参数summary。zmap官方文档中如下内容:

-g, --summary

Print configuration and summary of results at the end of the scan

在执行zmap --help中已经没有此配置选项,取而代之的是:

-m, --metadata-file=name Output file for scan metadata (JSON)`

如果需要扫描结论的朋友,需要注意此处。(官方文档不靠谱的开源软件,第一次遇见)


zmap扫描结果输出到Redis

如此简单的一件事情,却需要一个单独的段落来记录。

  • 支持 tcp 与 local socks 方式连接 Redis
  • tcp 连接 Redis 的方式不支持 Redis 密码,也不支持选择 Redis DB,如果此 Redis 在公网可需要小心了。
  • 输出到 Redis 有两种格式 redis-packed 与 redis-csv ,前一种为 Redis 二进制数据,后一种会以队列方式存储到 Redis。
  • 输出模块 redis-csv,写入 Redis 队列的条件是,每1000个结果写入一次,并非实时。
  • 输出模块 redis-csv,在写入 Redis 中的数据,默认配置下没有做结果过滤。也就是说,存在对方返回 tcp rst数据包(对方拒绝),存在超过配置的cooldown时间的数据等结果。
  • 建议配置 output-fiedlsoutput-filter

示例配置文件一份。

#tination port to scan
target-port 8080
# cooldown time
cooldown 15 ### Scan rate in packets/sec
#rate 10000
rate 2000 ### Scan rate in bandwidth (bits/sec); overrides `rate`
#bandwidth 1M # 1mbps
#bandwidth 8M # 8Mbps #output-fields "daddr,sport,seq,ack,in_cooldown,is_repeat,timestamp"
output-fields "saddr,sport,ttl,cooldown,repeat,timestamp-str,classification,success"
output-filter "success = 1 && cooldown = 0 && repeat = 0"
#output-filter "(success = 0 || success = 1) || (cooldown = 1 || cooldown = 0)" output-file=/tmp/zmap.result
#output module. use zmap --list-output-modules list support modules
# output-module=redis-csv #output redis args. tcp://ip:port/queuename
# output-args=tcp://127.0.0.1:6379/zmap ### Blacklist file to use. We encourage you to exclude
### RFC1918, IANA reserved, and multicast networks,
### in addition to those who have opted out of your
### network scans.
blacklist-file "/etc/zmap/blacklist.conf" ### Optionally print a summary at the end
#quiet
metadata-file /tmp/zamp.metadata

保存上面配置文件。例如 /tmp/zmap.conf

执行 zmap -C /tmp/zmap.conf,即可扫描全网。配置文件中速率限定为 2000,如果网络不中断的话,大概需要 21天才能扫面完全网 8080 端口

zmap使用笔记的更多相关文章

  1. 《Web安全攻防 渗透测试实战指南》 学习笔记(一)

    Web安全攻防 渗透测试实战指南   学习笔记 (一) 第一章   信息收集     在信息收集中,最重要是收集服务器的配置信息和网站敏感信息(域名及子域名信息目标网站系统.CMS指纹.目标网站真实I ...

  2. git-简单流程(学习笔记)

    这是阅读廖雪峰的官方网站的笔记,用于自己以后回看 1.进入项目文件夹 初始化一个Git仓库,使用git init命令. 添加文件到Git仓库,分两步: 第一步,使用命令git add <file ...

  3. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  4. SQL Server技术内幕笔记合集

    SQL Server技术内幕笔记合集 发这一篇文章主要是方便大家找到我的笔记入口,方便大家o(∩_∩)o Microsoft SQL Server 6.5 技术内幕 笔记http://www.cnbl ...

  5. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  6. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  7. NET Core-学习笔记(三)

    这里将要和大家分享的是学习总结第三篇:首先感慨一下这周跟随netcore官网学习是遇到的一些问题: a.官网的英文版教程使用的部分nuget包和我当时安装的最新包版本不一致,所以没法按照教材上给出的列 ...

  8. springMVC学习笔记--知识点总结1

    以下是学习springmvc框架时的笔记整理: 结果跳转方式 1.设置ModelAndView,根据view的名称,和视图渲染器跳转到指定的页面. 比如jsp的视图渲染器是如下配置的: <!-- ...

  9. 读书笔记汇总 - SQL必知必会(第4版)

    本系列记录并分享学习SQL的过程,主要内容为SQL的基础概念及练习过程. 书目信息 中文名:<SQL必知必会(第4版)> 英文名:<Sams Teach Yourself SQL i ...

随机推荐

  1. MS Sql server 2008 学习笔记

    数据库中常用的概念 Sql本身是一个服务器,没有界面,Management Studio  只是一个SQL Server管理工具而已,不是服务器. Sql server 在管理工具下面的服务SQL S ...

  2. Hadoop随笔(二):Hadoop V1到Hadoop V2的主要变化

    一.消失的概念与新鲜的名词 Hadoop V2相对于Hadoop V1的变化主要在于资源管理和任务调度,计算模型仍然保持map/reduce的模型.资源管理和任务调度的变化导致了工作流程的变化,一些概 ...

  3. Windows CMD下一些有用的命令

    2014.06.27 C:\Users\wsc>route print ============================================================= ...

  4. Multiply game_线段树

    Problem Description Tired of playing computer games, alpc23 is planning to play a game on numbers. B ...

  5. 标准库中的-stack

    #include <sequence_concepts.h> __STL_BEGIN_NAMESPACE // Forward declarations of operators == a ...

  6. 关于在win7内集成usb3.0驱动。

    mac air 装了win7但是折腾良久还是无法升级,只能是重新安装. 很蛋疼.bootcamp 老是找不到驱动.只能是手动分区后U盘引导安装. 驱动的下载,直接在Os x 下用bootcamp 下载 ...

  7. python检测字符串的字母

    python3判断字符串内是否含有字母,并打印字母出来 # !/usr/bin/python3.4 # -*- coding: utf-8 -*- import re a = "8a2656 ...

  8. Android性能之启动时间篇

    背景介绍 Android用户也许会经常碰到以下的问题: 1)应用后台开着,手机很快没电了--应用耗电大: 2)首次/非首次启动应用,进入应用特别慢--应用启动慢: 3)应用使用过程中,越来越卡--CP ...

  9. 以短链服务为例,探讨免AppKey、免认证、Ajax跨域调用新浪微博API

    新浪微博的API官方提供了很多种调用方式,支持编程的,归根结底就是两种: 1.基于Oauth协议,使用Open API.(http://open.weibo.com/wiki/%E6%8E%88%E6 ...

  10. Microsoft .NET Framework NGEN是神马东东?

    简单的说,如果你的程序是基于.net framework的托管代码的话,NGEN服务能让你的程序第二次打开的速度变快. 赶脚是非常pad化的一项服务. http://msdn.microsoft.co ...