获取CDN后的真实源站IP
B站视频
[bilibili bv="BV1me411T7jy" p="1"]
方法一:使用Censys等互联网搜索引擎
方法二:使用ZMap与ZGrab进行扫描
首先安装 Go 语言环境
前往 https://go.dev/dl/ 下载包,一般文件名包含 linux-amd64。这里以 go1.19.1.linux-amd64.tar.gz 为例。
wget https://go.dev/dl/go1.19.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.19.1.linux-amd64.tar.gz #将下载的二进制包解压至 /usr/local目录
export PATH=$PATH:/usr/local/go/bin # 将 /usr/local/go/bin 目录添加至 PATH 环境变量
echo export PATH=$PATH:/usr/local/go/bin>>/etc/profile # 永久生效
安装 ZMap 与 ZGrab
注意:安装与使用扫描工具前,请确认这不会违反你机器所在服务商的ToS,否则你的机器或账户可能遭到服务商封禁!
CentOS / RockyLinux
yum install zmap
Ubuntu / Debian
apt install zmap
安装 ZGrab
export GOPATH=`pwd` # 将 GOPATH 设置为当前目录
go install github.com/zmap/zgrab2@latest # 拉取最新版本
cd $GOPATH/pkg/mod/github.com/zmap/zgrab2@v0.1.7 # 以实际目录为准
go get github.com/stretchr/testify@v1.4.0 # 安装需要的go模块
make # 构建
cp ./zgrab2 ~/ # 复制构建好的二进制文件到用户目录
cd ~
构建成功后,即可开始使用
root@Tester:~/gopath/pkg/mod/github.com/zmap/zgrab2@v0.1.7# **./zgrab2 --help**
Usage:
zgrab2 [OPTIONS] <command>
Application Options:
-o, --output-file= Output filename, use - for stdout (default: -)
-f, --input-file= Input filename, use - for stdin (default: -)
-m, --metadata-file= Metadata filename, use - for stderr (default: -)
-l, --log-file= Log filename, use - for stderr (default: -)
--source-ip= Local source IP address to use for making connections
-s, --senders= Number of send goroutines to use (default: 1000)
--debug Include debug fields in the output.
--gomaxprocs= Set GOMAXPROCS (default: 0)
--connections-per-host= Number of times to connect to each host (results in more output) (default: 1)
--read-limit-per-host= Maximum total kilobytes to read for a single host (default 96kb) (default: 96)
--prometheus= Address to use for Prometheus server (e.g. localhost:8080). If empty, Prometheus is disabled.
Help Options:
-h, --help Show this help message
Available commands:
bacnet bacnet
banner Banner
dnp3 dnp3
fox fox
ftp FTP
http HTTP Banner Grab
imap imap
ipp ipp
modbus modbus
mongodb mongodb
mssql MSSQL
multiple Multiple module actions
mysql MySQL
ntp NTP
oracle oracle
pop3 pop3
postgres Postgres
redis redis
siemens siemens
smb smb
smtp smtp
ssh SSH Banner Grab
telnet telnet
tls TLS Banner Grab
root@Tester:~/gopath/pkg/mod/github.com/zmap/zgrab2@v0.1.7#
接下来,扫描开放了80、443端口的主机。如果你知道目标原站所在的服务商、地区、IP段等,则可以通过这些信息缩小扫描范围。
下面以腾讯云上海 124.220.0.0/14 段为例。
# ZMap 扫描
zmap -B 25M -i eth0 -p 80 -o result80.txt 124.220.0.0/14 # 扫描 80 端口 (-B参数设置为带宽)
zmap -B 25M -i eth0 -p 443 -o result443.txt 124.220.0.0/14 # 扫描 443 端口 (同上)
# 处理扫描结果供 ZGrab2 使用
sed 's/$/, example.com/g' result80.txt > grab_input80.txt # example.com 改成你要扫描的目标域名
sed 's/$/, example.com/g' result443.txt > grab_input443.txt # 同上
# ZGrab2 抓取数据
./zgrab2 -f grab_input80.txt -o grab80.txt http --port 80
./zgrab2 -f grab_input443.txt -o grab443.txt http --port 443 --use-https
将 ZGrab2 抓取的数据下载到本地,使用编辑器打开。(grab80.txt、grab443.txt)
在编辑器中搜索特定的相应内容(可以从 浏览器F12工具-网络 中的响应复制)
找到相同的响应,查看其 IP 即可。
以后跟你混了::(呼)
卧槽,膜拜巨佬啊。