1. 安装Zmap

1
yum install zmap git wget

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

CentOS6:

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

CentOS7:

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

 

2. 安装Go

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

1
2
3
4
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/

 

3. 安装Zgrab

1
2
3
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

1
./zgrab --help

 

 

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

 

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

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

 

修改http请求头

1
vi http-req

 

Http请求头的格式一般为:

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

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

 

如果要抓取具体页面,比如www.abc.com/abc/
那么:

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

 

下载目标地区的ip地址列表:

1
wget http://www.ipdeny.com/ipblocks/data/countries/cn.zone

 

zmap批量扫描目标地区80端口

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

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

 

如果你要扫全球

1
2
3
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批量抓取网站

1
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

 

你也可以模拟手机用户

1
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端口(zmap里-p也请设置443)

1
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查看源代码,挑个只有这个网站有的关键词)

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

 

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

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

一体式:

1
2
3
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还有各种玩法~欢迎各位探讨

 原文链接:http://www.5kik.com/other/641.html