渗透特别是刷 SRC 的时候,收集目标相关的域名其实可以说是最重要的了—— 整理好一堆域名往扫描器里一丢,就可以睡个觉等着明天提交啦。据我所知有不少人是拿 WVS
刷洞的,连 WVS 的批量扫描工具 也有了,简直轻松愉快。
传统的一些找域名的方法可以看看这篇文章:子域名搜集思路与技巧梳理,里面比较有意思的是用 SSL 证书
来找相关的域名。
有个没提到的方法是通过域名注册邮箱反查,BroDomain 这个工具就是用的这种方法。
后来在微博上看到有人提到了 Passive DNS
,想到很久之前注册的 PassiveTotal 好像有这个功能,就去找了下 API:
写了个脚本用来提取子域名:
import json
import sys
import requests
requests.packages.urllib3.disable_warnings()
domain = sys.argv[1]
url = 'https://api.passivetotal.org/v2/dns/search/keyword'
auth = ("your_email", "your_api_key")
params = {'query': domain}
response = requests.get(url, auth=auth, params=params, verify=False)
loaded_content = json.loads(response.content)
for x in loaded_content['results']:
y = x['focusPoint']
if y.endswith(domain):
print y
效果不错,可以得到一些三级甚至四级域名,缺点是部分域名 DNS 解析已经失效了,可能用于监控新出现的子域名会比较好。
至于 Passive DNS 系统的原理,大约就是从真实的网络中采集 DNS 流量(一般用流量镜像),经过解析、去重后存进数据库用于分析,具体的可以搜搜 PassiveDNS 系统的实现与应用研究
这篇论文。360 有个类似的系统,不过需要申请才能用。
Muchas gracias. ?Como puedo iniciar sesion?