投稿文章:利用Zgrab绕CDN找真实IP
随着各家CDN遍地开花,什么网站都挂上CDN,高效的找源站也就成为了麻烦事,Zgrab算是解决这一问题的利器了。
本来Zgrab叫banner-grab,是Zmap的一个组件,后来独立出来:
Zgrab的Github: https://github.com/zmap/zgrab
安装 zmap:安装go:安装Zgrab:Zgrab配和Zmap在200M带宽的机器上扫遍国区所有80端口大概是4小时以内(I7+16G+240G SSD RAID 0),网速和硬盘性能比较影响最终速度。至于扫全球的请准备好1T以上的SSD。需要注意的是一般的VPS都不会允许你扫,还有某个德国的运营商每次一扫就会投诉。
以抓取www.abc.com为例子:修改http请求头:格式一般为:
可以参考RFC 2616: https://tools.ietf.org/html/rfc2616
如果要抓取具体页面,比如www.abc.com/abc/
下载目标地区的ip地址列表:(国区为例)Zmap扫描开放的80口:(-i 指定interface -B 速度)
扫全球的话:扫完的80端口保留在-o的输出文件中,然后我们用Zgrab批量抓:一般200M的网速sender可以在2K-3K 供参考 实际速度取决于网络质量 硬盘I/O
对于443的https:(当然zmap要抓443)
扫完以后筛选
随便找个特别的关键字:去掉阿里云高防ip,CF代理ip:原文收录在主页:https://levyhsu.com/?p=183
本来Zgrab叫banner-grab,是Zmap的一个组件,后来独立出来:
Zgrab的Github: https://github.com/zmap/zgrab
安装 zmap:
yum install zmap git wget
wget https://storage.googleapis.com/golang/go1.8.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.8.1.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/usr/local/go/bin/
go get github.com/zmap/zgrab
cd $GOPATH/src/github.com/zmap/zgrab
go build
以抓取www.abc.com为例子:
cd $GOPATH/src/github.com/zmap/zgrab
vi http-req
GET / HTTP/1.1
Host: www.abc.com
(空行)
可以参考RFC 2616: https://tools.ietf.org/html/rfc2616
如果要抓取具体页面,比如www.abc.com/abc/
GET /abc/ HTTP/1.1
Host: www.abc.com
(空行)
下载目标地区的ip地址列表:(国区为例)
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone
zmap -w cn.zone -p 80 -B 200M -o cn.80
扫全球的话:
wget http://www.ipdeny.com/ipblocks/data/countries/all-zones.tar.gz
tar zxvf all-zones.tar.gz
cat *.zone | zmap -p 80 -B 200M -o world.80
cat cn.80 | ./zgrab --port 80 -http-user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" -timeout=30 -senders=2000 -data="./http-req" --output-file=cnresult.txt
对于443的https:(当然zmap要抓443)
cat cn.443 | ./zgrab --port 443 --tls -http-user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.95 Safari/537.36" -timeout=30 -senders=2000 -data="./http-req" --output-file=cnresult.txt
扫完以后筛选
随便找个特别的关键字:
cat cnresult.txt |grep -E "关键词" cnpr.txt
sed -e '/aliyungf/d' cnpr.txt cn.target
sed -e '/cfduid/d' cnpr.txt cn.target
评论24次
这个太暴力了吧 如果网站服务器设置捆绑域名也不能get到了
一般还真用不了啊
好像以前在zone 看到过类似 扫全网找真实ip的文章。。 不过学xi了。现在有些cdn的站真实ip不好找
楼主问你一下 如果把节点D死会不会显示出真是IP
有CDN超过流量就回源的
知道为啥自己把自己扫死了
楼主是用的200m的上行带宽?一般vps都会禁止扫描吧
两台1G两台200M 1G的最大瓶颈就是SSD速度了
楼主是用的200m的上行带宽?一般vps都会禁止扫描吧
很多网站访问根目录(http://xx.xx.xx.xx:80)会返回302跳转到实际网站的二级目录(http://xx.xx.xx.xx:80/site/),这种情况获取不到网站标题,需要加follow redirect功能
https://levyhsu.com/?p=298 批量查询的方法
@Levy_Hsu 每个ip的每个端口扫一下,保存banner信息,web就保存标题还是有识别cms或者框架等
那样数据量比较大 不过应该可行
楼主问你一下 如果把节点D死会不会显示出真是IP
没明白,你D死了服务器怎么回报文给你?
我说的是把节点D死
你是说把CDN的节点D死? 1.D不死 2. CDN那么多节点你怎么一次性D完?
@Levy_Hsu 每个ip的每个端口扫一下,保存banner信息,web就保存标题还是有识别cms或者框架等
楼主问你一下 如果把节点D死会不会显示出真是IP
没明白,你D死了服务器怎么回报文给你?
我说的是把节点D死
这个很好啊,如果骚的在全一点就是一个网络空间搜索引擎了
就是你不能每个域名全球扫一遍吧。。。这带宽谁吃得消
这个很好啊,如果骚的在全一点就是一个网络空间搜索引擎了
楼主问你一下 如果把节点D死会不会显示出真是IP
没明白,你D死了服务器怎么回报文给你?
楼主问你一下 如果把节点D死会不会显示出真是IP
好多网站访问ip得到的是403页面呀,或者404,很少遇到访问ip就直接跳到网站上去的
Host: www.abc.com 这个把不相关的都过滤掉
好多网站访问ip得到的是403页面呀,或者404,很少遇到访问ip就直接跳到网站上去的
所以要改Host字段 如果直接访问等于是%s
好多网站访问ip得到的是403页面呀,或者404,很少遇到访问ip就直接跳到网站上去的