HT1001 系列是信安之路推出的黑客工具实战系列课程,完整系列课程需加入信安之路知识星球获取,部分内容需关注信安之路微信公众号查看。
当前更新进度:知识星球更新至十六期《HT1152 Shodan 自动化利用》(加入星球查看全部内容)
先看一个图,收集谷歌 130k+ 子域名,仅需 18 秒:
subfinder 是由 GO 语言开发的一款子域名收集工具,除了 DNS 枚举之外,集成了多个在线网站的域名查询功能,包括:Binaryedge,Certspotter,Censys,Chaos,DnsDB,Github,Intelx,Passivetotal,Recon.dev,Robtex,SecurityTrails,Shodan,Spyse,Threatbook,Virustotal,Zoomeye,项目地址:
安装方式(go 版本要求为 1.14+):
go get -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder
安装完成之后,首先查看帮助信息:
subfinder -h
如果你已经有了多个网站的 API KEY,可以编辑配置文件,将 API KEY 更新之后,再来使用,配置文件地址:
/root/.config/subfinder/config.yaml
配置案例:
resolvers:
- 1.1.1.1
- 1.0.0.1
sources:
- binaryedge
- bufferover
- censys
- passivetotal
- sitedossier
binaryedge:
- 0bf8919b-aab9-42e4-9574-d3b639324597
- ac244e2f-b635-4581-878a-33f4e79a2c13
censys:
- ac244e2f-b635-4581-878a-33f4e79a2c13:dd510d6e-1b6e-4655-83f6-f347b363def9
certspotter: []
passivetotal:
- sample-email@user.com:sample_password
securitytrails:
- GZPDgZXK56pS5255xr5h4pMPbseX7p0u
- fZtaC7q0R95KyqKBhfpC7MVb6hGT4sUm
- UdbuQzjz44qbSOlGLZ46PnsqCrhzu9E4
- ITTUAQ0A0v4yzSbClTTySceSjPbwswsC
shodan:
- AAAAClP1bJJSRMEYJazgwhJKrggRwKA
github:
- d23a554bbc1aabb208c9acfbd2dd41ce7fc9db39
- asdsd54bbc1aabb208c9acfbd2dd41ce7fc9db39
在使用之前,前面几期已经收集了多个 API key 信息,今天来收集一下 securitytrails 网站(子域名搜索)的 API KEY,API 地址:
下注册一下账号,注册地址:
注册完成之后,访问下面的地址,获取 API KEY:
API 使用文档:
该网站认证方式为在查询参数中添加 apikey 或者在 Header 中添加 apikey,案例如下:
curl --include --header "APIKEY: your_api_key" 'https://api.securitytrails.com/v1/ping'
OR
https://api.securitytrails.com/v1/ping?apikey=your_api_key
接下来,我们在 GitHub 搜索关键词(securitytrails apikey)寻找泄漏的 KEY,免费的账号限制每月查询 50 次,频率限制 2 秒,搜索结果如下:
589MZT3zFGjUUuAyR4ZkvbwqcxUgTXKl
GZPDgZXK56pS5255xr5h4pMPbseX7p0u
Y6lDrPh8uFuzi602zUk5933bCbAEWd5v
q8XmVyUGODxfsGObTZ5PcNDygiz73rLx
fZtaC7q0R95KyqKBhfpC7MVb6hGT4sUm
oSc5Ud5Vw9pQM2no5eoObwmkMLsuOyyX
UdbuQzjz44qbSOlGLZ46PnsqCrhzu9E4
bD3GgfbOM1xmze49pas57XkdOOTv81HA
0T0lwYQa2kNlNkxnnM868wTf5r7Vd9lp
35ZoQkxGLPHIYYgepbnrihU0Km6oS8Uh
ITTUAQ0A0v4yzSbClTTySceSjPbwswsC
qYBHatqjiJ0XqudU1LdAn62pKzropP9V
HP9up5LK5YT0tNJWg1Fd0KRRCrWDRNv1
blw0TiVLivBCXwHXZgy212suJ35uejEK
现在用 python 来写个脚本验证一下这些 KEY 是否能用,脚本如下:
import requests
import time
api = 'https://api.securitytrails.com/v1/account/usage'
for apikey in open("key.txt"):
headers = {'APIKEY': apikey.strip()}
url = api
r = requests.get(url, headers=headers).text
if 'False' in r or 'Invalid authentication' in r:
print('\tKey could not be authenticated exiting program.')
else:
print(apikey + "|" + str(r))
time.sleep(2)
可用 KEY 如下:
Y6lDrPh8uFuzi602zUk5933bCbAEWd5v
q8XmVyUGODxfsGObTZ5PcNDygiz73rLx
oSc5Ud5Vw9pQM2no5eoObwmkMLsuOyyX
0T0lwYQa2kNlNkxnnM868wTf5r7Vd9lp
qYBHatqjiJ0XqudU1LdAn62pKzropP9V
#遗下 key 可用,但是超出使用限制
GZPDgZXK56pS5255xr5h4pMPbseX7p0u
fZtaC7q0R95KyqKBhfpC7MVb6hGT4sUm
UdbuQzjz44qbSOlGLZ46PnsqCrhzu9E4
ITTUAQ0A0v4yzSbClTTySceSjPbwswsC
接下来我们就可以把可用的 KEY 更新到配置文件中,开始使用本文的主角工具了。
最简单的使用方法,直接在参数中使用 -d
参数指定目标域名:
subfinder -d xazlsec.com
从结果上看,把我以前设置的几个 CTF 的域名都找出来了,很强!这些域名都是从哪里找出来的呢?我们使用 -v
参数看看详情:
结果比较多的情况下,可以使用 -o
参数输出到文件中,这里就不做测试了。
如果要搜索目标比较多的情况下,可以使用-dL
参数指定目标域名所在文件:
subfinder -dL domain.txt
总结
这款工具收集二级域名的方式主要通过各大平台获取,没有暴力枚举的功能,只要平台的授权 API 丰富,数据结果就很丰富,所有平台的 API KEY 都可以自己注册申请,也可以通过 GitHub 上寻找泄漏的 KEY,关于如何收集,本文也有,方法类似,剩下就看你自己的了。
「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」
(๑>ڡ<)☆谢谢老板~
使用微信扫描二维码完成支付
