HT1137 DNS 枚举工具 subfinder

本文共有4335个字,关键词:资产信息收集资产收集DNS枚举

HT1001 系列是信安之路推出的黑客工具实战系列课程,完整系列课程需加入信安之路知识星球获取,部分内容需关注信安之路微信公众号查看。

当前更新进度:知识星球更新至十六期《HT1152 Shodan 自动化利用》(加入星球查看全部内容)

先看一个图,收集谷歌 130k+ 子域名,仅需 18 秒:

1.png

subfinder 是由 GO 语言开发的一款子域名收集工具,除了 DNS 枚举之外,集成了多个在线网站的域名查询功能,包括:Binaryedge,Certspotter,Censys,Chaos,DnsDB,Github,Intelx,Passivetotal,Recon.dev,Robtex,SecurityTrails,Shodan,Spyse,Threatbook,Virustotal,Zoomeye,项目地址:

https://github.com/projectdiscovery/subfinder

安装方式(go 版本要求为 1.14+):

go get -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder

安装完成之后,首先查看帮助信息:

subfinder -h

1.png

如果你已经有了多个网站的 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 地址:

https://api.securitytrails.com/v1/domain/

下注册一下账号,注册地址:

https://securitytrails.com/app/signup

注册完成之后,访问下面的地址,获取 API KEY:

https://securitytrails.com/app/account/credentials

2.png

API 使用文档:

https://docs.securitytrails.com/docs

该网站认证方式为在查询参数中添加 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

3.png

从结果上看,把我以前设置的几个 CTF 的域名都找出来了,很强!这些域名都是从哪里找出来的呢?我们使用 -v参数看看详情:

4.png

结果比较多的情况下,可以使用 -o参数输出到文件中,这里就不做测试了。

如果要搜索目标比较多的情况下,可以使用-dL参数指定目标域名所在文件:

subfinder -dL domain.txt

总结

这款工具收集二级域名的方式主要通过各大平台获取,没有暴力枚举的功能,只要平台的授权 API 丰富,数据结果就很丰富,所有平台的 API KEY 都可以自己注册申请,也可以通过 GitHub 上寻找泄漏的 KEY,关于如何收集,本文也有,方法类似,剩下就看你自己的了。

640

「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」

信安之路工具站

(๑>ڡ<)☆谢谢老板~

使用微信扫描二维码完成支付

版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。