一个悲情的故事:我扫遍全网只为知道你的真实IP

3
5,087

事先声明: 方法可能存在漏报(嗯, 在人品差的情况下) 

唔, 我们使用 www.wooyun.org 作为案例。 

首先从 www.wooyun.org 服务多次挂的页面可以看出,  wooyun 使用了 baidu 的 cdn 服务, 从 wooyun 的漏洞案例上也可以知道 wooyun 使用了 ucloud 的服务, 我们可以大胆假设 wooyun 服务器的 ip 在中国内. 

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

0x2. 端口扫描 
使用 zmap 对全 CN 的 IP 的 80 端口进行扫描. 
屏幕快照 2015-01-15 下午7.49.29.png 
嗯, 在我的 vps 上大概需要 20 min, 所以还是先出去喝杯咖啡 : ) 

0x3. 获取 banner 
使用 zmap 的 banner-grab 对扫描出来80 端口开放的主机进行 banner 抓取 
屏幕快照 2015-01-15 下午7.55.00.png 
嗯, 在 http-req 中的 Host 写 www.wooyun.org, 并且使用 ulimit 将最大文件描述符数修改为一个较大的值, 
直接开扫: 
屏幕快照 2015-01-15 下午7.59.58.png 
唔, 在这里, 考虑到 www.wooyun.org 打开挺慢的, 所以将连接超时和读超时都设置为 30s, 这段时间可以出去看电影. 

0x4. 数据处理 
使用关键字 "80sec" 对获取的数据进行简单过滤 
屏幕快照 2015-01-15 下午8.05.51.png 

这 400+ 的服务器, 一般可以分为三种: 
 * baidu cdn server 
 * http proxy server 
 * www.wooyun.com server 

可以对这 400+ 服务器再进行一次 banner 获取, 不设置 Host, 过滤掉 baidu cdn 错误页面,  空页面, 超时等乱七八糟的页面, 然后就可以得到结果了, 我去问了一下相关负责人 www.wooyun.org 的真实 IP, 果不其然  : ) 

总耗时大概 两个多小时。 

0x5. 猜想 
一些公司的测试服务器是放在外网的, 一般只有绑定了 Host 才能进行访问, 所以… 

0x6. 感谢 
唔, 这主题是从我的 vps 蜜罐上看到有人设置一些莫名其妙的  Host 得出的猜想. thx