记一次 zmap"日"全球

释放双眼,带上耳机,听听看~!

//写在前面//

自己的想法
如今渗透测试的难点 主要在于以下两点

1.家家户户养狗
2.有事没事我就上一个CDN(反正有免费的)

想必大家都知道 倘若一个站点有CDN 那我们的一切渗透方式 都会被CDN前面拦截 也就是说 CDN 自带Waf......(过分!)
那为了找真实IP,也是要费一番周折
所以 那么 问题来了 如何优雅的进行渗透测试
于是便有了点小想法
那我可以爬全球的所有ip 进行端口分类然后进行标题的探索
但是时间、资源有限 所以没有实现 偶然看到I春秋论坛的一个帖子
原文如下:

0x1.获取CNIP

从apnic获取亚洲区域所分配到的IP,过滤出CN的IP.
wget ftp://ftp.apnic.net/public/apnic/stats/apnic/delegated-apnic-latest

0x2.端口扫描

使用zmap对全CN的IP的80端口进行扫描.

嗯,在我的vps上大概需要20min,所以还是先出去喝杯咖啡

0x3.获取banner

使用zmap的banner-grab对扫描出来80端口开放的主机进行banner抓取

嗯,在http-req中的Host写www.wooyun.org,并且使用ulimit将最大文件描述符数修改为一个较大的值,

直接开扫:

唔,在这里,考虑到www.wooyun.org打开挺慢的,所以将连接超时和读超时都设置为30s,这段时间可以出去看电影.

0x4.数据处理

使用关键字"80sec"对获取的数据进行简单过滤

这400+的服务器,一般可以分为三种:
baiducdnserverhttpproxyserver*www.wooyun.comserver
可以对这400+服务器再进行一次banner获取,不设置Host,过滤掉baiducdn错误页面,空页面,超时等乱七八糟的页面,然后就可以得到结果了,我去问了一下相关负责人www.wooyun.org的真实IP,果不其然
总耗时大概两个多小时。

//个人觉得 这个方法 实属上上上策 于是便去研究 zmap

那么我们如何利用zmap进行全球的ip扫描呢

传言与现实

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

传言的基础条件:
1000Mbps的网络
网络运营商或者云供应商不将此机器判定为DDOS攻击者(大量对外发送TCP syn包)

传言:扫描结果误差率2%

使用结论:无法显示传言中如此低的误差率。使用了三个机房,不同网络供应商在同时启动扫描点情况下对一个A类网络地址段的扫描,三个机房得到的结果中,开放同一端口的IP数据重复率约为 80%,误差率其实非常高。
需要注意的点:
配置参数中的数据包速率与带宽限定。在使用的2.1.1版本zmap,配置参数中的 --rate(-r) 与 --bandwidth(-B) 两项,当配置了后者,也就是带宽限制之后,数据包发送项会被覆盖。例如:zmap -B 10Mbps -r 2000 -p 8080 这样的参数,实际上发送数据的速率是 15000p/s,而非 2000p/s
默认的黑名单。在使用 yum 安装的 zmap 中,默认的配置文件 /etc/zmap/zmap.conf 中指定了默认的黑名单文件/etc/zmap/blacklist.conf,默认屏蔽掉的是内网网络地址段。做内网扫描的朋友需要注意以下。
zmap 设置了带宽限制之后,实际对于出口带宽的利用率为 70% 左右。例如 zmap --bandwidth=100Mbps,此时实际出口带宽的使用量在 70Mbps左右。
官方文档中的错误配置参数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-fiedls 与 output-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

方法:
将配置文件新建保存
zmap -C /xx/xx.conf


前人实践:

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

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

给TA打赏
共{{data.count}}人
人已打赏
渗透测试社会工程学

社会工程学_你知多少?

2018-8-13 11:05:00

Web安全渗透测试社会工程学

Google Hacking

2018-8-22 9:08:47

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
今日签到
有新私信 私信列表
搜索