未经许可转载本帖将视为同意按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”]
Kеep onn writing, great job!