子域名简介
子域名指二级域名,二级域名是顶级域名(一级域名)的下一级。比如 mail.heetian.com
和 bbs.heetian.com
是 heetian.com
的子域,而heetian.com
则是顶级域名 .com
的子域。
注意:
- 从旁站查找漏洞会容易一点,一般主站的防御会比较好。所以子域名信息收集很重要
搜索引擎挖掘子域名
使用搜索引擎如Google、Bing、Yahoo
等,搜索目标组织的子域名。可以使用关键字site:
加上目标组织的域名,例如site:example.com
,来限制搜索结果只包含目标组织的网站。
自用,本地搜索
domain_search.py
写了一个比较简单的脚本,用于从Bing、Google、Baidu搜索引擎使用搜索语法site:qq.com
。去获取域名下的子域名。相当于集成了三个搜索引擎爬虫,百度和谷歌风控比较严格,经常出现验证码。谷歌爬取数据超过二三十页也会触发风控,百度的以前可以跑。2023.6.16百度爬虫出了点问题。有时间再来改
用法:
python3 .\domain_search.py qq.com 20
第三方Web
接口查询
一般针对这些接口写一个爬虫就可以批量的请求了,实际上上面去搜索引擎查找子域名不是很实用。从接口请求效率和准确性可能都比从搜索引擎查找要好。
SSL
证书查询
- 网站1,同样的可以写爬虫批量请求
https://crt.sh/
- 站点2,同上。需要登录
facebook
https://developers.facebook.com/tools/ct/search/
- 站点3,知名的
censys
DNS
历史记录查询
DNS历史记录查询是一种用于收集子域名信息的方法,通过查询过去DNS解析记录的服务,可以查找目标组织过去使用过的子域名,有时还可以找到已经被删除的但仍然解析到目标组织的子域名。以下是DNS历史记录查询子域名信息的详细步骤:
- 确定目标域名:确定要查询的目标域名,例如
example.com
。 - 选择DNS历史记录查询服务:选择一个可靠的DNS历史记录查询服务,例如SecurityTrails、DNSdumpster.com - dns recon and research, find and lookup dns records、WhoisXML、PassiveTotal等。这些服务通常提供免费和付费版本,免费版本可能有限制。
- 输入目标域名:在DNS历史记录查询服务的搜索框中输入目标域名,例如
example.com
。 - 查看历史记录:查询服务将返回与目标域名相关的历史记录。这些历史记录可能包括过去使用过的子域名、IP地址、DNS服务器等信息。查看历史记录,尝试找到与目标组织相关的子域名。
需要注意的是,DNS历史记录查询服务并不总是完全准确或完整,有时会缺少一些信息或包含错误的信息。因此,需要对查询结果进行验证,并结合其他方法进行子域名信息的收集
DNS
历史记录查询子域名我用的较少
从JS
文件发现子域名
https://github.com/Threezh1/JSFinder
一种不错的方法,因为网站基本上都有js
python3 JSFinder.py -u url
子域名爆破
使用子域名爆破工具如Sublist3r、Amass、Subfinder、Assetfinder
等,枚举目标组织的子域名。这些工具使用字典或其他方法生成可能的子域名列表,然后对列表中的每个子域名进行DNS
解析来确定是否存在。
详细的见下面的工具。
子域名收集工具
- 子域名挖掘机
layer
较好用。扫描的结果主要看字典的强大,可以自己去
csdn
或者github
上下载相关的字典。当然这种工具以后用的时候,一定要去虚拟机上使用,小心捆绑后门。
OneForAll
一款功能强大的子域收集工具
https://github.com/shmilylty/OneForAll
Subdomainsbrute
-高并发的DNS
暴力枚举工具
https://github.com/lijiejie/subDomainsBrute
Sublist3r
https://github.com/aboul3la/Sublist3r
ESD
https://github.com/FeeiCN/ESD
dnsbrute
https://github.com/Q2h1Cg/dnsbrute
Anubis
https://github.com/jonluca/Anubis
subdomain3
https://github.com/yanxiu0614/subdomain3
teemo
https://github.com/bit4woo/teemo
域名收集及枚举工具,小迪推荐,需要配置
API
,集成了较多方式获取域名
Sudomy
https://github.com/screetsec/Sudomy
ARL
web
后台工具,资产灯塔,不仅仅是域名收集,挺好用,建议docker
搭建
https://github.com/TophantTechnology/ARL
git clone https://github.com/TophantTechnology/ARL cd ARL/docker/ docker volume create arl_db docker-compose pull docker-compose up -d
https://124.223.217.243:5003/login
默认端口5003 (
https
), 默认用户名密码admin/arlpass
SubFinder + KSubdomain + HttpX
组合使用
工具箱中有这个工具
SubFinder + KSubdomain + HttpX
将域名放在
domain.py
文件,再执行python3 get_domain.py
SubFinder
:用来查询域名的子域名信息的工具,可以使用很多国外安全网站的api
接口进行自动化搜索子域名信息。https://github.com/projectdiscovery/subfinder
HttpX
:一款运行速度极快的多功能HTTP
安全工具,它可以使用retryablehttp
库来运行多种网络探针,并使用了多线程机制来维持运行的稳定性和结果的准确性。https://github.com/projectdiscovery/httpx
ksubdomain
是一款基于无状态子域名爆破工具,支持在Windows/Linux/Mac
上使用,它会很快的进行DNS
爆破,在Mac
和Windows
上理论最大发包速度在30w/s
,linux
上为160w/s的速度。https://github.com/knownsec/ksubdomain
#subfinder基本使用
./subfinder -d baidu.com -o output.txt
#ksubdomain基本使用
./ksubdomain -d baidu.com
#管道操作
./subfinder -d baidu.com -silent|./ksubdomain -verify -silent|./httpx -title -content-length -status-code
#可以用管道结合在一起配合工作。达到收集域名,验证域名,http验证存活目的。
大量域名查找子域名
假如你的手里有10万域名,想拿到10W域名的子域名不可能用上述方法一个个找,上述的各种方法,在测试单个站点时,可以尽可能的详细。但是在批量查找域名的子域名的时候,就需要想办法处理了。
从接口请求
想快速的处理十万域名的子域名,精度不敢保证,追求速度的话,可以直接请求api
。线程别搞太高,别把别人网站搞挂了。
我用的是某位大佬的网站:可以使用多线程,纯免费,速度很快,数据量也不少:RapidDNS Rapid DNS Information Collection - Home 。但尽量下手轻一点,别给别人搞挂了,没得用了
本地文件getrappiddns.py
使用KSubdomain
枚举子域名爆破
看中的就是其爆破速度,选取top1000
的子域名,然后丢进去爆破就好了
NAME:
KSubdomain - 无状态子域名爆破工具
USAGE:
ksubdomain [global options] command [command options] [arguments...]
VERSION:
1.8.6
COMMANDS:
enum, e 枚举域名
verify, v 验证模式
test 测试本地网卡的最大发送速度
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help (default: false)
--version, -v print the version (default: false)
速度和效率还不错,爆破五百万的子域名花了一天左右就搞定了