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. uboot 各种烧写命令

    norflash 烧写 (7) Nor Flash指令 Nor Flash 的命令经常用于烧写数据到Nor Flash . flinfo  打印Flash存储器的信息,并列出所有Sector. fli ...

  2. 【转】不是技术牛人,如何拿到国内IT巨头的Offer

    不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛人,NOI金牌,开源社区名人,三年级开始写Basic...在跪拜之余我们不禁要想,和这些牛人比,作为绝大部分技 ...

  3. pull刷新

    package com.example.mylist; import java.util.ArrayList; import java.util.List; import com.example.ad ...

  4. 软件测试面试(2)LR篇

    一:LoadRunner常见问题整理 1.LR 脚本为空的解决方法: 1.去掉ie设置中的第三方支持取消掉 2.在系统属性-高级-性能-数据执行保护中,添加loadrunner安装目录中的vugen. ...

  5. mysql alter 语句用法,添加、修改、删除字段等

    2013-05-03 17:13 39459人阅读 评论(1) 收藏 举报  分类: Mysql(9)  修改表名: ALTER  TABLE admin_user RENAME TO a_use / ...

  6. oop、try_except、单例模式

    本节大纲: 面向对象特性:封装.继承.多态.一:多态:python本身是多态,他的参数可以多种类型.可以是字符串.数字.列表等.当传入参数的时候,python可以判断参数的数据类型.而在java C# ...

  7. Day19_IO第一天

    1.异常 1.概念      程序出现不正常的情况 2.异常体系(掌握)      Throwable           |-Error                               ...

  8. EasyUI filebox组件在IE下不兼容

    EasyUI 1.4.1 jQuery v1.11.1 EasyUI1.4.1版本的filebox在IE9+环境下,提交表单上传文件时出错,不能使用.

  9. Oracle函数--字符串拼接

    常用的字符串聚合(拼接)函数介绍 1.WMSYS.WM_CONCAT 从oracle 10G开始支持,使用案例如下: select deptno,wmsys.wm_concat(ename) from ...

  10. JS实现简单的图片切换效果

    使用图片进行点击切换效果 <!doctype html> <html lang="en"> <head> <meta charset=&q ...