利用Zgrab绕CDN找真实IP

未经许可转载本帖将视为同意按100元/字支付稿酬

本文已授权在T00LS发布:https://www.t00ls.net/articles-40631.html

1. 安装Zmap

yum install zmap git wget

 

如果提示找不到zmap请自行添加最新的源

CentOS6:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm

 

CentOS7:

yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm

 


2. 安装Go

因为yum install不一定能下到最新的go,所以建议手动安装。

wget https://storage.googleapis.com/golang/go1.10.4.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.10.4.linux-amd64.tar.gz
export PATH=$PATH:/usr/local/go/bin
export GOPATH=/usr/local/go/bin/

 


3. 安装Zgrab

go get github.com/zmap/zgrab
cd $GOPATH/src/github.com/zmap/zgrab
go build

 


4. Zgrab使用
Zgrab配和Zmap在200M带宽的机器上扫遍国区所有80端口大概是4小时以内(I7+16G+240G SSD RAID 0),网速和硬盘性能比较影响最终速度。至于扫全球的请准备好1T以上的SSD

./zgrab --help

 

 


以下扫描操作一般不为一般VPS运营商所允许,你可能会受到警告,可能会被封机器,甚至注销账户,本教程仅提供操作方法的学习,由此引起一切后果概不负责。

 

以抓取www.abc.com为例子:

cd /usr/local/go/bin/src/github.com/zmap/zgrab

 

修改http请求头

vi http-req

 

Http请求头的格式一般为:

GET / HTTP/1.1
Host: www.abc.com
(空行)

(此处记得留着一个空行,后面Zgrab还有useragent,keep-alive等可以自己填,如有疑惑可参考 RFC 2616)

 

如果要抓取具体页面,比如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批量扫描目标地区80端口

zmap -w cn.zone -p 80 -B 200M -o cn.80

 

其中-B限制速度,防止ssh连接丢失。当然也可以nohub &,不赘述。 如果提示找不到网卡 -i interface

 

如果你要扫全球

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

 

扫完的80端口保留在-o的输出文件中,然后我们用Zgrab批量抓取网站

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

timeout应该不用解释了 senders作为参考 一般设置500-3000

 

你也可以模拟手机用户

cat cn.80 | ./zgrab --port 80 -http-user-agent="Mozilla/5.0 (iPhone; CPU iPhone OS 9_3 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13E233 MicroMessenger/6.3.15 NetType/WIFI Language/zh_CN" -timeout=30 -senders=2000 -data="./http-req" --output-file=cnresult.txt

 

如果目标是443端口的https (zmap里-p也请设置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=100 -data="./http-req" --output-file=cnresult.txt

 

扫完以后筛选(目标网页chrome下F12查看源代码,挑个只有这个网站有的关键词)

cat cnresult.txt |grep -E "关键词" > cnpr.txt

 

去掉阿里云高防ip,CF代理ip

sed -e '/aliyungf/d' cnpr.txt > cn.target
sed -e '/cfduid/d' cnpr.txt > cn.target

 

一体式:

wget http://www.ipdeny.com/ipblocks/data/countries/hk.zone
zmap -w hk.zone -p 80 -B 100M -o hk.res
./zgrab -input-file=hk.res -senders=2000 -data="./http-req" |grep -E 'memberlogin' >> x.txt

 

 


当然Zgrab还有各种玩法~欢迎各位探讨

[wpedon id=”461″ align=”center”]

Categories:

One thought on “利用Zgrab绕CDN找真实IP

Leave a Reply

Your email address will not be published. Required fields are marked *