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. enmo_day_10

    RMAN 创建备份集 : backup as backupset format ‘/backup/df_%d_%s_%p/bus’ tablespace hr_data; 创建镜像副本 :(备份慢,恢 ...

  2. 黑马程序员——OC语言 内存管理

    Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)计数器 每个对象内部都保存了一个与之相关联的整数,称为引用计数器,当 ...

  3. Android常见控件— — —ProgressDialog

    package com.example.uiwidgettest2; import android.app.Activity;import android.app.AlertDialog;import ...

  4. Qt Creator提示"Qt没有被正确安装,请运行make install"的解决办法

    笔者最近使用Qt在开发一些小程序,觉得这个框架设计确实很好,使用了信号和槽解决了组件之间的通讯问题,可以说是基于C++语言上一个非常大的创新,大大提高了开发人员的编码效率,也使整个C++语言更加抽象. ...

  5. Uri.AbsoluteUri 与 Uri.ToString() 的区别

    UriBuilder builder = new UriBuilder("http://somehost/somepath"); builder.Query = "som ...

  6. 怎样禁用或启用"最近使用的项目"

    1.右击“任务栏”——属性——‘开始’菜单——自定义——高级——去掉“列出我最近打开的文档”的勾选——确定.2.通过“组策略”来修改开始——运行——gpedit.msc——用户配置——管理模板——任务 ...

  7. iTunesConnect进行App转移2-官方说明

    Can I transfer an app to another developer's iTunes Connect account? Yes, you can transfer your app ...

  8. Flex Builder读书笔记(二)——MXML

    MXML类似于HTML,它提供各种标签来定义用户界面,但是它比HTML的结构更为严格,并拥有跟多的应用标签.MXML不仅包括可视标签,还包括不可视标签,如web service连接.数据绑定和动画效果 ...

  9. Sources

    作为一个初学者显然是没有能力自己写教程向的文章的 所以就写个整合资源贴整合一下自己学每个知识点的来源 (其实不是很全因为不记得之前看了什么) ————————————————————————————— ...

  10. python requests库入门[转]

    首先,确认一下: Requests 已安装 Requests是 最新的 让我们从一些简单的示例开始吧. 发送请求 使用Requests发送网络请求非常简单. 一开始要导入Requests模块: > ...